Recently, the development of WeChat applet has entered the payment stage. I have been engaged in App development, so I still know the payment process by heart. This article will tell you about the steps of WeChat payment through WeChat mini program. Friends who need it can refer to
Recently, the development of WeChat mini program has entered the payment stage. I have been engaged in App development, so I still know the payment process by heart. At heart. But the payment for WeChat mini program is a bit strange. The application is created in the official account, but the introduction of the document cannot be found in the official account. It is very confusing, and the master of the mini program belongs to the official account for payment. The scope or the scope of app payment is also questionable. The following is the entrance to the mini program payment document (nested in the mini program api):
https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter= 7_3&index=1
Mini program payment steps:
1, prepayment
2, signature based on prepayment data— —>Initiate payment
3, payment callback
The following is a brief description of these three steps:
1, prepaid.This interface submits the payment information (order number, price, etc.) to the developer server through the front end. The developer server submits it to WeChat and then returns some information that the real front end needs to pay; eg:
Prepayment interface of developer server:
https://()htm?total_fee=100&cid=6001&orderCodes=2016120119 { "sign":"A2****************A6", "timestamp":"14****************68", "package":"Sign=WXPay", "partnerId":"14****************02", "appid":"wx****************ab", "nonceStr":"9f****************37", "prepayId":"wx****************54" }
2, initiate payment (it should be noted that initiating payment does not require uploading appid,
But the signature paySign requires appid, and it is placed first)
wx.requestPayment({ nonceStr: res.data.nonceStr, package: "prepay_id="+res.data.prepayId, signType: 'MD5', timeStamp: res.data.timestamp, paySign: sign,//五个字段参与签名(区分大小写):appId,nonceStr,package,signType,timeStamp(需要注意的是,这5个参数签名排序的顺序按照ASCII字典序排序) success: function(res){ console.log("支付成功"); }, fail: function() { }, complete: function() { } })
Generate signature sign
https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_3&index=1&t=20161122
WeChat Mini Program MD5 encryption tool download address: https://code.csdn.net/snippets/2019875/master/download
var MD5Util = require('../../../utils/md5.js'); var sign = ''; //顺序按照ASCII字典序排序 var signA = "appId="+app.appId+"&nonceStr="+res.data.nonceStr+"&package=prepay_id="+res.data.prepayId+"&signType=MD5&timeStamp="+res.data.timestamp; var signB = signA+"&key="+app.key; sign = MD5Util.MD5(signB).toUpperCase();
Generate signature The above is my code, It’s not very clear. The detailed description from the official document is listed below:
Assume that the parameters transmitted are as follows:
appid: wxd930ea5d5a258f4f(需要注意的是appid 在wx.requestPayment({})发起支付是不上传,但是签名时需要) mch_id: 10000100 device_info: 1000 body: test nonce_str: ibuaiVcKdpRxkhJA
The first step : Arrange the parameters in the key=value format and sort them in ASCII dictionary order as follows:
stringA="appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_id=10000100&nonce_str=ibuaiVcKdpRxkhJA";
Step 2: Splicing API key:
stringSignTemp="stringA&key=192006250b4c09247ec02edce69f6a2d" sign=MD5(stringSignTemp).toUpperCase()="9A0A8659F005D6984697E2CA0A9CF3B7"
The sign at this time is used for wx.requestPayment upload parameter paySign.
Finally got the final sent data:
wxd930ea5d5a258f4f 10000100 1000 test ibuaiVcKdpRxkhJA 9A0A8659F005D6984697E2CA0A9CF3B7
The above is the entire content of this article, I hope it will be helpful to everyone's study, more Please pay attention to the PHP Chinese website for related content!
Related recommendations:
WeChat mini program uses PHP to implement payment function
About the mall development of WeChat mini program (ecshop )
The above is the detailed content of About the steps for WeChat payment using WeChat applet. For more information, please follow other related articles on the PHP Chinese website!