Versandhinweis für WeChat Pay Development

高洛峰
Freigeben: 2017-02-24 16:28:07
Original
1868 Leute haben es durchsucht

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

Die obige Beschreibung der Inhaltsparameter ist in Tabelle 6 dargestellt. 12.

< td width="137">

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;

 <?php 
 include_once("WxPayHelper.php"); //1. 获取access token
 $appid = "wx0000000000000000"; $appsecret = "e76050733ce76050733ce76050733cdd"; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret"; $result = https_request($url); $jsoninfo = json_decode($result, true); $access_token = $jsoninfo["access_token"]; //2.准备参数
 $deliver_timestamp = time(); //2.1构造最麻烦的app_signature
 $obj[&#39;appid&#39;]               = $appid; $obj[&#39;appkey&#39;]              = "8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6k"; $obj[&#39;openid&#39;]              = "o0pk9uIVnlY-fJkzFKEbQ6LJ4cFc"; $obj[&#39;transid&#39;]             = "1218614901201405273313473135"; $obj[&#39;out_trade_no&#39;]        = "JfuKdiBig4zZnE4n"; $obj[&#39;deliver_timestamp&#39;]   = $deliver_timestamp; $obj[&#39;deliver_status&#39;]      = "1"; $obj[&#39;deliver_msg&#39;]         = "ok"; $WxPayHelper = new WxPayHelper(); //get_biz_sign函数受保护,需要先取消一下,否则会报错
 $app_signature  = $WxPayHelper->get_biz_sign($obj); //3. 将构造的json提交给微信服务器,查询
 $jsonmenu = &#39;
 {
     "appid" : "&#39;.$obj[&#39;appid&#39;].&#39;",
     "openid" : "&#39;.$obj[&#39;openid&#39;].&#39;",
     "transid" : "&#39;.$obj[&#39;transid&#39;].&#39;",
     "out_trade_no" : "&#39;.$obj[&#39;out_trade_no&#39;].&#39;",
     "deliver_timestamp" : "&#39;.$deliver_timestamp.&#39;",
     "deliver_status" : "&#39;.$obj[&#39;deliver_status&#39;].&#39;",
     "deliver_msg" : "&#39;.$obj[&#39;deliver_msg&#39;].&#39;",
     "app_signature" : "&#39;.$app_signature.&#39;",
     "sign_method" : "sha1"
 }&#39;; $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;
 }
Nach dem Login kopieren

deliver_timestamp

Lieferzeitstempel, bezieht sich hier auf den Linux-Zeitstempel;

deliver_status

< p style="text-align:left;">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>< td width="137">

deliver_msg

Senden Im Falle eines Fehlers können Sie eine UTF8-codierte Fehlermeldung eingeben, z. B. „Dieses Produkt wurde erstattet“;

< p style="text-align:left;">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"}"
Nach dem Login kopieren

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!
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 Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!