基于PHP的微信支付教程 互动版

在回调链接中处理结果的入口

在发起订单组合订单参数的时候,我们有下面的一个设置,它就是用来在支持成功回调通知中处理成功之后事宜的,也就是说,我们可以在这个代码文件里面可靠地处理支付结果,下面的链接设置是默认的测试路径。

$input->SetNotify_url("http://paysdk.weixin.qq.com/example/notify.php");

notify.php的例子文件在example文件夹下面,对应文件管理中example文件夹下的notify.php文件。

必须引入的头文件,以SDK的路径为例子

require_once "../lib/WxPay.Api.php";
require_once '../lib/WxPay.Notify.php';

回调信息处理的入口

$notify = new PayNotifyCallBack();
$notify->Handle(false);

现在打开lib文件夹下的WxPay.Notify.php文件,找到WxPayNotify类,入口函数Handler如下。

/**
* 回调入口
* @param bool $needSign  是否需要签名输出
*/
final public function Handle($needSign = true)
{
    $msg = "OK";
    //当返回false的时候,表示notify中调用NotifyCallBack回调失败
    //若传入需要签名即传入true,获取签名校验失败,此时直接返回失败
    //notify函数里面传入了NotifyCallBack回调函数名,这时候它会被调用
    //$msg作为变量也传入了NotifyCallBack回调函数里面,$msg包含有支付信息
    $result = WxpayApi::notify(array($this, 'NotifyCallBack'), $msg);
    if($result == false)
    {
          $this->SetReturn_code("FAIL");
          $this->SetReturn_msg($msg);
          $this->ReplyNotify(false);
        return;
    } 
    else 
    {
        //该分支在成功回调到NotifyCallBack方法,处理完成之后流程
        $this->SetReturn_code("SUCCESS");
        $this->SetReturn_msg("OK");
    }
    $this->ReplyNotify($needSign);
}