Maison >Applet WeChat >Développement WeChat >Avis d'expédition pour le développement de WeChat Pay
Cet article présente la mise en œuvre de la fonction de notification de livraison dans le paiement WeChat.
Afin de mieux suivre l'état de la commande, un tiers doit appeler l'API de notification d'expédition pour informer WeChat après avoir reçu la notification de paiement finale. . Le statut de livraison de la commande en arrière-plan.
Délai de livraison : sous 24 heures pour les produits virtuels et de service, et sous 72 heures pour les produits physiques.
Après avoir reçu la notification de paiement, veuillez livrer les marchandises à temps et utiliser l'interface de notification de livraison pour synchroniser les informations pertinentes avec le backend WeChat. Si la plateforme ne le reçoit pas dans le délai imparti, cela sera traité comme une heure supplémentaire de livraison.
L'URL de l'API de notification de livraison est :
https://api.weixin.qq.com/pay/delivernotify?access_token=xxxxxx
Les paramètres dans le L'URL contient uniquement les informations d'identification actuelles de la plate-forme publique WeChat access_token, et les données réelles de la notification d'expédition sont placées dans PostData, avec le format suivant :
{ "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" }
La description du paramètre de contenu ci-dessus est présentée dans le tableau 6- 12.
Paramètres |
Description |
||||||||||||||||||||
appid |
Compte de plateforme publique AppId ; |
||||||||||||||||||||
openid |
L'OpenId de l'utilisateur acheteur, qui a été placé dans le PostData de la notification du résultat du paiement final ; |
||||||||||||||||||||
Numéro de commande de transaction ; |
|||||||||||||||||||||
out_trade_no |
Numéro de commande tiers ; 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 |
Horodatage de livraison, fait référence ici à l'horodatage Linux ; |
||||||||||||||||||||
deliver_status |
Statut de livraison, 1 indique le succès, 0 indique l'échec. Lorsqu'un échec se produit, la raison de l'échec doit être renseignée dans delivery_msg ; tr> deliver_msg |
Envoyer En cas d'échec, vous pouvez remplir un message d'erreur encodé en UTF8, tel que "Ce produit a été remboursé" ; |
|||||||||||||||||||
app_signature |
Selon la génération de signature de paiement (paySign) méthode Générés par la méthode de signature mentionnée, les champs de signature participants sont : appid, appkey, openid, transid, out_trade_no, Deliver_timestamp, Deliver_status, Deliver_msg |
||||||||||||||||||||
sign_method |
Méthode de signature (non comptabilisée dans génération de signature ; Après avoir vérifié ok, des données seront renvoyées pour indiquer si la notification a réussi, par exemple : {"errcode":0,"errmsg":"ok"} S'il y a une exception, elle sera décrite dans errcode et errmsg. En cas de succès, le code d'erreur sera 0. string(27) "{"errcode":0,"errmsg":"ok"}"
2. Mise en œuvre du programme |