Maison  >  Article  >  Applet WeChat  >  Explication détaillée de l'exemple de code de notification de transaction de développement de paiement WeChat

Explication détaillée de l'exemple de code de notification de transaction de développement de paiement WeChat

高洛峰
高洛峰original
2017-03-27 14:04:162303parcourir

Cet article explique principalement comment obtenir des notifications de transaction lors de l'utilisation de l'API JS pour payer et fournit des exemples de code. J'espère qu'il sera utile aux partenaires qui développent le paiement WeChat

1. 🎜>

Une fois que l'utilisateur a terminé avec succès le paiement, le backend WeChat informe (POST) le serveur marchand (notify_url) du résultat du paiement. Les commerçants peuvent utiliser les résultats de notification de notify_url pour afficher des pages personnalisées.

Lors de l'interaction avec les notifications en arrière-plan, si la réponse reçue par WeChat du commerçant n'est pas réussie ou expire, WeChat n'échouera pas la notification. WeChat relancera régulièrement la notification via une certaine stratégie (telle que. 8 fois en 30 minutes), à condition que cela puisse améliorer le taux de réussite des notifications, mais WeChat ne garantit pas que les notifications aboutiront finalement.

La notification en arrière-plan est exécutée via notify_url dans la requête, en utilisant le mécanisme POST.

Dans le même temps, les données XML seront également incluses dans postData.

2. Obtention et réponse aux résultats des transactions

Selon la documentation officielle, créez notice.php pour notifier les résultats.

Le contenu du programme est le suivant :

<?php foreach ($_GET as $key=>$value) 
{
 logger("Key: $key; Value: $value");
}
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
logger($postStr);

if (isset($_GET)){
 echo "success";
}

//日志记录
function logger($log_content)
{
 $max_size = 100000;
 $log_filename = "log.xml";
 if(file_exists($log_filename) and (abs(filesize($log_filename)) > $max_size)){unlink($log_filename);}
 file_put_contents($log_filename, date('H:i:s')." ".$log_content."\r\n", FILE_APPEND);
}
?>
La fonction du programme ci-dessus est :

Recevoir des notifications publiées sur l'URL, elles sont dans sous la forme de variables GET

Récupérer le paquet de données XML de la publication

Renvoyer le message de réussite success

Mettez le chemin complet vers notice.php dans l'url de notification du paiement de l'API JS.

$wxPayHelper->setParameter("notify_url", http://www.doucube.com/wxpay/notice.php);
De cette façon, lorsque la transaction est terminée, l'url recevra une notification et sera enregistrée dans le fichier journal. Notre test est le suivant :

Les variables GET obtenues et. XML sont les suivants Affichage :

Key: bank_billno; Value: 201405273540085997
Key: bank_type; Value: 2011
Key: discount; Value: 0
Key: fee_type; Value: 1
Key: input_charset; Value: GBK
Key: notify_id; Value: Gx8ov6tT6_yaARrtKG6RFZ4KiVtKqVnJzvulFlteJ3dhBg38iRtKs0pTXXfgh8WnH15mIhG6j65ggbzzYguh1mutG3B5oHsK
Key: out_trade_no; Value: JfuKdiBig4zZnE4n
Key: partner; Value: 1234567890
Key: product_fee; Value: 1
Key: sign; Value: 08876C4A9F7A36A9EA972C211C122362
Key: sign_type; Value: MD5
Key: time_end; Value: 20140527194139
Key: total_fee; Value: 1
Key: trade_mode; Value: 1
Key: trade_state; Value: 0
Key: transaction_id; Value: 1218614901201405273313473135
Key: transport_fee; Value: 0

<xml><openid></openid>
<appid></appid>
<issubscribe>1</issubscribe>
<timestamp>1401190899</timestamp>
<noncestr></noncestr>
<appsignature></appsignature>
<signmethod></signmethod>
</xml>

Et vous recevrez une fenêtre pop-up OK dans la fenêtre WeChat

Explication détaillée de lexemple de code de notification de transaction de développement de paiement WeChat

Ce qui précède est le développement du paiement WeChat Compilation d'informations de notification de transaction, merci pour votre soutien !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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