minibear2021 / wechatpayv3

微信支付 API v3 Python SDK
MIT License
879 stars 136 forks source link

请问“敏感信息加解密”的实现代码在哪里? #4

Closed Odyssey166 closed 3 years ago

Odyssey166 commented 3 years ago

微信支付官方文档中有“敏感信息加解密”的相关要求: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/wechatpay/wechatpay4_3.shtml

“开发者应当使用微信支付平台证书中的公钥,对上送的敏感信息进行加密。这样只有拥有私钥的微信支付才能对密文进行解密,从而保证了信息的机密性。 另一方面,微信支付使用 商户证书中的公钥对下行的敏感信息进行加密。开发者应使用商户私钥对下行的敏感信息的密文进行解密。”

大佬,请问wechatpayv3中有相关实现代码吗?找了半天没找到,请恕我愚钝。

minibear2021 commented 3 years ago

解密可以参考utils.py中的decrypt函数,加密没有写,考虑在下面版本中实现,也可以参考decrypt函数自己组织一下。 另外,使用本sdk无需考虑解密,默认已经在api内部实现,接口返回的时候已经做了解密处理。

Odyssey166 commented 3 years ago

谢谢您的及时回答!“另外,使用本sdk无需考虑解密,默认已经在api内部实现,接口返回的时候已经做了解密处理。”您指的是core.py中的decrypt_callback函数吗?我注意到该函数用的是apiv3_key(APIv3密钥),貌似和上文“开发者应使用商户私钥对下行的敏感信息的密文进行解密”中提到的商户私钥还不是一码事儿。在下拙见。

minibear2021 commented 3 years ago

抱歉,理解错了,utils.py中的decrypt是用来给回调报文解密用的。敏感信息加解密尚未实现,拟在后续版本中更新,请关注。

Odyssey166 commented 3 years ago

已经非常厉害了!这种签名验签、加密解密的库只有大神才写得出来。微信支付官方更是连Python版SDK都没有,不如完善之后联系官方收购了吧,这样您的辛苦才能发挥更大价值,哈哈

minibear2021 commented 3 years ago

请更新到1.0.5版本,内置了rsa加解密函数,敏感参数自动加密。

Odyssey166 commented 3 years ago

so speedy! !

minibear2021 commented 3 years ago

没有新的问题就close了。