一、首先获取调取微信js的签名
1.通过ajax获取跳去微信签名所需要的签名(appid,timestamp,nonceStr,signature)
@ResponseBody
@RequestMapping("qrCodeData")
private static Object qrCodeData(HttpServletRequest req){
SortedMap<String, String> params = new TreeMap<String, String>();
params.put("timestamp", Sha1Util.getTimeStamp());//时间戳
params.put("noncestr", UUIDS.genReqIDtoLowCase());//随机字符串
params.put("url",req.getParameter("url"));//调取js的页面路径
try {
String jsapi_ticket=RedisUtils.get("ticket");
if(StringUtils.isBlank(jsapi_ticket)){
logger.error("**********jsapi_ticket为空**************");
jsapi_ticket=WechatAccessToken.GetTicket(RedisUtils.get("token"));
}
params.put("jsapi_ticket", jsapi_ticket);//调取js的ticket
} catch (Exception e) {
e.printStackTrace();
logger.error(e.toString());
}
RequestHandler rHandler = new RequestHandler();
params.put("signature", rHandler.createSign(params, "SHA-1"));
params.put("appid", WechatGlobalConfig.APP_ID);
logger.info(params);
return params;
}
/**
*SH1签名
*/
public String createSign(SortedMap<String, String> packageParams,String encName) {
String[] paramArr = new String[] { "jsapi_ticket=" +
packageParams.get("jsapi_ticket"),"timestamp=" + packageParams.get("timestamp"),
"noncestr=" + packageParams.get("noncestr"), "url=" + packageParams.get("url") };
Arrays.sort(paramArr);
// 将排序后的结果拼接成一个字符串
String content =
param