Closed mythsman closed 6 years ago
为什么com.qq.weixin.mp.aes.WXBizMsgCrypt.verifyUrl的方法中将echostr也一起做了SHA1呢?官网上不是对timeStamp,和nonce做SHA1并与signature比较么?
public String verifyUrl(String msgSignature, String timeStamp, String nonce, String echoStr) throws AesException { String signature = SHA1.getSHA1(token, timeStamp, nonce, echoStr); if (!signature.equals(msgSignature)) { throw new AesException(AesException.ValidateSignatureError); } String result = decrypt(echoStr); return result; }
服务端收到请求中包含 echostr 参数时,需原样返回。 仅在微信管理后台配置服务端地址时调用。你可以下载官方的示例代码看一下
原样返回但是不需要计算SHA1吧。。。
要计算的,你可以参照下示例代码
echostr没算吧。。。
不用计算的。。 我掉这坑里好久,后面把echostr去掉算出来的签名就跟微信一样了。赶紧改掉吧!!!
为什么com.qq.weixin.mp.aes.WXBizMsgCrypt.verifyUrl的方法中将echostr也一起做了SHA1呢?官网上不是对timeStamp,和nonce做SHA1并与signature比较么?