微信支付接口调用技巧 企业付款下单二维码账单查询

阿木 发布于 4 小时前 1 次阅读


又到了周五晚上,其实已经周六凌晨六点多了。

刚把那个报“签名验证失败”的bug交掉。第43次了。

外面的窗有着暗黑之色,屏幕呈现着明亮之光,那个令人憎恶的prepay_id,仿若幽灵一般。

支付场景非法,到底是哪非法了

有人说你下单接口用错了,APP调成了JSAPI。

可我明明对着文档一行一行对的。

紧接着察觉到,并非我出现了差错,是相关文档开展了更新举动,然而却并未彻底完成更新这一动作,将V2版本的演示示例与V3版本的接口相互交融于一处,好像是在火锅之中煮放了草莓这般具有违和感的状貌。

算了,能跑就行 。

其实我最怕的不是报错,是它不报错

回调不来。

服务器像个哑巴,你等它说话,它沉默。

然后运营过来问:这单用户说付了,钱呢?

网络环境未能通过安全验证,请稍后再试

这句文案写得太温和了。

实际的情形是:你于下单之际身处公司的WIFI环境,而在结账之时却跑到楼梯间切换至4G,如此这般微信便会觉得你好似一个盗号的。

于是啪,拦住。

我懂,安全第一。

可是用户不懂啊,用户只觉得你烂 。

商家参数格式有误,请联系商家解决

你看,这句话本身就是个死循环。

能看到“联系商家”的是用户,看到“参数有误”的会是商家,而程序员呢,看着看着就头发掉了。

其实就一个问题:referer丢了

那个APP当中的webview,在默认的情况下是不会具备这个的,你必须要手动将其塞进去,这情形就如同给倔强的孩子穿上秋裤一样。

关于penid,其实他们想说啥

用户给的文档里写“penid是支付授权目录”。

我猜,大概率是笔误,想说pay sign或者path

但也无所谓。

那个名字并不重要,关键的是,你的小程序页面路径得填进微信支付商户平台处,的那个处于页面之中的白色框以内。

填错一个斜杠,全剧终。

这种痛,只有经历过的人懂 。

企业付款,哦现在叫商家转账

这项名称的更改相当不错,以往称作“企业付款”,众多小商户听闻之后,会感觉与自身毫无关联。

其实发个奖励、退个押金、给用户发个小红包,都用得上 。

但申请流程嘛……

资质、场景证明、审核。

等你批下来,用户早跑隔壁用支付宝了。

账单查询,对账,财务阿姨的微笑

只有每个月的1号,财务阿姨会对我和颜悦色。

因为账单拉下来了,对上了。

可是她们并不晓得,那对账脚本乃是我历经熬夜才撰写而成的,在运行的时候,我的手会不由自主地颤抖,心里害怕遗漏任何一笔。

V3的回调用的是JSON了,终于不是XML。

值得开瓶啤酒 。

有人走了另一条路

在GitHub之上,我寻觅到了一个项目,其名为wechatypay-node。

阐述者表明,他并无申请商户号的意愿,于是撰写了一个机器人,对微信消息予以监听,借助赞赏码来进行收款。

无费率,无门槛,纯野生。

然后评论区有人问:这不违反协议吗?

作者没回。

我觉得他看到了,只是不想回 。

回调方法,你能不能别调我

我最怕半夜手机震动。

微信支付回调来了。

迷迷糊糊爬起来看日志,200 OK。

但订单状态没变。

后续才明白,回调地址需作出返回,其内容为“SUCCESS”,且必须设置为大写形式,无论是全角方式还是半角方式,均不符合要求。

你说这是不是玄学 ?

签名,永远的签名

V3换了SHA256withRSA。

文档说更安全了,我没意见。

但我只想问:为什么我本地签名工具能过,服务器跑就报错?

后来察觉到是私钥格式方面的问题,存在PKCS#1以及PKCS#8这两种,仅仅相差一个换行符而已。

一个换行符,查了两天 。

那些jar包,其实也是人写的

maven拉下来,几百个类。

你不知道哪个类哪天就废弃了。

你不清楚文档所撰写的是0.4.7,然而最新的版本已然是0.5.2,并且API全部都更改了。

你只知道,它今天能跑,先别动。

别动 。

其实微信支付也是个孩子

有bug,有坑,有历史遗留。

但这么多年,它确实没丢过我一分钱。

那些半夜惊醒的瞬间,后来发现都是我自己写错了。

它只是安静地返回一个:

{“code”:“INVALID_REQUEST”}

像个冷脸的老师,看着你演。

该去睡了。

明天,还要承接一回调,还得签一通名,还需跟运营阐释,“用户付了钱然而我们没有收到通知”这不意味着没收到,实则是收到了但幂等性未能处理妥当。

这些事,没人教。

文档不写,社区不教。

你仅能够自己踩踏一回,接着发布一个帖子,随后发觉十年之前便已然有人踩踏经过了。

然后关掉网页。

继续写。

毕竟,周一还要上线。