关于 (开源我公司微信支付 python 版本的全部代码...) 项目的一些 bug

2016-12-21 22:50:58 +08:00
 zwczou

看到 V2EX 上面有关于微信支付的开源项目 开源我公司微信支付 python 版本的全部代码..., 细看源码后发现此项目 fork 我的老项目 zakzou/flask-weixin-pay ,所以继承了一些老问题

  1. jsapi 里面的 timestamp 为整型,在 ios 系统里面调起 api 有问题
  2. download_bill 里面的 bill_type 的必填,另外返回内容存在是文本而非 xml ,所以不能转换为 dict
  3. refund 需要证书

以上问题都已经在 zwczou/weixin-python 里面修复

另外 Jolly23/wx_pay_python 又新产生的问题

  1. unified_order 里面的 user_ip 应为 spbill_create_ip ,导致误判 flask ,另外 nonce_str 传入有误

另外推荐下我的项目 weixin-python,包括微信支付,微信公众号,微信登陆,微信消息处理等

已经在实际项目中使用过微信网页登陆,微信支付,微信公众平台大部分

主要分为几个模块:

  1. 微信登陆
  2. 微信支付
  3. 微信消息 ( 改自lepture/flask-weixin )
  4. 微信公众平台

以上几个模块都可以单独使用,也可以跟 flask 组合一起使用

10247 次点击
所在节点    Python
42 条回复
huijian222
2016-12-22 10:09:36 +08:00
围观
gogobody
2016-12-22 10:16:08 +08:00
支持原作者
VicYu
2016-12-22 10:19:38 +08:00
@zwczou

小建议,把 wiki 上的快速开始放到 Readme?
scys
2016-12-22 10:20:48 +08:00
围观
bigzhu
2016-12-22 10:29:43 +08:00
star 了,估计很快就会用到。

今年初还为了个项目,自已很痛苦的写了个 python 的微信支付。(再也不想去看微信的 API 文档了)

我这个 33 岁做过好几次 CTO 的老司机,只能和这 20 岁 CTO 说:这种虚名没什么意思,做 CTO 也不是什么牛 X 的事。真没必要靠抄袭来爽,有这功夫好好学习,多写代码。另外请和原作者道歉。
Jolly23
2016-12-22 10:31:48 +08:00
首先说一句抱歉,
1. 不知道 zakzou 和你是不是一个人,刚开始写是参照 zakzou 的,并且也提过 contribute ,现在发现他的和你的代码一样。 https://github.com/zakzou/flask-weixin-pay
2. 刚发布那个帖子也没想到会有那么多的关注,虽然在 zakzou 代码上有改进,但大部分还是大部分使用了原来开源的代码,现在发现可能他的代码也是从您那 copy 的,所以我现在也是间接 copy 了您的代码,真的抱歉。
3. 对我个人行为感到遗憾和后悔,发布没有好好考虑要提到原代码提供者版权问题,对不起。希望您能原谅,给我改过的机会。以后发布代码更加遵守版权问题。抱歉,致敬
qwer1234asdf
2016-12-22 10:36:14 +08:00
这就尴尬了。。
bonfy
2016-12-22 10:43:20 +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)

我只想说如果这些都是楼主马甲,请老司机你以后上路别挂这么多马甲啊,我找得都累。。。
Charkey
2016-12-22 10:46:05 +08:00
好像有点乱的样子
noobsheldon
2016-12-22 10:48:36 +08:00
@qinxi 你这图像是谁啊?
mimzy
2016-12-22 10:55:39 +08:00
@noobsheldon 南小鸟
Jolly23
2016-12-22 10:56:11 +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. 向前辈致敬,同时也对前辈说一声对不起,对大家说声对不起。今后增强自己对于版权保护的认识,更加充分尊重原作者,抱歉。
noobsheldon
2016-12-22 11:11:26 +08:00
@mimzy 多谢
zwczou
2016-12-22 11:16:01 +08:00
@Jolly23
@bonfy

关于马甲的事情:
所有马甲都带有 ZOU 或者 ZWC ,因为 ZWC 是本人的姓名拼音, ZOU 是姓拼音,而平时开发在公司有两台,家里面有台笔记本, gitconfig 有些出入导致马甲泛滥,给大家带来不便,不好意思!

