收藏
回答

服务商小微支付有问题,<![CDATA[解密敏感信息失败,请检查后再试]]>?

1:获取

https://api.mch.weixin.qq.com/risk/getcertficates

获取到了

serial_no 和pem

与解密后是一本证书

-----BEGIN CERTIFICATE-----
MIID3DCCAsSgAwIBAgIUZPK3dQ2TBNA/Doe4YwWiLDDt+DowDQYJKoZIhvcNAQEL
BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT

FFRlbnBheS5jb20gQ0Eg****************************************

2开始对 要解密的内容加密

$data['id_card_name']=$this->controllerUnit->getEncrypt($data_micro['really_name']);

$data['id_card_number']=$this->controllerUnit->getEncrypt($data_micro['identity_id']);
$data['account_name']=$this->controllerUnit->getEncrypt($data_micro['bank_card_name']);
$data['account_number']=$this->controllerUnit->getEncrypt($data_micro['bank_card_id']);
$data['contact']=$this->controllerUnit->getEncrypt($data_micro['contract_name']);
$data['contact_phone']=$this->controllerUnit->getEncrypt($data_micro['contract_phone']);

$data['contact_email']=$this->controllerUnit->getEncrypt($data_micro['contract_email']);

2.1其中  getEncrypt() 方法如下


public function getEncrypt($str){

   $encrypted = '';
   openssl_public_encrypt($str,$encrypted,$this->getcertficates);
   //base64编码
   $sign = base64_encode($encrypted);
   return $sign;

}


$this->getcertficates 就是 上面第一步解密后的证书

与解密后是一本证书

-----BEGIN CERTIFICATE-----
MIID3DCCAsSgAwIBAgIUZPK3dQ2TBNA/Doe4YwWiLDDt+DowDQYJKoZIhvcNAQEL
BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBA





3:发送post返回

<xml><return_code><![CDATA[FAIL]]></return_code>
<return_msg><![CDATA[解密敏感信息失败,请检查后再试]]></return_msg>
</xml>




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

1 个回答

  • December
    December
    2019-09-14

    已解决,不懂问我

    2019-09-14
    有用
    回复 4
    • 北京智享互联科技有限公司
      北京智享互联科技有限公司
      2019-09-15
      我调用这个接口一直提示SIGN_ERR,但是和官方的核验又一致,你遇到过吗?求解,谢谢~
      2019-09-15
      回复
    • 木子希
      木子希
      2019-10-16
      请问是怎么解决,是是什么问题引起的?
      2019-10-16
      回复
    • 🐌  one
      🐌 one
      2019-10-17
      可以指教一二吗
      2019-10-17
      回复
    • 胡健-Jack.h
      胡健-Jack.h
      2020-03-05
      请问是怎么解决的,大神
      2020-03-05
      回复
登录 后发表内容
问题标签