原先微信支付签名加密一直使用默认的MD5加密,可以正常使用,后来因安全问题,单位要求改成HMAC-SHA256加密,现在问题是用微信支付接口签名校验工具(https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1)可以校验通过,支付时却一直报签名错误,调试几天都找不到原因,后来再去仔细看了下统一下单的接口说明(https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1),发现了问题所在,签名字段长度为32,原先使用MD5算法时计算出来的签名长度是32位,一直使用没问题,改成HMAC-SHA256算法后计算出来的签名长度是64位,超过字段长度限制了,所以一直报“签名错误”,我不知道这是接口本身就不能使用HMAC-SHA256签名(虽然文档写着支持),还是我自己的算法问题,但我在网上在线HMAC-SHA256加密计算出来的也都是64位,如果不支持,希望管理员能给个明确的回复,以便我回复单位目前只支持MD5加密算法,如果支持,能不能提供一个例子(或一小段代码)以便我们参考。
支付、卡券相关的问题请移步至微信支付专区https://developers.weixin.qq.com/community/pay提问,我们会有对应同学来处理,此贴先隐藏,请重新发帖咨询。
没人知道吗?