这个问题遇到好几次了,之前解决过但是时间一长就忘记了,结果今天又因为这个大坑头疼了一整天,所以这次必须记录下来。
在确保各项信息无误的情况下仍然验签失败,很有可能引号被转义等奇葩问题导致的,记录一下我的解决方案:
验签方法verify()在目录:/vendor/yansongda/pay/src/Gateways/Alipay.php里,方法里有一句
if (isset($data['fund_bill_list'])) {
$data['fund_bill_list'] = htmlspecialchars_decode($data['fund_bill_list']);
}
在这里打印$data['fund_bill_list']发现里面的引号被转义了。
解决方法:使用stripslashes()方法移除转义:
if (isset($data['fund_bill_list'])) {
$data['fund_bill_list'] = stripslashes( htmlspecialchars_decode($data['fund_bill_list']) );
}
当在验签过程中遇到信息无误但验签失败的问题时,可能是由于字符串中的引号被转义导致。在Alipay.php的verify()方法中,通过使用stripslashes()配合htmlspecialchars_decode()可以去除转义引号,从而解决验签失败的困扰。这个解决方案对于处理类似问题具有参考价值。

9507

被折叠的 条评论
为什么被折叠?



