参考文档 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php
首先引入包
from wx_pay import WxPay, WxPayError
构造微信支付类,传入配置文件
wx_pay = WxPay(
wx_app_id='WX_APP_ID',
wx_mch_id='WX_MCH_ID',
wx_mch_key='WX_MCH_KEY',
wx_notify_url='http://www.example.com/pay/weixin/notify'
)
创建订单
pay_data = wx_pay.js_api(
openid=u'***user_openid***', # 付款用户 openid
body=u'***商品名称 /付款显示名称***', # 例如:饭卡充值 100 元
total_fee=100 # total_fee 单位是 分, 100 = 1 元
)
给用户发红包
wx_pay.send_red_pack(
api_client_cert_path='/home/xxx/SERVER/ext_file/wx_2_pay_cert.pem',
api_client_key_path='/home/xxx/SERVER/ext_file/wx_2_pay_key.pem',
send_name=u'微信支付测试', # 红包名称
re_openid=u'***to_user_openid***', # 要接收红包的用户 openid
total_amount=100, # total_fee 单位是 分, 100 = 1 元, 最大 499 元
wishing=u'感谢参与测试', # 祝福语
client_ip=u'222.222.222.222', # 调用微信发红包接口服务器公网 IP 地址
act_name=u'微信支付测试系统', # 活动名称
remark=u'感谢参与' # 备注
)
查询订单
raw = wx_pay.close_order(out_trade_no)
关闭订单
raw = wx_pay.order_query(out_trade_no=out_trade_no)
签名
wx_pay.sign(dict(openid="123"))
32 位随机字符串
wx_pay.nonce_str()
验证签名
wx_pay.check(dict(openid="123", sign="SIGN"))
生成微信前端 JS 参数
详见example.py的wx_js_config方法,用来生成前端使用微信js的必要参数
1
soli 2016-12-21 13:51:50 +08:00
先赞一下!
|
2
ty89 2016-12-21 14:02:31 +08:00
滋瓷
v2 应该多一些这种帖子,少一些撕逼的 |
3
lincolnhuang 2016-12-21 14:07:05 +08:00
先赞后看!
|
4
shiny 2016-12-21 14:18:17 +08:00 via iPhone
你们公司同意你开源?
|
5
wyntergreg 2016-12-21 14:18:55 +08:00
手动点赞
|
7
Jolly23 OP 放出来的代码足够大家开发用,一些涉密的小东西没开源,但不影响此框架使用。截至昨天,我公司用这套代码 3 个月已经在微信成功过账 109 万元且未产生任何问题。
|
8
cxl008 2016-12-21 14:38:11 +08:00
赞一个
|
9
flamhaze5946 2016-12-21 14:40:21 +08:00
@Jolly23 你这泄露了财务信息吧 - -b
|
10
wsy2220 2016-12-21 14:42:08 +08:00
支持开源
|
11
dexterlei 2016-12-21 14:47:22 +08:00
先赞后看
|
12
mortal 2016-12-21 14:53:33 +08:00
你问我呲磁不呲磁,我当然是呲磁的!我们年轻人还是要 Star 学习一个。
|
14
vugusurk 2016-12-21 14:57:31 +08:00
哇,才大三就 CTO 啦
|
17
xiuc001 2016-12-21 15:49:39 +08:00
你们公司同意你开源?
|
18
derpc 2016-12-21 15:51:31 +08:00 via iPhone
先赞后看,楼主加油
|
19
MrWhite 2016-12-21 15:53:40 +08:00
不错的哦。 很详细~
|
20
zhushajun 2016-12-21 15:55:23 +08:00 1
学习了,感谢分享哈
|
21
v2dead 2016-12-21 16:13:42 +08:00
赞一个,微信 API 之接的恶心好久,各种 XML ,稀奇古怪的接口请求,感觉糅合了十几号人的风格。
虽然愿景很好,但这样的项目其实不太敢用的,因为即使用这个项目,还要全面的去看你的代码和微信接口,一但微信方面接口升级,不知道你那边什么时候升级,难道不支付了? 有空去看你代码的,还不如自己封装一遍。。。 |
22
liqiazero 2016-12-21 16:16:12 +08:00
该 star 的还是得 star 啊。
这个东西都是 API 各种回调,核心自然在微信那边,核心支付的东西微信在出 API 的时候已经做了各种防范了。只要 API 用的好,基本上在支付上不会问题,就是回调错了,微信那边也会给你 pass 掉。基本上没有啥安全性问题,不过还是 star 啊! |
23
tar 2016-12-21 16:19:21 +08:00
"劳资叫你们维护系统,你们居然给开源了"
|
24
fy 2016-12-21 16:32:13 +08:00
python2 ...
|
25
butterflydog 2016-12-21 17:21:03 +08:00
点赞
|
26
pudgeee 2016-12-21 17:21:34 +08:00
这个是要赞一个。
|
27
lonelinsky 2016-12-21 17:31:45 +08:00
查询订单
raw = wx_pay.close_order(out_trade_no) 关闭订单 raw = wx_pay.order_query(out_trade_no=out_trade_no) 这边写反了哦… |
28
deadofpeople 2016-12-21 18:11:09 +08:00
666
|
29
Jolly23 OP @lonelinsky 感谢指正,粗心了
|
30
irory 2016-12-21 18:40:57 +08:00
我记得发红包每个用户至少 1 元吧 ... 这个没判断算不算 BUG ? O(∩_∩)O 哈哈~
|
31
njushannon 2016-12-21 19:02:27 +08:00
2333333 ,可以用来轻度套现
|
32
wclebb 2016-12-21 19:07:04 +08:00
哇塞,请问有现成的网站或微信号可以参考一下吗?
虽然……用不到。 但估计以后会有用,所以希望能提供一下简单的参考或微信号。 |
34
em70 2016-12-21 19:23:33 +08:00
你是个伟人
|
35
timlili 2016-12-21 19:36:59 +08:00 5
|
36
luefei 2016-12-21 20:01:51 +08:00 2
|
37
zeayes 2016-12-21 20:07:25 +08:00 2
|
38
jessynt 2016-12-21 20:16:50 +08:00 via iPhone
楼上这啥情况,要撕逼啊,瓜子小板凳已备好
|
39
wellsc 2016-12-21 20:18:12 +08:00
谢谢
|
40
jessynt 2016-12-21 20:26:12 +08:00 via iPhone
|
41
HLT 2016-12-21 20:34:24 +08:00 1
这 TM 就很尴尬了
|
42
coolloves 2016-12-21 20:40:16 +08:00
马克,感谢分享
|
43
GreatMartial 2016-12-21 20:47:55 +08:00 via Android
字词,感谢分享
|
44
AyoCross 2016-12-21 20:48:04 +08:00 1
这。。。果然亮点都在评论
|
45
8bit 2016-12-21 20:52:45 +08:00
分分钟扒掉底裤.....
|
46
1etterSong 2016-12-21 21:00:20 +08:00
后排了
|
47
sivacohan 2016-12-21 21:06:11 +08:00 via Android
你知道你为什么不能叫 wxpay 吗?
因为 wxpay 被我占了。哈哈哈。 |
48
zhchbin 2016-12-21 21:09:55 +08:00
还有,这个退款操作的 API 不可以的吧。。确定能正常?文档里写着要求要用证书的。。 https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_4
|
49
zwczou 2016-12-21 21:12:56 +08:00 3
最开始 zakzou/flask-weixin-pay 有以下几个问题:
1. 下载账单返回的不是 xml ,而是 csv 格式的,所以此接口不能使用( download_bill) 2. 退款需要商户证书,目前还不支持,还在开发中(refund) 在 weixin-python 里面已经修复问题 1 ,问题 2 也在支持的路上 另外 zakzou/flask-weixin-pay 是支持非 flask 的框架的,你的这个版本反而仅仅支持 flask 框架了 |
50
renyijiu 2016-12-21 21:13:48 +08:00
你的个人网站 502 了。。。。。
|
51
yura93 2016-12-21 21:17:05 +08:00
我去,看到评论好方
|
52
fffflyfish 2016-12-21 21:28:07 +08:00
好尴尬,这个 star 比 zwczou 的都多
|
53
dtfm 2016-12-21 21:45:04 +08:00
昨天也看见了锤子开源的 onestep ,每次在 Github 上看见中文的文档和 readme ,都觉得好接地气,莫名的亲切。
|
54
gogobody 2016-12-21 21:46:33 +08:00 via Android
看见标题就赞了
|
55
haozibi 2016-12-21 21:56:27 +08:00 via Android
要回复先看看上面的评论吧
|
56
dazzle 2016-12-21 22:02:35 +08:00 via Android
表示看见过 N 次,个人网站放上来,几小时后挂了
(ಡωಡ) |
57
leeyiw 2016-12-21 22:09:04 +08:00
开源也要遵守基本法吼
|
58
xfan001 2016-12-21 22:26:13 +08:00
搭车,自己写的微信公众号和微信支付 sdk , https://github.com/xfan001/weixin-sdk ,实际使用过,
与框架无关,代码很简单,看看就懂了 |
59
shijingshijing 2016-12-21 22:28:53 +08:00
这个要赞一下~ 呵呵。 Mark 一记
|
60
vugusurk 2016-12-21 22:38:59 +08:00 via iPhone
呵呵,楼主能解释下 35-37 楼的质疑,和 40 楼的抄袭问题吗
呵呵,楼主能解释下 35-37 楼的质疑,和 40 楼的抄袭问题吗 呵呵,楼主能解释下 35-37 楼的质疑,和 40 楼的抄袭问题吗 |
61
wwlweihai 2016-12-21 22:42:31 +08:00
关于支付,目前采用 ping++的方案是个不错的选择,而且有商业的团队来保障质量。这个项目开源,是个学习的好东西。
|
62
n37r06u3 2016-12-21 22:44:13 +08:00
502 Bad Gateway
nginx/1.10.0 (Ubuntu) 分分钟。。。 |
63
mingyun 2016-12-21 22:45:57 +08:00
star 了,另 https://jolly23.com/ 502 了
|
64
v4an 2016-12-21 23:47:51 +08:00
|
66
onefouroo 2016-12-22 07:18:21 +08:00 via iPhone
马克一下 可能以后用的着
|
67
phpdever 2016-12-22 08:22:56 +08:00
楼主,我喜欢你
|
68
sambawy 2016-12-22 09:08:55 +08:00
先赞一个再慢慢看
|
69
quericy 2016-12-22 09:13:33 +08:00
这特么就很尴尬了
|
70
xylitolLin 2016-12-22 09:28:09 +08:00
我只是来看戏的
|
71
ahonn 2016-12-22 09:38:03 +08:00
所以... 我 star 了 https://github.com/zwczou/weixin-python
|
72
lincolnhuang 2016-12-22 09:39:54 +08:00
比较了下代码, 20 岁 CTO ,抱歉的通知您,赞我要收回了。。
|
73
gimp 2016-12-22 09:55:04 +08:00
这好尴尬...
|
74
hhstore 2016-12-22 10:04:41 +08:00 3
题主做人态度不端正啊. 我仔细对比了 2 个项目的代码, 合着你是原版照抄啊!?
你倒是改个函数名, 意思一下啊!? ============================== 1. 照着别人的项目, 完整照抄, 还出来骗赞, 这个动机就很可耻. 2. v 友给出`被抄袭人`的项目, 打脸了, 扭扭捏捏, 贴了原作者另外一个项目, 企图蒙混过关. 你抄的哪个, 你觉得大家瞎吗? 这个做法简直是不要脸了. 3. 抄代码的时候, 你看懂别人的代码了吗? 原作者肯定是 Python 老司机, 代码追求 1 行流, 恐怕你看不懂, 不知道怎么改吧? 这就尴尬了. 4. 你删了 原作者 部分代码, 你知道 `你删除那部分的代码` 用意是什么吗? 5. 学习, 借鉴, 分享, 都不可耻. 前提是首先尊重他人成果. 借鉴他人的成果, 要注明. 6. 点进你的个人简介, 看是 20 岁的学生, Python 代码 1 行流, 写的这么溜. 显然 Python 基础不错啊, 这是个好苗子, 可惜被打脸了哇. 你这种不端正的学习态度, 如果不纠正, 会误你一生的. 7. 这位同学, 念你还没毕业, 好好反思一下吧. 以后进了社会, 没人给你犯错的机会. 你每一次试错, 都要付出巨大的代价. ============================== 路过同学, 可以仔细对比一下 原作者的代码, 和 这位 抄袭者的. 高下立判. 原作者: https://github.com/zwczou/weixin-python/blob/master/weixin/pay.py 该抄袭同学: https://github.com/Jolly23/wx_pay_python/blob/master/wx_pay.py 企图蒙混的示例: https://github.com/zakzou/flask-weixin-pay/blob/master/example.py |
75
frozenshadow 2016-12-22 10:04:53 +08:00
刚要赞,好尴尬。。
|
76
kghch 2016-12-22 10:12:48 +08:00
注释都要照抄,这好尴尬,我赶紧 unstar 了...
|
77
Jolly23 OP 微信支付功能集,前期开发借鉴 https://github.com/zakzou/flask-weixin-pay ,抱歉不是在 fork 上改动是因为几个月前就开始带到项目中使用,改进包括让其脱离 flask 框架限制,并且加入微信支付最新的两个营销功能,然后从我的工程代码提出来这个底层类发布。向前辈致谢
|
78
sevncz 2016-12-22 10:15:41 +08:00
收回我的 star
|
79
hhstore 2016-12-22 10:16:37 +08:00
@zwczou 这个是原作者吗? 2333.
小吐槽下: 代码风格, 过于追求 Python 代码 1 行流, 不利于团队带新手. 另外, 代码还是写的挺优雅.老司机开车, 稳! ======================== 围观群众应该去 star 原作者哇. |
80
Jolly23 OP @hhstore 感谢指正,但贴那个地址并不是企图蒙混过关,是真的开始就看的那个代码啊,上面有我的 contribure
|
82
wpby 2016-12-22 10:23:26 +08:00
这就很尴尬了 大兄弟
|
83
vugusurk 2016-12-22 10:24:30 +08:00
开撕开撕
|
84
bonfy 2016-12-22 10:44:10 +08:00
这里我也来列下人物清单
主要当事人: - 楼主 [zwczou]( https://github.com/zwczou) - 20 岁 CTO [Jolly23]( https://github.com/jolly23) 目前情况 20 岁 CTO Star > 楼主 另外几个隐藏人物(有可能是楼主马甲,猜测,如果不是而且后续乱入的话故事会有新剧情。。。。) - 原始版 flask-weixin-pay [zakzou]( https://github.com/zakzou) - 原始版 flask-weixin-pay 主要代码贡献 [zaczwc]( https://github.com/zaczwc) 我只想说如果这些都是楼主马甲,请老司机你以后上路别挂这么多马甲啊,我找得都累。。。 |
85
Jolly23 OP 首先说一句抱歉
1. 解释下为什么贴的是另一个项目地址,并不是像 @hhstore 说的企图蒙混过关,开始开发是在几个月前,当时是从知乎上跳到 zakzou 那个 flask 微信支付项目中,当时直至昨天都不知道 zwczou 的代码和 zakzou 的代码一样,刚开始写是参照 zakzou 的,并且也提过 contribute ,现在发现他的和 zwczou 的代码一样, https://github.com/zakzou/flask-weixin-pay 2. 刚发布那个帖子也没想到会有这么多的关注,虽然在 zakzou 代码上有改进,把 zakzou 的工程脱离了 flask 框架限制并加了几个新的营销功能,但大部分还是大部分使用了原来开源的代码,现在发现可能他的代码也是从 zwczou 那 copy 的,所以我现在也是间接 copy 了 zwczou 的代码,真的抱歉。 3. 公司是我在大学时期创建的,法人不是我,聘请一些在读研究生做员工。 4. 对我个人行为感到遗憾和后悔,发布没有好好考虑到原代码提供者版权问题,对不起。希望大家能原谅,给我改过的机会。以后发布代码更加遵守版权问题。对不起。已在 github 补充了说明情况。 5. 向前辈致敬,同时也对前辈说一声对不起,对大家说声对不起。今后增强自己对于版权保护的认识,更加充分尊重原作者,抱歉。 |
87
soli 2016-12-22 10:49:17 +08:00
|
89
fxxkgw 2016-12-22 12:39:24 +08:00
坦白说这代码写的真好 看着舒服 比我强多了 我仔细看了好几遍。。 心里暗暗佩服 LZ 。。。不过看了回帖就不知道怎么说了 总之感谢分享
|
90
ybh37 2016-12-22 13:18:53 +08:00
V2 正能量啊
|
91
ahkxhyl 2016-12-22 19:32:51 +08:00
python 功能这么强 刚刚入门 才看几天的手册 得坚持下去~ 感谢分享~~
|
92
billowqiu 2016-12-23 09:21:53 +08:00
20 岁 CTO ,服啊
|