Heim > php教程 > PHP开发 > Beschreiben Sie die Schritte für die WeChat-Zahlung mit dem WeChat-Miniprogramm

Beschreiben Sie die Schritte für die WeChat-Zahlung mit dem WeChat-Miniprogramm

高洛峰
Freigeben: 2016-12-03 10:09:50
Original
2419 Leute haben es durchsucht

Vor kurzem ist die Entwicklung des WeChat-Applets in die Zahlungsphase eingetreten. Ich beschäftige mich mit der App-Entwicklung und kenne den Zahlungsvorgang daher immer noch auswendig. Die Zahlung für das WeChat-Miniprogramm ist jedoch etwas seltsam. Der Antrag wird im offiziellen Konto erstellt, aber die Einführung des Dokuments ist im offiziellen Konto nicht zu finden Auch der Umfang bzw. die Reichweite der App-Zahlung ist fraglich. Das Folgende ist der Eingang zum Miniprogramm-Zahlungsdokument (verschachtelt in der Miniprogramm-API):

https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php? Kapitel= 7_3&index=1

Miniprogramm-Zahlungsschritte:

1, Vorauszahlung

2, basierend auf Vorauszahlungsdaten + Unterschrift——> Zahlung einleiten

3. Zahlungsrückruf

Im Folgenden finden Sie eine kurze Beschreibung dieser drei Schritte:

1. Diese Schnittstelle übermittelt die Zahlungsinformationen (Bestellnummer, Preis usw.) über das Frontend an den Entwicklerserver und gibt dann einige Informationen zurück, die das eigentliche Frontend bezahlen muss, z. B.

Vorauszahlungsschnittstelle des Entwicklerservers:

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"
}
Nach dem Login kopieren

2. Zahlung einleiten (es ist zu beachten, dass zum Einleiten der Zahlung kein Hochladen einer App-ID erforderlich ist,

, aber zum Signieren von PaySign ist eine App-ID erforderlich, und das ist auch der Fall zuerst platziert) )

wx.requestPayment({ 
nonceStr: res.data.nonceStr, 
package: "prepay_id="+res.data.prepayId, 
signType: 'MD5', 
timeStamp: res.data.timestamp, 
paySign: sign,//<strong><span style="color:#ff0000;">五个字段参与签名(区分大小写):appId,nonceStr,package,signType,timeStamp(需要注意的是,这5个参数签名排序的顺序按照ASCII字典序排序)</span></strong> 
success: function(res){ 
console.log("支付成功"); 
}, 
fail: function() { 
}, 
complete: function() { 
} 
})
Nach dem Login kopieren

Signaturzeichen generieren

https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_3&index= 1&t=20161122

Downloadadresse des WeChat-Applets MD5-Verschlüsselungstool: https://code.csdn.net/snippets/2019875/master/download

var MD5Util = require(&#39;../../../utils/md5.js&#39;);
var sign = &#39;&#39;; 
//<strong><span style="color:#ff0000;">顺序按照ASCII字典序排序</span></strong> 
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();
Nach dem Login kopieren

Der obige Code zum Generieren der Signatur ist mein Code, nicht Es ist sehr klar. Die detaillierte Beschreibung des offiziellen Dokuments ist unten aufgeführt:

Gehen Sie davon aus, dass die übertragenen Parameter wie folgt sind:

appid: wxd930ea5d5a258f4f(需要注意的是appid 在wx.requestPayment({})发起支付是不上传,但是签名时需要)
mch_id: 10000100
device_info: 1000
body: test
nonce_str: ibuaiVcKdpRxkhJA
Nach dem Login kopieren

Schritt 1: Befolgen Sie die Schlüssel=Wert-Format für die Parameter und folgen Sie dem Parameternamen. Die lexikografische ASCII-Reihenfolge ist wie folgt:

stringA="appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_id=10000100&nonce_str=ibuaiVcKdpRxkhJA";
Nach dem Login kopieren

Schritt 2: Spleißen Sie den API-Schlüssel:

stringSignTemp="stringA&key=192006250b4c09247ec02edce69f6a2d"
sign=MD5(stringSignTemp).toUpperCase()="9A0A8659F005D6984697E2CA0A9CF3B7"
Nach dem Login kopieren

Das Zeichen wird zu diesem Zeitpunkt für den wx.requestPayment-Upload-Parameter paySign verwendet.

Endlich die endgültigen gesendeten Daten abrufen:

<xml>
<appid>wxd930ea5d5a258f4f</appid>
<mch_id>10000100</mch_id>
<device_info>1000<device_info>
<body>test</body>
<nonce_str>ibuaiVcKdpRxkhJA</nonce_str>
<sign>9A0A8659F005D6984697E2CA0A9CF3B7</sign>
<xml>
Nach dem Login kopieren

Das Obige ist das vom Herausgeber eingeführte WeChat-Applet für WeChat-Zahlungsschritte. Ich hoffe, es hilft allen


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage