开源我公司微信支付 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 条回复
Yc1992
2016-12-22 10:23:21 +08:00
@Jolly23 别洗了,大大方方承认,把 repo 删了重新做人。
wpby
2016-12-22 10:23:26 +08:00
这就很尴尬了 大兄弟
vugusurk
2016-12-22 10:24:30 +08:00
开撕开撕
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)

我只想说如果这些都是楼主马甲,请老司机你以后上路别挂这么多马甲啊,我找得都累。。。
Jolly23
2016-12-22 10:45:15 +08:00
首先说一句抱歉
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. 向前辈致敬,同时也对前辈说一声对不起,对大家说声对不起。今后增强自己对于版权保护的认识,更加充分尊重原作者,抱歉。
bonfy
2016-12-22 10:46:16 +08:00
@bonfy 从另外那里拷贝来的,此楼主 和 彼楼主 自行脑补,反了就反了吧
soli
2016-12-22 10:49:17 +08:00
原作者 @zwczou 表现的很淡定哈。无论是回复还是另开一帖,都只是说代码问题,不对『抄袭』置评。
可见心胸大度能容人。

反观一些吃瓜群众,那么着急跳脚。。。
chuhemiao
2016-12-22 12:13:42 +08:00
@ty89 说好的不撕, 2 楼情何以堪。。。
fxxkgw
2016-12-22 12:39:24 +08:00
坦白说这代码写的真好 看着舒服 比我强多了 我仔细看了好几遍。。 心里暗暗佩服 LZ 。。。不过看了回帖就不知道怎么说了 总之感谢分享
ybh37
2016-12-22 13:18:53 +08:00
V2 正能量啊
ahkxhyl
2016-12-22 19:32:51 +08:00
python 功能这么强 刚刚入门 才看几天的手册 得坚持下去~ 感谢分享~~
billowqiu
2016-12-23 09:21:53 +08:00
20 岁 CTO ,服啊
wudanyang
2016-12-25 18:28:18 +08:00
@chuhemiao 看完二楼,满满的正能量,接着往下看,画风有点不太对啊

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

https://tanronggui.xyz/t/329136

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

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

© 2021 V2EX