微信支付開(kāi)發(fā)交易通知實(shí)例
一、交易通知
用戶在成功完成支付后,微信后臺(tái)通知(POST)商戶服務(wù)器(notify_url)支付結(jié)果。商戶可以使用notify_url的通知結(jié)果進(jìn)行個(gè)性化頁(yè)面的展示。
對(duì)后臺(tái)通知交互時(shí),如果微信收到商戶的應(yīng)答不是success或超時(shí),微信不為通知失敗,微信會(huì)通過(guò)一定的策略(如30分鐘共8次)定期重新發(fā)起通知,盡可能提高通知的成功率,但微信不保證通知最終能成功。
后臺(tái)通知通過(guò)請(qǐng)求中的 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將收到通知,并記錄在日志文件中,我們的測(cè)試如下所示:
獲得的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_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><![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的彈出窗
以上就是對(duì)微信支付開(kāi)發(fā)交易通知的資料整理,謝謝支持!
相關(guān)文章
laravel框架郵箱認(rèn)證實(shí)現(xiàn)方法詳解
這篇文章主要介紹了laravel框架郵箱認(rèn)證實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了laravel框架郵箱認(rèn)證功能的具體實(shí)現(xiàn)步驟及相關(guān)操作技巧,需要的朋友可以參考下2019-11-11laravel實(shí)現(xiàn)上傳圖片的兩種方式小結(jié)
今天小編就為大家分享一篇laravel實(shí)現(xiàn)上傳圖片的兩種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10PHP之使用swoole統(tǒng)計(jì)在線人數(shù)和ID案例講解
這篇文章主要介紹了PHP之使用swoole統(tǒng)計(jì)在線人數(shù)和ID案例講解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08yii2高級(jí)應(yīng)用之自定義組件實(shí)現(xiàn)全局使用圖片上傳功能的方法
這篇文章主要介紹了yii2高級(jí)應(yīng)用之自定義組件實(shí)現(xiàn)全局使用圖片上傳功能的方法,結(jié)合實(shí)例形式分析了Yii2自定義組件實(shí)現(xiàn)圖片上傳的相關(guān)步驟與操作技巧,需要的朋友可以參考下2016-10-10Laravel5.7框架安裝與使用學(xué)習(xí)筆記圖文詳解
這篇文章主要介紹了Laravel5.7框架安裝與使用學(xué)習(xí)筆記,結(jié)合圖文形式詳細(xì)講解了Laravel5.7框架的安裝、配置、組件、路由等基礎(chǔ)與操作技巧,需要的朋友可以參考下2019-04-04PHP中字符與字節(jié)的區(qū)別及字符串與字節(jié)轉(zhuǎn)換示例
在php中字符是可使用多種不同字符方案或代碼頁(yè)來(lái)表示的抽象實(shí)體。字節(jié)是通過(guò)網(wǎng)絡(luò)傳輸信息(或在硬盤(pán)或內(nèi)存中存儲(chǔ)信息)的單位。本文還通過(guò)實(shí)例給大家介紹了php中字符串與字節(jié)轉(zhuǎn)換示例,感興趣的朋友一起看看吧2016-10-10