一、交易通知
用户在成功完成支付后,微信后台通知(POST)商户服务器(notify_url)支付结果。商户可以使用notify_url的通知结果进行个性化页面的展示。
对后台通知交互时,如果微信收到商户的应答不是success或超时,微信不为通知失败,微信会通过一定的策略(如30分钟共8次)定期重新发起通知,尽可能提高通知的成功率,但微信不保证通知最终能成功。
后台通知通过请求中的 notify_url 迚行,采用 POST 机制。
同时,在postData中还将包含xml数据。
二、交易结果获取与响应
程序内容如下所示:
PHP;">
foreach ($_GET as $key=>$value)
{
logger("Key: $key; Value: $value");
}
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
logger($postStr);
{
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中。
setParameter("notify_url",http://www.doucube.com/wxpay/notice.PHP);
这样当交易完成后,该url将收到通知,并记录在日志文件中,我们的测试如下所示:
获得的GET变量及XML如下所示: