Heim >WeChat-Applet >WeChat-Entwicklung >Versandhinweis für WeChat Pay Development
In diesem Artikel wird die Implementierung der Lieferbenachrichtigungsfunktion bei der WeChat-Zahlung vorgestellt.
Um den Bestellstatus besser verfolgen zu können, muss ein Dritter die Versandbenachrichtigungs-API aufrufen, um WeChat nach Erhalt der endgültigen Zahlungsbenachrichtigung zu benachrichtigen . Der Lieferstatus der Bestellung im Hintergrund.
Lieferfrist: innerhalb von 24 Stunden für virtuelle Produkte und Serviceprodukte und innerhalb von 72 Stunden für physische Produkte.
Nach Erhalt der Zahlungsbenachrichtigung liefern Sie die Ware bitte pünktlich aus und nutzen Sie die Lieferbenachrichtigungsschnittstelle, um relevante Informationen mit dem WeChat-Backend zu synchronisieren. Wenn die Plattform die Lieferung nicht innerhalb der angegebenen Zeit erhält, wird dies als Lieferüberschreitung behandelt.
Die URL der Lieferbenachrichtigungs-API lautet:
https://api.weixin.qq.com/pay/delivernotify?access_token=xxxxxx
Die Parameter in der Die URL enthält nur die aktuellen Anmeldeinformationen für die öffentliche WeChat-Plattform access_token und die tatsächlichen Daten der Versandbenachrichtigung werden in PostData im folgenden Format abgelegt:
{ "appid" : "wwwwb4f85f3a797777", "openid" : "oX99MDgNcgwnz3zFN3DNmo8uwa-w", "transid" : "111112222233333", "out_trade_no" : "555666uuu", "deliver_timestamp" : "1369745073", "deliver_status" : "1", "deliver_msg" : "ok", "app_signature" : "53cca9d47b883bd4a5c85a9300df3da0cb48565c", "sign_method" : "sha1" }
Die obige Beschreibung der Inhaltsparameter ist in Tabelle 6 dargestellt. 12.
Parameter |
Beschreibung |
||||||||||||||||||||
appid |
AppId des öffentlichen Plattformkontos ; |
||||||||||||||||||||
openid |
Die OpenId des kaufenden Benutzers, die in den PostData der endgültigen Zahlungsergebnisbenachrichtigung platziert wurde; |
||||||||||||||||||||
Transaktionsauftragsnummer; |
|||||||||||||||||||||
out_trade_no |
Drittanbieter-Bestellnummer; 4962cee6a46084ce6f0c22bffc606e31get_biz_sign($obj); //3. 将构造的json提交给微信服务器,查询 $jsonmenu = ' { "appid" : "'.$obj['appid'].'", "openid" : "'.$obj['openid'].'", "transid" : "'.$obj['transid'].'", "out_trade_no" : "'.$obj['out_trade_no'].'", "deliver_timestamp" : "'.$deliver_timestamp.'", "deliver_status" : "'.$obj['deliver_status'].'", "deliver_msg" : "'.$obj['deliver_msg'].'", "app_signature" : "'.$app_signature.'", "sign_method" : "sha1" }'; $url = "https://api.weixin.qq.com/pay/delivernotify?access_token=".$access_token; $result = https_request($url, $jsonmenu); var_dump($result); function https_request($url, $data = null){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if (!empty($data)){ curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($curl); curl_close($curl); return $output; } |
||||||||||||||||||||
deliver_timestamp |
Lieferzeitstempel, bezieht sich hier auf den Linux-Zeitstempel; |
||||||||||||||||||||
deliver_status |
Lieferstatus, 1 zeigt Erfolg an, 0 zeigt Fehler an. Wenn ein Fehler auftritt, muss der Grund für den Fehler in Delivery_msg ausgefüllt werden tr> deliver_msg |
Senden Im Falle eines Fehlers können Sie eine UTF8-codierte Fehlermeldung eingeben, z. B. „Dieses Produkt wurde erstattet“; |
|||||||||||||||||||
app_signature |
Entsprechend der Generierung der Zahlungssignatur (paySign). Methode Die von der genannten Signaturmethode generierten beteiligten Signaturfelder sind: appid, appkey, openid, transid, out_trade_no, Deliver_timestamp, Deliver_Status, Deliver_msg; |
||||||||||||||||||||
sign_method |
Signature-Methode (nicht berücksichtigt Signaturgenerierung ; Nach der Prüfung auf OK werden Daten zurückgegeben, die angeben, ob die Benachrichtigung erfolgreich war, zum Beispiel: {"errcode":0,"errmsg": "ok"} Wenn eine Ausnahme vorliegt, wird diese in errcode und beschrieben errmsg. Bei Erfolg ist der Fehlercode 0. string(27) "{"errcode":0,"errmsg":"ok"}"
2. Programmimplementierung |