微信支付完成后执行回调DEMO

11 篇文章 0 订阅
5 篇文章 0 订阅

集成支付并不是一件多难的事情,难的是支付流程,

本文就当做我们已经有了一个完整支付流程的网站,只剩下集成微信支付了。

能够正常支付并不是微信支付的终点,因为我们还要执行回调

当我们支付成功之后微信会向我们指定的回调方法发送请求,这个请求的路径我们已经在上面的代码块中指定

$input->SetNotify_url("http://www.\*\*\*\*.com/index.php/index/Order/notify");

具体回调方法如下:

//微信回调
    public function notify()
    {
        $data=$GLOBALS['HTTP_RAW_POST_DATA'];
        $result=xmlToArray($data);
        $outTradeTo = $result['out_trade_no'];
        if($result['return_code'] == 'FAIL'){
            $failResult="
                <xml>
                    <return_code><![CDATA[FAIL]]></return_code>
                    <return_msg><![CDATA[OK]]></return_msg>
                </xml>
            ";
            echo $failResult;
            exit;
        }else{
            if($result['result_code'] == 'FAIL'){

            }else{
                 db('order')->where(array('out_trade_no'=>$outTradeTo))->update(['pay_status'=>1]);
            }
        }

        $failResult="
                <xml>
                    <return_code><![CDATA[FAIL]]></return_code>
                    <return_msg><![CDATA[OK]]></return_msg>
                </xml>
            ";
            echo $failResult;
            exit;

    }

回调方法的目的就接到微信的通知后告诉微信我们知道处理结果了。
这里还没完

再有最后一步就是支付成功或者失败的时候,我们要动态的提示给扫码的用户,这个一般的做法就是ajax异步访问,查询微信订单,但是我在做这个的时候总是才坑,所以就自己写了一个方法,ajax怎么异步访问我想没有必要贴出代码了吧,我们已经做过太多次,

贴出我自己改的查询订单状态的代码

//查询订单
    public function orderQuery(){
        $out_trade_no=input('out_trade_no');
        $orders=db('order')->where(array('out_trade_no'=>$out_trade_no))->find();
        if($orders['pay_status']==1){
            return 'SUCCESS';
        }else{
            return 'ERROR';
        }
    }

ajax得到返回的结果为success就提示支付成功,error就提示失败。至此就完成了微信支付。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值