Maison  >  Article  >  Applet WeChat  >  Avis d'expédition pour le développement de WeChat Pay

Avis d'expédition pour le développement de WeChat Pay

高洛峰
高洛峰original
2017-02-24 16:28:071908parcourir

Cet article présente la mise en œuvre de la fonction de notification de livraison dans le paiement WeChat.

1. Notification d'expédition

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.

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

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

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

Certains paramètres du programme proviennent des données de développement des paiements WeChat plus haut dans ce blog. Les lecteurs doivent se référer à Exécuter

Retourner le résultat après l'exécution Pour plus de développement de paiements WeChat et d'avis d'expédition, veuillez faire attention au site Web chinois PHP pour les articles connexes !
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn