支付宝 php Easy SDK异步回调验签失败的解决办法

作者:庄朋龙 发布时间: 2024-11-09 阅读量:1

首先检查自己的配置的支付宝公钥和应用私钥是否正确,如果确定没有问题,但是仍然失败!

那就是json转义的问题,下面是解决办法,用下面函数把$_POST处理后,再传进去验签就行了

function removeEscapesFromArray($array) {
    $result = array();
    foreach ($array as $key => $value) {
        if (is_string($value)) {
            $result[$key] = stripslashes($value);
        } elseif (is_array($value)) {
            $result[$key] = removeEscapesFromArray($value);
        } else {
            $result[$key] = $value;
        }
    }
    return $result;
}
Factory::payment()->common()->verifyNotify(removeEscapesFromArray($_POST))

反正支付宝的 Easy sdk 官方已经好几年没有维护了,不知道官方什么时候可以修复这个问题!

我更推荐大家使用 Omnipay-Alipay:https://github.com/lokielse/omnipay-alipay