首頁  >  文章  >  微信小程式  >  詳解微信支付開發交易通知實例代碼

詳解微信支付開發交易通知實例代碼

高洛峰
高洛峰原創
2017-03-27 14:04:162349瀏覽

本文主要介紹如何使用JS API支付時如何獲得交易通知,並提供代碼實例,希望對開發微信支付的小伙伴有所幫助

一、交易通知

用戶在成功完成付款後,微信後台通知(POST)商家伺服器(notify_url)支付結果。商家可以使用notify_url的通知結果進行個人化頁面的展示。

對後台通知互動時,如果微信收到商家的回應不是success或超時,微信不為通知失敗,微信會透過一定的策略(如30分鐘共8次)定期重新發起通知,盡可能提高通知的成功率,但微信不保證通知最終能成功。

後台通知通過請求中的 notify_url 迚行,採用 POST 機制。

同時,在postData中也會包含xml資料。

二、交易結果取得與回應

根據官方文檔,建立notice.php用於通知結果。

程式內容如下:

<?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封包

傳回成功訊息success

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

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

這樣當交易完成後,該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_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>

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

詳解微信支付開發交易通知實例代碼

#以上就是對微信支付開發交易通知的資料整理,謝謝支持!

以上是詳解微信支付開發交易通知實例代碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn