开发者社区> 问答> 正文

#支付宝 isv.invalid-alipay-root-cert-sn(无效支付宝根证书,怎么办?

isv.invalid-alipay-root-cert-sn(无效支付宝根证书序列号)

展开
收起
保持可爱mmm 2020-05-05 17:03:47 5572 0
2 条回答
写回答
取消 提交回答
  • 去向更远的地方

    我也遇到过这个问题,配置都是正确的,换了一个php版本可以正常跳转支付。调试了一下sdk代码,AopCertClient类下有一个hex2dec 方法,这里返回了一个round缺失精度类型,并且转为幂输出,修改如下,sdk版本php-4.9.1。

    function hex2dec($hex) {
            $dec = 0;
            $len = strlen($hex);
            for ($i = 1; $i <= $len; $i++) {
                $dec = bcadd($dec, bcmul(strval(hexdec($hex[$i - 1])), bcpow('16', strval($len - $i))));
            }
    
            // return round($dec, 0);
            return $dec;
    }
    

    __ 希望对你们有所帮助!__

    2020-07-07 10:05:29
    赞同 2 展开评论 打赏
  • 报错原因

    1、支付宝CA根证书文件路径(alipay_root_cert_path)错误;

    2、支付宝CA根证书证书设置错误;

    3、签名方式sign_type值设置错误;

    4、php语言服务端sdk版本过低; 排查方案 1、支付宝根证书路径设置错误

    支付宝CA根证书文件路径(alipay_root_cert_path)路径存在问题,建议检查路径传值是否正确;

    (1)文件路径需设置绝对路径;

    (2)核实对应的文件路径是否存在CA根证书文件;

    2、支付宝根证书引用错误

    alipay_root_cert_path设置路径对象错误,不是支付宝根证书

    注:支付宝CA根证书文件,需要点击进入,选择使用的应用,再点击应用信息,

    如图:

    然后在“接口加密方式”中的“支付宝根证书”位置,点击“下载证书”。

    如图:

    3、sign_type设置错误

    公钥证书方式方法做请求,sign_type必须是sign_type=RSA2;

    4、php语言服务端sdk版本过低

    php语言服务端sdk版本4.2.0以下的版本存在openssl兼容性问题,如果alipay_root_cert_sn解析的值存在下划线_后面以0X开头的会出现解析错误的情况;

    例如:alipay_root_cert_sn=687b59193f3f462dd5336e5abf83c5d8_02941eef3187dddf3d3b83462e1dfcf6

    解决方案:需要升级php语言服务端sdk,升级到sdk4.2.0以上即可.

    2020-05-05 17:04:04
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载