收藏
回答

平台私钥解密失败-- 商户进件报错

1:在商户进件接口api中报错  string(59) "{"code":"PARAM_ERROR","message":"平台私钥解密失败"}"

2:用证书给需要加密的参数加的密
  方法如下
    function getEncrypt($str){
        //$str是待加密字符串
        $public_key_path = 'cert.pem';
        $public_key = file_get_contents($public_key_path);
        $encrypted = '';
        if (openssl_public_encrypt($str,$encrypted,$public_key,OPENSSL_PKCS1_OAEP_PADDING)) {
            //base64编码
            $sign = base64_encode($encrypted);
        } else {
            throw new Exception('encrypt failed');
        }
        return $sign;
    }
 (加密生成的字符串可以用私钥反向解密成原字符串)
3:调用商户进件接口api后报错 string(59) "{"code":"PARAM_ERROR","message":"平台私钥解密失败"}


回答关注问题邀请回答
收藏

4 个回答

  • 微信支付技术助手8
    微信支付技术助手8
    2020-09-21

    请按照以下几点进行了解:

    1、加密敏感数据用的公钥信息不正确

    2、使用的平台证书不正确,可以查看对应的证书序列号与“平台证书接口”返回的是否一致

    3、加密方式不正确,详情可以参考https://wechatpay-api.gitbook.io/wechatpay-api-v3/qian-ming-zhi-nan-1/min-gan-xin-xi-jia-mi

    4、公钥信息获取请使用对应语种的函数进行,详情可以参考https://wechatpay-api.gitbook.io/wechatpay-api-v3/qian-ming-zhi-nan-1/min-gan-xin-xi-jia-mi


    2020-09-21
    有用
    回复
  • Coooooooool
    Coooooooool
    04-07

    证书用错了,应该用命令行或者API生成的那个证书(微信支付平台证书),而不是下载的zip中的cert

    04-07
    有用
    回复
  • 随风
    随风
    04-04

    我也遇到了,用证书下载工具生成的证书,在商户进件时加密,提示the field you encrypt is error。蛋碎。同样是用的php,加密方法也是上面这个,官方提供的方法

    04-04
    有用
    回复
  • 老张
    老张
    2020-09-20
    用证书给需要加密的参数加的密
    

    此处用错了证书,应该是平台证书,而不是商户API证书。

    2020-09-20
    有用
    回复
登录 后发表内容
问题标签