在做支付这块,遇到了支付回调验证不通过的问题:
在回调的验证中文门需要通过$this->rsaCheckV1()
来进行回调数据的验证
支付宝回调验证(部分)
接收到数据之后,发现在rsaCheckV1()
这里面返回了false
,也就是说验证失败了。
找了很多原因都没有解决这个结果,不去验证直接通过肯定会不安全的,于是去找了支付宝的客服进行了求助,再尝试了几次之后,发现了我这边传递数据时多了一个字段service
(也就当前的接口的的地址),回调返回后多了这些字段导致验证不通过,然后我去对比了另外一个不通过的支付,发现另外一个回调的数据多了app
、act
两个字段,在这里可能需要说明一下,我这两次回调接收的数据均走的是接口:第一个,?service=app.pay.alipay
,第二个,?app=pay&act=alipay
,所以导致了回调参数带有了这几个字段的数据,所以我们需要将多出来的这几个字段去掉,也就是直接使用unset
去掉,再进行数据的验证,最后得到的数据验证结果为true
,这下就完成了