微信小程序支付源码,后台服务端代码

时间:2023-03-10 05:39:58
微信小程序支付源码,后台服务端代码

作者:尹华南,来自原文地址

微信小程序支付绕坑指南

步骤

A:小程序向服务端发送商品详情、金额、openid

B:服务端向微信统一下单

C:服务器收到返回信息二次签名发回给小程序

D:小程序发起支付

E:服务端收到回调

首先准备以一下信息

微信小程序支付源码,后台服务端代码

小程序发送小程序向服务端发送商品详情、金额、openid

微信小程序支付源码,后台服务端代码

服务端接收小程序发来的信息

微信小程序支付源码,后台服务端代码

判断信息是否为空,不为空将要参与签名的信息组合成键值对,准备签名

微信小程序支付源码,后台服务端代码

签名算法(首先进行排序,连接商户KEY,进行MD5计算,结果转成大写)

微信小程序支付源码,后台服务端代码

将计算好的MD5值也加入到之前的键值对中,并且将整个键值对转成XML格式发送给预下单地址https://api.mch.weixin.qq.com/pay/unifiedorder

微信小程序支付源码,后台服务端代码

等会支付服务器返回预支付信息,判断返回结果

微信小程序支付源码,后台服务端代码

将返回的结果,和二次签名的值一起返回给小程序

微信小程序支付源码,后台服务端代码

需要注意的是二次签名的随机字符串是微信服务器发来的不是自己随机的,另外appid和Key也要参与签名计算千万别忘记了。

'appId='+appId+'&nonceStr='+nonceStr+'&package='+pkg+'&signType=MD5&timeStamp='+timeStamp+"&key=d27551c7803cf16*e536b192d5d03b"这才是完整的。

小程序收到结果发起支付

微信小程序支付源码,后台服务端代码

支付截图

微信小程序支付源码,后台服务端代码

遇到的问题:

预支付请求签名错误

解决办法:首先确定appid商户号KEY是否正确,参与签名的字符串是否按照要求排序,是否是UTF8格式,如果实在不行可以重置一次KEY试一试。

返回错误说total_fee参数为空

解决办法:如果total_fee参数不为空,可能是package格式不对应该为"prepay_id="+prepay_id