溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

微信支付開發(fā)交易通知的示例分析

發(fā)布時(shí)間:2021-07-27 11:39:31 來源:億速云 閱讀:134 作者:小新 欄目:移動開發(fā)

這篇文章主要為大家展示了“微信支付開發(fā)交易通知的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“微信支付開發(fā)交易通知的示例分析”這篇文章吧。

一、交易通知

用戶在成功完成支付后,微信后臺通知(POST)商戶服務(wù)器(notify_url)支付結(jié)果。商戶可以使用notify_url的通知結(jié)果進(jìn)行個(gè)性化頁面的展示。

對后臺通知交互時(shí),如果微信收到商戶的應(yīng)答不是success或超時(shí),微信不為通知失敗,微信會通過一定的策略(如30分鐘共8次)定期重新發(fā)起通知,盡可能提高通知的成功率,但微信不保證通知最終能成功。

后臺通知通過請求中的 notify_url 迚行,采用 POST 機(jī)制。

同時(shí),在postData中還將包含xml數(shù)據(jù)。

二、交易結(jié)果獲取與響應(yīng)

根據(jù)官方文檔,創(chuàng)建notice.php用于通知結(jié)果。

程序內(nèi)容如下所示:

<?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);
}
?>

上述程序的作用是:

獲取post到url的通知,他們以GET變量形式

獲取post的XML數(shù)據(jù)包

返回成功消息 success

將notice.php的完整路徑放入JS API支付的notice url中。

$wxPayHelper->setParameter("notify_url", http://www.doucube.com/wxpay/notice.php);

這樣當(dāng)交易完成后,該url將收到通知,并記錄在日志文件中,我們的測試如下所示:

獲得的GET變量及XML如下所示:

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_yaARrtKG6RFZ4KiVtKqVnJzvulFlteJ3dhBg38iRtKs0pTXXfgh8WnH15mIhG6j65ggbzzYguh2mutG3B5oHsK
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><![CDATA[o0pk9uIVnlY-fJkzFKEbQ6LJ4cFc]]></OpenId>
<AppId><![CDATA[wx0000000000000000]]></AppId>
<IsSubscribe>1</IsSubscribe>
<TimeStamp>1401190899</TimeStamp>
<NonceStr><![CDATA[iOb2flJ0ILFAmBqJ]]></NonceStr>
<AppSignature><![CDATA[66678894aae680ba140e18e66d1295dfadabd9ab]]></AppSignature>
<SignMethod><![CDATA[sha1]]></SignMethod>
</xml>

而在微信窗口中將收到OK的彈出窗

微信支付開發(fā)交易通知的示例分析

以上是“微信支付開發(fā)交易通知的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI