最近web端做微信分享的时候第一次分享没问题关键是分享以后点击分享的文章再次分享的时候失败,
找了一下原因发现微信在分享的时候在链接后面加了参数&from=timeline&isappinstalled=0导致生成的签名不一致所以分享的url应该读取request中的参数拼接在一起
工具类
public static String createParams(HttpServletRequest request) {
StringBuffer sb = new StringBuffer();
@SuppressWarnings("unchecked")
Enumeration<String> names = request.getParameterNames();
while (names.hasMoreElements()) {
String name = names.nextElement();
if (sb.length() > 0) {
sb.append("&");
}
sb.append(name);
sb.append("=");
sb.append(request.getParameter(name));
}
String params = sb.toString();
if (StringUtils.isNotEmpty(params)) {
params = "?" + params;
}
return params;
}