开源我公司微信支付 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 条回复
wwlweihai
2016-12-21 22:42:31 +08:00
关于支付,目前采用 ping++的方案是个不错的选择,而且有商业的团队来保障质量。这个项目开源,是个学习的好东西。
n37r06u3
2016-12-21 22:44:13 +08:00
502 Bad Gateway

nginx/1.10.0 (Ubuntu)
分分钟。。。
mingyun
2016-12-21 22:45:57 +08:00
star 了,另 https://jolly23.com/ 502 了
v4an
2016-12-21 23:47:51 +08:00
i147
2016-12-21 23:57:48 +08:00
@wwlweihai 没错,我们也是这样。。。 pingxx 和 beecloud
onefouroo
2016-12-22 07:18:21 +08:00
马克一下 可能以后用的着
phpdever
2016-12-22 08:22:56 +08:00
楼主,我喜欢你
sambawy
2016-12-22 09:08:55 +08:00
先赞一个再慢慢看
quericy
2016-12-22 09:13:33 +08:00
这特么就很尴尬了
xylitolLin
2016-12-22 09:28:09 +08:00
我只是来看戏的
ahonn
2016-12-22 09:38:03 +08:00
lincolnhuang
2016-12-22 09:39:54 +08:00
比较了下代码, 20 岁 CTO ,抱歉的通知您,赞我要收回了。。
gimp
2016-12-22 09:55:04 +08:00
这好尴尬...
hhstore
2016-12-22 10:04:41 +08:00
题主做人态度不端正啊. 我仔细对比了 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
frozenshadow
2016-12-22 10:04:53 +08:00
刚要赞,好尴尬。。
kghch
2016-12-22 10:12:48 +08:00
注释都要照抄,这好尴尬,我赶紧 unstar 了...
Jolly23
2016-12-22 10:14:03 +08:00
微信支付功能集,前期开发借鉴 https://github.com/zakzou/flask-weixin-pay ,抱歉不是在 fork 上改动是因为几个月前就开始带到项目中使用,改进包括让其脱离 flask 框架限制,并且加入微信支付最新的两个营销功能,然后从我的工程代码提出来这个底层类发布。向前辈致谢
sevncz
2016-12-22 10:15:41 +08:00
收回我的 star
hhstore
2016-12-22 10:16:37 +08:00
@zwczou 这个是原作者吗? 2333.

小吐槽下:
代码风格, 过于追求 Python 代码 1 行流, 不利于团队带新手.
另外, 代码还是写的挺优雅.老司机开车, 稳!

========================

围观群众应该去 star 原作者哇.
Jolly23
2016-12-22 10:17:28 +08:00
@hhstore 感谢指正,但贴那个地址并不是企图蒙混过关,是真的开始就看的那个代码啊,上面有我的 contribure

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

https://tanronggui.xyz/t/329136

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

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

© 2021 V2EX