关于新开项目的事情:
最开始有 zakzou/flask-weixin-pay ,因为我做的是微信里面的支付(pay.py), JSAPI 需要有 openid ,而 openid 依赖于微信网页授权(login.py),另外又经常用到 access token 做一些事情,所以导致想另起炉灶,做一个比较全的微信 SDK ,才有了 zwczou/weixin-python


@Jolly23 接受你的道歉,事情就到这里吧!

另:希望大家多多关注项目本身,多提交 issue 跟 pull requests !
hhstore
2016-12-22 11:24:04 +08:00
@Jolly23 你 @我了, 那位说一下.

1. 你参考的那个项目, 头文件里, 已经给出原作者(也就是本贴楼主) 的 gmail. 你聪明的话, 第一时间 google, 就能找到作者的 github, 以及 原始项目.

2. 你对 参考的的项目的一处 contribute, 是什么呢.
把原接口 json 返回值, 改成 flask 里的 jsonify() 实现. (画蛇添足哇)
那么同学, 你有没有去看一下 flask 源码里 jsonify() 是如何实现的呢? 哈哈.
为什么别人直接用 json() 返回? 你真以为别人不知道 jsonify()吗?
可能原因: 不想跟 flask 框架绑死. 本来一个 lib, 最佳状况, 就是越少依赖越好.
你这处改动, 出发点是好的. jsonify() 实现, 多做了些事情.
但是, 数据的格式化, 处理, 原本就不是 lib 该考虑的, 应该由上层使用者, 再去包装数据.

3. 我自己实现的 微信支付 SDK, 就不需要 flask.
抽时间整理下代码, 会放出来, 另外还有 支付宝支付等 SDK, 欢迎 star.

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

我本意也不是想撕你一个学生, 只不过想提醒下, 学习态度要端正.
不要太浮躁, 看别人的代码, 要仔细, 多琢磨一下为什么.
看不懂别人写的代码是干嘛用的, 就随便删? 你可以提个 issue, 说不定作者心情好就告诉你一下.

学习的心态不好, 浅尝辄止, 浮光掠影的. 不会有多大成就.

每个人都是从菜鸟一步步成长起来的, github 有很多好代码.
谦虚点, 多读读, 多琢磨琢磨.

不要只是把活干完, 就完了.
干好, 干的更好, 才有出息.
hhstore
2016-12-22 11:31:55 +08:00
纠正:
第 2 条, 有偏差. (部分评论基于 lib 前提, 请无视)
没细看, 原来是 example.py 代码. 改成 jsonify() 是可以的.
如果是 lib 的 API 的返回值, 常规做法是返回正常的 Python 数据类型, 而不是 json, 更不需要引入 jsonify()
Jolly23
2016-12-22 11:45:00 +08:00
@hhstore 学习态度要端正.
不要太浮躁, 看别人的代码, 要仔细, 多琢磨一下为什么.
看不懂别人写的代码是干嘛用的, 就随便删? 你可以提个 issue, 说不定作者心情好就告诉你一下.

学习的心态不好, 浅尝辄止, 浮光掠影的. 不会有多大成就.

每个人都是从菜鸟一步步成长起来的, github 有很多好代码.
谦虚点, 多读读, 多琢磨琢磨.

不要只是把活干完, 就完了.
干好, 干的更好, 才有出息.

谢谢,通过这件事儿,我会重新思考自己的问题,把态度以及思想都摆正,谢谢您了。也谢谢您的忠告,永记于心
wwlweihai
2016-12-22 12:03:06 +08:00
本身微信支付就不是个很困难的问题,接口以及提供了,文档也有,按照要求接入,老司机最多两天就出来了,开不开源,问题都没什么问题,何况现在还用两家支付路由公司,做多种支付的聚合,所以这个事情就更简单了。最主要是和业务关联就好。


哎,年轻人呀。总是希望搞个大新闻。
cythb
2016-12-22 13:14:34 +08:00
老司机,马甲是多啊。 github 已 star ,学习学习。
fityme
2016-12-22 14:32:57 +08:00
在用楼主那个 weixin-python 库,想说一句:老司机能在 install_requires 里把 flask 的依赖加上么。。。

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

https://www.v2ex.com/t/329267

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

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

© 2021 V2EX