Android App支付场景下的微信支付开发

2023-06-02  本文已影响0人  b_walking

集成支付宝支付用了两天,集成微信支付却用了一周。
看了大量的帖子学习,没有一个说微信文档写的好的,甚至很多建议向支付宝学习。
微信支付文档给我的感觉是东一块西一块,不连贯,而且在部分细节上甚至互相矛盾。
现在趁着头脑清醒,记录一下:
1.先从这个商户平台的开发指引开始看
https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_5_2.shtml#part-6
2.再看这个API列表
https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_5_3.shtml
我的程序用到了三个API:APP下单、APP调起支付、支付结果通知

Content-Type: application/json
Accept: application/json

只加入这两项还是不行,因为文档后面又说了,还需要设置User-Agent
设置了User-Agent还是不行,因为在接口规则-开发指南-签名生成文档里说了:微信支付API v3 要求商户对请求进行签名,并通过HTTP Authorization头来传递签名。
https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay4_0.shtml
所以请求头中一共含有四项信息。
我的服务器是Node,至于如何在node.js中生成签名以及解密参数,下面这个帖子给了我很大的帮助
https://blog.csdn.net/qq_39653624/article/details/125755335

调用API前,需要先向微信注册您的APPID

再就是要对调起支付的几个参数进行签名,签名方法同下单API中的签名方法是一样的。还有一点就是,APP的签名需与在微信开放平台创建APP时所填写的签名是一致的,不然调起不了支付,也收不到相关提示,我之前没有注意到这个问题,从坑里爬了很久才出来。

var https = require('https')

收到的结果通知消息是需要解密的,解密的方式见上面csdn那个帖子就可以了。
收到结果通知后,要向微信服务器返回确认消息,支付宝支付只是返回success就可以了,但是微信支付却需要返回消息头才行。

res.writeHead(200)
res.end()

以上就是APP支付场景下的微信支付流程,几乎每天都会掉到一个坑里,但幸运的是第二天又能奇迹般的爬出来,真是太不容易了。

上一篇下一篇

猜你喜欢

热点阅读