收藏
回答

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

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":"平台私钥解密失败"}


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

7 个回答

  • Coooooooool
    Coooooooool
    2021-04-07

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

    2021-04-07
    有用 2
    回复
  • 西安辰本电子科技有限公司
    西安辰本电子科技有限公司
    2022-04-24

    要注意平台证书和商户证书的区别

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

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

    2020-09-20
    有用 1
    回复
  • *  'A小推'
    * 'A小推'
    2天前

    应使用apiclient_cert.pem加密姓名吗?

    2天前
    有用
    回复
  • 小火柴
    小火柴
    2023-04-27

    大坑踩了又踩 脑子用了又用

    在进行敏感信息 包括姓名图片和身份证相关信息的时候 也需要使用微信的平台公钥进行加密 不然微信那边无法解密 我之前使用的是商户公钥进行加密的 然后这个是不行的 所以要区分号加密和解密的密钥

    微信平台公钥加密要上送的敏信息(图片身份证信息 敏感字段什么的)

    我就是踩了这个坑

    2023-04-27
    有用
    回复
  • 随风
    随风
    2021-04-04

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

    2021-04-04
    有用
    回复
  • 微信支付技术助手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
    有用
    回复
登录 后发表内容
问题标签