wechatpay-apiv3 / wechatpay-guzzle-middleware

微信支付 APIv3 Guzzle HTTP Client中间件(middleware)
Apache License 2.0
209 stars 46 forks source link

敏感信息加/解密 失败? #49

Closed wuceyang closed 3 years ago

wuceyang commented 3 years ago

如图,按照demo提供的方法进行子商户进件,加密contact字段 image 其中$public_key_path传入的是CertificateDownloader下载的pem文件路径 返回的结果是{"code":"PARAM_ERROR","message":"the field you encrypt is error "}

TheNorthMemory commented 3 years ago

加密用的证书,貌似没给对;应该用「平台证书」即/v3/certificates下载的证书,headers还有给上 Wechatpay-Serial 所用的「平台证书」序列号

xy-peng commented 3 years ago

是不是有其他未加密的字段没有送上来?贴一下应答包HTTP头部的Request-ID我们查一下?

wuceyang commented 3 years ago

是不是有其他未加密的字段没有送上来?贴一下应答包HTTP头部的Request-ID我们查一下?

af9b2219-39e9-55bf-a5f5-59a70daae411

wuceyang commented 3 years ago

加密用的证书,貌似没给对;应该用「平台证书」即/v3/certificates下载的证书,headers还有给上 Wechatpay-Serial 所用的「平台证书」序列号

证书应该就是对的,这个是用的sdk里面提供的CertificateDownloader这个类去下载的。就是平台证书

xy-peng commented 3 years ago

看起来像是个业务问题,建议去开发者社区咨询,在那边会有对接具体的技术支持和业务研发。

wuceyang commented 3 years ago

为什么说是业务问题?求帮助。社区也发了帖子,但是没什么人看,技术支持不知道跑哪里去了,回了条消息就不见人影了

看起来像是个业务问题,建议去开发者社区咨询,在那边会有对接具体的技术支持和业务研发。

wuceyang commented 3 years ago

很遗憾,你们的说法是错的。SDK接入时,加密方式有问题。经过与你们技术支持的同学讨论和尝试,发现openssl_public_encrypt这个方法,第三个参数是不需要的。 BTW:我接入的是hk的节点

TheNorthMemory commented 3 years ago

很遗憾,你们的说法是错的。SDK接入时,加密方式有问题。经过与你们技术支持的同学讨论和尝试,发现openssl_public_encrypt这个方法,第三个参数是不需要的。 BTW:我接入的是hk的节点

能贴下你的代码片段,共同学习下

wuceyang commented 3 years ago

很遗憾,你们的说法是错的。SDK接入时,加密方式有问题。经过与你们技术支持的同学讨论和尝试,发现openssl_public_encrypt这个方法,第三个参数是不需要的。 BTW:我接入的是hk的节点

能贴下你的代码片段,共同学习下

image 去掉这个参数