文章的内容适用小程序和公众号
微信官方示例代码demo下载地址:微信官方demo代码 必须下载,后面要用到
把微信官方示例代码也就是下图中除了 WXBizMsgCryptTest 文件外的所有文件复制到项目中
(下面图中的修改日期是2014年的,认准2014年的)

然后打开 SHA1.java ,需要对这个文件的代码稍微修改一下,它跟不上时代了
把下面的代码复制并替换整个类,代码中用到了hutool,如果你没有引入hutool,需要自己处理一下 StrUtil.isBlank 替换成你使用的字符串判空处理
class SHA1 {
/**
* 用SHA1算法生成安全签名
* @param token 票据
* @param timestamp 时间戳
* @param nonce 随机字符串
* @param encrypt 密文
* @return 安全签名
* @throws AesException
*/
public static String getSHA1(String token, String timestamp, String nonce, String encrypt) throws AesException {
try {
String[] array = null;
if (encrypt != null && !encrypt.equals("")) {
array = new String[]{token, timestamp, nonce, encrypt};
} else {
array = new String[]{token, timestamp, nonce};
}
StringBuffer sb = new StringBuffer();
// 字符串排序
Arrays.sort(array);
int x = StrUtil.isBlank(encrypt)? 3:4;
for (int i = 0; i < x; i++) {
sb.append(array[i]);
}
String str = sb.toString();
// SHA1签名生成
MessageDigest md = MessageDigest.getInstance("SHA-1");
md.update(str.getBytes());
byte[] digest = md.digest();
St

验证URL和事件推送&spm=1001.2101.3001.5002&articleId=135413587&d=1&t=3&u=34cc8dc6cb934760b61ea0fa6aff7eff)
1614

被折叠的 条评论
为什么被折叠?



