小程序
小游戏
企业微信
微信支付
扫描小程序码分享
服务商模式下,调用支付接口,采用MD5算法签名,下订单、支付、回调都正常。
但是采用SHA256的算法进行签名,API接口返回的数据包中的sign却无法通过签名校验。
我debug了一下,无论是用MD5的结果来比对还是用SHA256的结果来比对,都跟API接口传回来的sign不一样。
API接口返回的数据看起来很正常。只有签名算出来不对。 难道这个时候参与签名使用的商户Key是需要子商户的吗?
有大神可以指点一下吗?
1 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
回调中的签名方式需与统一下单的签名类型一致,服务商模式下「商户Key」 是使用服务商的。签名错误建议对比一下回调中的 appId 对应的商户 Key 是否有误。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
回调中的签名方式需与统一下单的签名类型一致,服务商模式下「商户Key」 是使用服务商的。签名错误建议对比一下回调中的 appId 对应的商户 Key 是否有误。
另外这个问题已经解决:我用的C#,文档提供的SDK里面WxPayData类自带的SHA算法里面用的编码是( var enc = Encoding.Default;)后来我改成(enc = Encoding.UTF8;),签名校验正确了。可能是因为服务器上的默认编码不是UTF8所导致的。
但是又带来的新的疑问:为什么我用Default算出的签名,下单时API端并未返回签名错误的消息,而是下单成功了?