QQ咨询 官方微信

添加微信好友

官方小程序

百度小程序

微信小程序

头条小程序

关于我们

PHP基础

【踩坑日志】支付宝电脑支付异步返回验签失败,但是同步返回成功的情况

 admin  2022-10-13 09:41:12
如果遇到异步返回总是失败,但是同步返回成功的情况就要注意一个地方了那就是这里:
  1. $arr=$_POST; 
  2. $alipaySevice = new AlipayTradeService($config); 
  3. $alipaySevice->writeLog(var_export($_POST,true)); 
  4. $result = $alipaySevice->check($arr);
支付宝返回数据本身就有问题,转义字符多了一个反斜杠:
  1. 'fund_bill_list' => '[{\\"amount\\":\\"0.01\\",\\"fundChannel\\":\\"ALIPAYACCOUNT\\"}]' 
正确的应该是这样的:
  1. 'fund_bill_list' => '[{\"amount\":\"0.01\",\"fundChannel\":\"ALIPAYACCOUNT\"}]' 
所以你需要修改成以下代码:
  1. 'fund_bill_list' => '[{\"amount\":\"0.01\",\"fundChannel\":\"ALIPAYACCOUNT\"}]' 
很奇怪的是,支付宝直接给我返回的就是两个反斜杠,所以PHP的解决办法就是返回的变量stripslashes一次就可以了。所以正确的代码应该是:
  1. $arr=$_POST; 
  2. $arr['fund_bill_list'] = stripslashes($arr['fund_bill_list']); 
  3. $alipaySevice = new AlipayTradeService($config); 
  4. $alipaySevice->writeLog(var_export($_POST,true)); 
  5. $result = $alipaySevice->check($arr); 
我也遇到了这个情况,但是我自己试的是 带反斜线的都会验签失败,一个反斜线都没有的才会成功:
  1. fund_bill_list=[{"amount":"10.99","fundChannel":"ALIPAYACCOUNT"}] 

本文转自csdn


¥ 打赏
×
如果您觉得文章帮助了您就打赏一下吧
非常感谢你的打赏,我们将继续分享更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

本文《【踩坑日志】支付宝电脑支付异步返回验签失败,但是同步返回成功的情况》发布于石头博客文章,作者:admin,如若转载,请注明出处:https://www.pweb123.com/html/php/918.html,否则禁止转载,谢谢配合!

文章点评

我来说两句 已有0条评论
点击图片更换

添加微信好友

添加微信好友

微信小程序

百度小程序