微信小程序支付逻辑

这几天抽空弄了一个小程序,用到微信支付,在支付的这个过程中卡了很久,主要是生成签名以及Authorization的处理花费了巨大的时间。
网上查询的资料太杂乱了,小程序开发文档也有点庞大,最后花了两天时间稍微捋清思路,才走好其中流程,因此做个记录。
此次用到的是微信小程序的支付v3,后端使用的是python。
流程:
1、申请商户号,得到商户号(我的是直连商户)ID:mchId、商户API证书序列号serial_no,下载商户API证书(加密用)
2、调用jsapi下单前,将其参数按规则拼接进行SHA256 WITH RSA加密,之后再按规则拼接
此处注意!!!参数里的 description 有可能涉及中文,注意编码问题预防产生乱码相应的参数,参考文档即可,这里列出的是我需要的必填参数

加密前的参数拼接规则(注意!!!每段后面不要漏**\n**):
图片源自微信文档
加密后的参数拼接规则:
截图源自微信文档
将Authorization放进jsapi请求的headers,发起请求获得prepay_id。
3、将与步骤2同样的timestamp、nonce_str和appId、步骤2获得的prepay_id,按规则拼接,再次进行SHA256 WITH RSA加密。
加密前的参数拼接规则(注意!!!每段后面不要漏**\n**):
图片源自微信文档
4、将步骤3加密后的值给到小程序api:wx.requestPayment(Object object),将相应的参数填入即可
图片源自微信文档
结束!有问题评论/私聊交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值