我申请了一个订阅号,然后在认证的时候总是算不对。
这代码是微信平台给的包里的一段。
verifyUrl方法中,token是我服务器上的token, 问下这个token是唯一的吗?,别人用的我再用没什么事吧(官方说用户随边写)?
/**
* 验证URL
* @param msgSignature 签名串,对应URL参数的msg_signature
* @param timeStamp 时间戳,对应URL参数的timestamp
* @param nonce 随机串,对应URL参数的nonce
* @param echoStr 随机串,对应URL参数的echostr
*
* @return 解密之后的echostr
* @throws AesException 执行失败,请查看该异常的错误码和具体的错误信息
*/
public String verifyUrl(String msgSignature, String timeStamp, String nonce, String echoStr)
throws AesException {
String signature = SHA1.getSHA1(token, timeStamp, nonce, echoStr);
log.debug("加密后 signature :"+ signature);
log.debug("传来的 msgSignature:"+msgSignature);
if (!signature.equals(msgSignature)) {
throw new AesException(AesException.ValidateSignatureError);
}
String result = decrypt(echoStr);
return result;
}
------解决思路----------------------

token生成参考:http://jingyan.baidu.com/article/ed2a5d1f340dd409f7be177c.html
这段token不是永久不变的,它有时效性。楼主需要在后台java带码中实现token的计算生成,并反回给自己的认证函数。。。