Closed TheNorthMemory closed 4 years ago
对于文档的建议很到位,我们改!
Close #18
As of those two(#6, #18) important features done, there should be a new package onto packagist.😄
这里的坑有点深。。。看看readme里面的这段代码:
// 单例加解密示例如下
$crypto = new SensitiveInfoCrypto($wechatpayCertificate, $merchantPrivateKey);
$encrypted = $crypto('Alice');
$decrypted = $crypto->setStage('decrypt')($encrypted);
既然用微信平台证书加密的,例子里面连着这样写,这能解密成功????!!!
API v3采用的是非对称的RSA加密算法,对于敏感信息加密的逻辑是这样的。
@coosir readme中的代码,应该是演示的:使用商户私钥对微信返回的应答报文中的敏感信息进行解密,是正确的
@xy-peng 你的解释是清楚的。 我想说的是上面那3行代码太误导人了:第2行用微信平台公钥加密,第3行用商户私钥解密第2行的结果。 如果加解密使用的公私钥不对应,那加解密的说明和示例代码应该分隔开。
@coosir 你说得对,我们改一下😭
领券事件回调通知API 应该用哪个私钥解密,我解不了
领券事件回调通知API 应该用哪个私钥解密,我解不了
不是用私钥解密,是用是「平台证书」解密,对应的消息headers
上有个Wechatpay-Serial
通知用的序列号,可以佐证
spec: 敏感信息加解密
上述文档上用词上,其实可以再精确一些,应该是「加/解」密;并且,上行敏感信息是需要用
/v3/certificates
下载的公钥证书
加密,下行敏感信息解密是需要用商户私钥
解密。另外,请把 商户上送敏感信息请求HTTP头
Wechatpay-Serial
这个必填字段 更新进 APIv3文档,避免新同学掉坑里出不来。