收藏
回答

服务商小微支付有问题,<![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>




最后一次编辑于  09-14  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

1 个回答

  • December
    December
    09-14

    已解决,不懂问我

    09-14
    赞同
    回复 3
    • 北京智享互联科技有限公司
      北京智享互联科技有限公司
      09-15
      我调用这个接口一直提示SIGN_ERR,但是和官方的核验又一致,你遇到过吗?求解,谢谢~
      09-15
      回复
    • 木子希
      木子希
      2天前
      请问是怎么解决,是是什么问题引起的?
      2天前
      回复
    • one
      one
      1天前
      可以指教一二吗
      1天前
      回复
问题标签