Commit b5cb477a by wangqi

微信扫一扫

parent b9304007
...@@ -11,6 +11,10 @@ import com.ruoyi.common.core.redis.RedisCache; ...@@ -11,6 +11,10 @@ import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.http.HttpUtils; import com.ruoyi.common.utils.http.HttpUtils;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -318,10 +322,9 @@ public class WxApiController extends BaseController { ...@@ -318,10 +322,9 @@ public class WxApiController extends BaseController {
@GetMapping("/getsignature") @GetMapping("/getsignature")
@ResponseBody @ResponseBody
public AjaxResult getsignature(String url) throws Exception { public AjaxResult getsignature(String url) throws Exception {
Map<String,String> map = new HashMap<String,String>(); //获取accesToken
//获取accesToken String token = accessTokenUtil.getToken();
String token = accessTokenUtil.getToken(); //获取jsapi_ticket
//获取jsapi_ticket
String ticket = null; String ticket = null;
//ticket = redisCache.getCacheObject("ticket"); //ticket = redisCache.getCacheObject("ticket");
if (StringUtils.isEmpty(ticket)){ if (StringUtils.isEmpty(ticket)){
...@@ -332,30 +335,42 @@ public class WxApiController extends BaseController { ...@@ -332,30 +335,42 @@ public class WxApiController extends BaseController {
ticket = jsonObject.get("ticket").toString(); ticket = jsonObject.get("ticket").toString();
// redisCache.setCacheObject("ticket", ticket, 5, TimeUnit.MINUTES); // redisCache.setCacheObject("ticket", ticket, 5, TimeUnit.MINUTES);
} }
//生成JS-SDK权限验证的签名 //生成JS-SDK权限验证的签名
//1.生成随机字符串 String noncester = create_nonce_str();
String uuid = UUID.randomUUID().toString(); String timestamp = create_timestamp();
//去掉“-”符号 String string1;
String noncester = uuid.replaceAll("-", ""); String signature = "";
//2获取时间戳 //3.
long timestamp = System.currentTimeMillis()/1000; //注意这里参数名必须全部小写,且必须有序
//3. string1 = "jsapi_ticket=" + ticket +
Map<String, String> maps = new TreeMap<String,String>(); "&noncestr=" + noncester +
maps.put("noncestr", noncester); "&timestamp=" + timestamp +
maps.put("jsapi_ticket", ticket); "&url=" + url;
maps.put("timestamp",String.valueOf(timestamp)); System.out.println(string1);
maps.put("url", url); log.info(string1);
String createLinkString = createLinkString(maps); try
log.info(createLinkString); {
//sha1签名,得到signature MessageDigest crypt = MessageDigest.getInstance("SHA-1");
String signature = Sha1Util.sha12(createLinkString); crypt.reset();
map.put("noncestr",noncester); crypt.update(string1.getBytes("UTF-8"));
map.put("jsapi_ticket",ticket); signature = byteToHex(crypt.digest());
map.put("timestamp",String.valueOf(timestamp)); }
map.put("url",url); catch (NoSuchAlgorithmException e)
map.put("signature",signature); {
map.put("cstoken",token); e.printStackTrace();
return AjaxResult.success(map); }
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
Map<String,String> map = new HashMap<String,String>();
map.put("noncestr",noncester);
map.put("jsapi_ticket",ticket);
map.put("timestamp",timestamp);
map.put("url",url);
map.put("signature",signature);
map.put("cstoken",token);
return AjaxResult.success(map);
} }
...@@ -379,8 +394,22 @@ public class WxApiController extends BaseController { ...@@ -379,8 +394,22 @@ public class WxApiController extends BaseController {
} }
return prestr; return prestr;
} }
private static String create_nonce_str() {
return UUID.randomUUID().toString();
}
private static String create_timestamp() {
return Long.toString(System.currentTimeMillis() / 1000);
}
private static String byteToHex(final byte[] hash) {
Formatter formatter = new Formatter();
for (byte b : hash)
{
formatter.format("%02x", b);
}
String result = formatter.toString();
formatter.close();
return result;
}
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment