Esempio n. 1
0
$xml = $GLOBALS['HTTP_RAW_POST_DATA'];
$notify->saveData($xml);
//验证签名,并回应微信。
//对后台通知交互时,如果微信收到商户的应答不是成功或超时,微信认为通知失败,
//微信会通过一定的策略(如30分钟共8次)定期重新发起通知,
//尽可能提高通知的成功率,但微信不保证通知最终能成功。
if ($notify->checkSign() == FALSE) {
    $notify->setReturnParameter("return_code", "FAIL");
    //返回状态码
    $notify->setReturnParameter("return_msg", "签名失败");
    //返回信息
} else {
    $notify->setReturnParameter("return_code", "SUCCESS");
    //设置返回码
}
$returnXml = $notify->returnXml();
echo $returnXml;
//==商户根据实际情况设置相应的处理流程,此处仅作举例=======
//以log文件形式记录回调信息
$log_ = new Log_();
$log_name = "./logs/notify_url.log";
//log文件路径
$log_->log_result($log_name, "【接收到的notify通知】:\n" . $xml . "\n");
if ($notify->checkSign() == TRUE) {
    if ($notify->data["return_code"] == "FAIL") {
        //此处应该更新一下订单状态,商户自行增删操作
        $log_->log_result($log_name, "【通信出错】:\n" . $xml . "\n");
    } elseif ($notify->data["result_code"] == "FAIL") {
        //此处应该更新一下订单状态,商户自行增删操作
        $log_->log_result($log_name, "【业务出错】:\n" . $xml . "\n");
    } else {