Heim  >  Artikel  >  WeChat-Applet  >  Versandhinweis für WeChat Pay Development

Versandhinweis für WeChat Pay Development

高洛峰
高洛峰Original
2017-02-24 16:28:071854Durchsuche

In diesem Artikel wird die Implementierung der Lieferbenachrichtigungsfunktion bei der WeChat-Zahlung vorgestellt.

1. Versandbenachrichtigung

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.

transid

参数

说明

appid

公众平台账户的AppId;

openid

贩买用户的OpenId,这个已经放在最终支付结果通知的PostData里了;

transid

交易单号;

out_trade_no

第三方订单号;

deliver_timestamp

发货时间戳,这里指的是Linux时间戳;

deliver_status

发货状态,1表明成功,0表明失败,失败时需要在deliver_msg填上失败原因;

deliver_msg

发货状态信息,失败时可以填上UTF8编码的错诨提示信息,比如“该商品已退款”;

app_signature

根据支付签名(paySign)生成方法中所讲的签名方式生成的,参加签名字段为:appid、appkey、openid、transid、out_trade_no、deliver_timestamp、deliver_status、deliver_msg;

sign_method

签名方法(不计入签名生成);

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

Einige Parameter im Programm stammen aus den WeChat-Zahlungsentwicklungsdaten weiter oben in diesem Blog. Leser lesen bitte Ausführen

Das Ergebnis nach dem Ausführen zurückgeben Weitere Hinweise zur Entwicklung und Lieferung von WeChat-Zahlungen finden Sie auf der chinesischen PHP-Website für verwandte Artikel!
Stellungnahme:
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