微信支付通知 php,微信支付开发交易通知实例
一、交易通知
用戶在成功完成支付后,微信后臺通知(POST)商戶服務器(notify_url)支付結果。商戶可以使用notify_url的通知結果進行個性化頁面的展示。
對后臺通知交互時,如果微信收到商戶的應答不是success或超時,微信不為通知失敗,微信會通過一定的策略(如30分鐘共8次)定期重新發起通知,盡可能提高通知的成功率,但微信不保證通知最終能成功。
后臺通知通過請求中的 notify_url 迚行,采用 POST 機制。
同時,在postData中還將包含xml數據。
二、交易結果獲取與響應
根據官方文檔,創建notice.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
1
1401190899
而在微信窗口中將收到OK的彈出窗
以上就是對微信支付開發交易通知的資料整理,謝謝支持!
總結
以上是生活随笔為你收集整理的微信支付通知 php,微信支付开发交易通知实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php list 转tree,PHP 数
- 下一篇: php 字符串 中文位置,怎样查找中文字