开源我公司微信支付 python 版本的全部代码,包含生成微信订单,以及最新的微信平台向用户发红包,向用户付款等功能

2016-12-21 13:31:07 +08:00
 Jolly23

GitHub 代码地址 [https://github.com/Jolly23/wx_pay_python]

作者个人网站 [https://jolly23.com]

这套系统基本涵盖微信支付全部相关功能,以及自己总结的开发引导,如果可以请点 Star

微信支付功能

参考文档 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的必要参数

18763 次点击
所在节点    Python
93 条回复
HLT
2016-12-21 20:34:24 +08:00
这 TM 就很尴尬了
coolloves
2016-12-21 20:40:16 +08:00
马克,感谢分享
GreatMartial
2016-12-21 20:47:55 +08:00
字词,感谢分享
AyoCross
2016-12-21 20:48:04 +08:00
这。。。果然亮点都在评论
8bit
2016-12-21 20:52:45 +08:00
分分钟扒掉底裤.....
1etterSong
2016-12-21 21:00:20 +08:00
后排了
sivacohan
2016-12-21 21:06:11 +08:00
你知道你为什么不能叫 wxpay 吗?
因为 wxpay 被我占了。哈哈哈。
zhchbin
2016-12-21 21:09:55 +08:00
还有,这个退款操作的 API 不可以的吧。。确定能正常?文档里写着要求要用证书的。。 https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_4
zwczou
2016-12-21 21:12:56 +08:00
最开始 zakzou/flask-weixin-pay 有以下几个问题:
1. 下载账单返回的不是 xml ,而是 csv 格式的,所以此接口不能使用( download_bill)
2. 退款需要商户证书,目前还不支持,还在开发中(refund)

在 weixin-python 里面已经修复问题 1 ,问题 2 也在支持的路上


另外 zakzou/flask-weixin-pay 是支持非 flask 的框架的,你的这个版本反而仅仅支持 flask 框架了
renyijiu
2016-12-21 21:13:48 +08:00
你的个人网站 502 了。。。。。
yura93
2016-12-21 21:17:05 +08:00
我去,看到评论好方
fffflyfish
2016-12-21 21:28:07 +08:00
好尴尬,这个 star 比 zwczou 的都多
dtfm
2016-12-21 21:45:04 +08:00
昨天也看见了锤子开源的 onestep ,每次在 Github 上看见中文的文档和 readme ,都觉得好接地气,莫名的亲切。
gogobody
2016-12-21 21:46:33 +08:00
看见标题就赞了
haozibi
2016-12-21 21:56:27 +08:00
要回复先看看上面的评论吧
dazzle
2016-12-21 22:02:35 +08:00
表示看见过 N 次,个人网站放上来,几小时后挂了
(ಡωಡ)
leeyiw
2016-12-21 22:09:04 +08:00
开源也要遵守基本法吼
xfan001
2016-12-21 22:26:13 +08:00
搭车,自己写的微信公众号和微信支付 sdk , https://github.com/xfan001/weixin-sdk ,实际使用过,
与框架无关,代码很简单,看看就懂了
shijingshijing
2016-12-21 22:28:53 +08:00
这个要赞一下~ 呵呵。 Mark 一记
vugusurk
2016-12-21 22:38:59 +08:00
呵呵,楼主能解释下 35-37 楼的质疑,和 40 楼的抄袭问题吗

呵呵,楼主能解释下 35-37 楼的质疑,和 40 楼的抄袭问题吗

呵呵,楼主能解释下 35-37 楼的质疑,和 40 楼的抄袭问题吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/329136

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX