技术饭

支付宝支付成功,但验证签名失败原因分析

copylian    0 评论    8448 浏览    2017.04.06

今天做了IOS上的支付宝支付,发现订单支付成功了,但是验证签名失败了,通过分析支付宝的配置都是没有问题的,可是TMD还是有错误,经过努力最后发现了问题在于支付宝支付成功返回的异步通知数据除了要去除去sign、sign_type这两个参数外还必须去除一些不必要的参数。

在做的APP里面因为有用户的存在,所有必须POST传递member_name、app、token这几个固定值给app,由于支付宝异步返回的POST数据,所以这个时候支付宝返回的数据就包括了这三个固定值,再尝试去除这三个固定值之后验证签名就成功了。

//删除不必要的数据
if(isset($_POST['member_name'])){
    unset($_POST['member_name']);
}
if(isset($_POST['token'])){
    unset($_POST['token']);
}
if(isset($_POST['qqddapp'])){
    unset($_POST['qqddapp']);
}

参考:

异步通知验签

移动支付服务端异步通知报错验签失败

未使用开放平台SDK的自助排查流程


飓风呀
感谢你的支持,我会继续努力!
扫码打赏,感谢您的支持!

文明上网理性发言!

  • 还没有评论,沙发等你来抢