我参考的API文档链接为:
https://pay.weixin.qq.com/wiki/doc/api/xiaowei.php?chapter=19_12
https://pay.weixin.qq.com/wiki/doc/api/xiaowei.php?chapter=19_2
代码严格按上述要求走的。
熬到半夜都没有查出来问题。不知道怎么办了。有人能指点一下吗?
自查:用一对密钥加密解密是合格的。
1,平台证书+平台序列号,没有问题。2,字段齐全。3,图片有返回。
不知道是什么什么原因。。。
总是报:解密敏感信息失败,请检查后再试
一夜睡不着了。。。
能不能来个微信支付的官方技术人员指导一下?
<?php private function getEncrypt($str){ //$str是待加密字符串 $public_key_path = '平台证书路径'; $public_key = file_get_contents($public_key_path); $encrypted = ''; openssl_public_encrypt($str,$encrypted,$public_key); //base64编码 $sign = base64_encode($encrypted); return $sign; }
PHP官方函数文档: https://www.php.net/manual/zh/function.openssl-public-encrypt.php ,上述封装声明的padding模式即取的默认值:OPENSSL_PKCS1_PADDING ,等于文档上写的 RSAES-PKCS1-v1_5;如果一直报解密失败,可以尝试把这个padding换成APIv3的 OPENSSL_PKCS1_OAEP_PADDING 试试看,代码即:
openssl_public_encrypt($str,$encrypted,$public_key, OPENSSL_PKCS1_OAEP_PADDING);
如果还不行,那就是 APIv2版的进件接口,是「半废」状态了;建议看APIv3版进件 https://pay.weixin.qq.com/wiki/doc/apiv3_partner/apis/chapter11_1_1.shtml
搞v3吧
```
{
"return_code": "SUCCESS",
"return_msg": "OK",
"nonce_str": "qW7oJiddt7gmpsO5",
"sign": "6A568E2CA349EBC6754D26D7A5EF2FD6EFC87EC4B6059A5F3E9577084915A989",
"result_code": "FAIL",
"err_code": "PARAM_ERROR",
"err_code_des": "特约商户进件API已升级,服务商可直接进件个体户/企业,详情请看 https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/tool/applyment4sub/chapter1_1.shtml",
"err_param": "mch_id"
}
```