支付宝在线付款的校验和异步通知

使用在线支付其中一个很重要的一步是对返回数据的校验,谈一下支付宝校验的使用:
1、在获取通知的方法中引入官方提供的AlipayNotify.class.php,实例化,传入支付宝的配置信息;
2、同步通知的校验中直接使用 $alipayNotify->verifyNotify();通过返回true不通过返回false
很简单,代码如下:

    include('AlipayNotify.class.php');
    $alipayNotify = new AlipayNotify($config['ALIPAY']);
    if(!$alipayNotify->verifyReturn()){//同步通知的校验方法是verifyReturn()
        $this->show("error");
    }else{
        $this->show("success");
    }

亲身经历过的一个测试场景:客户付款成功后支付宝的付款页面一直没有跳转,项目获取不到支付宝传过来的信息,瞬间成千上万个神兽在狂奔。

解决方式很简单:异步通知,在支付宝请求参数中设置你的接收地址,下面是代码

    //服务器异步通知页面路径
    $notify_url = "http://www.xxx.com/alipaynotify.php";
    //需http://格式的完整路径,不能加?id=123这类自定义参数

然后在alipaynotify.php接受支付宝发过来的异步数据,下面是代码

    include('AlipayNotify.class.php');//依然需要校验数据
    $alipayNotify = new AlipayNotify($config['ALIPAY']);
    if(!$alipayNotify->verifyNotify()){//异步通知的校验方法是verifyNotify()
        exit("error");
    }else{
        exit("success");
    }

注意:
如果商户反馈给支付宝的字符不是success这7个字符,支付宝服务器会不断重发通知,直到超过24小时22分钟。在25小时内完成6~10次通知(通知频率:5s,2m,10m,15m,1h,2h,6h,15h)

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值