浏览代码

Merge branch 'master' of http://git.iamberry.com/hexiugang/iamberry-common-parent

# Conflicts:
#	watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminMachineController.java
#	watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/addRenovationMachine.ftl
liujiankang 7 年之前
父节点
当前提交
6d16b363ee
共有 1 个文件被更改,包括 15 次插入7 次删除
  1. 15 7
      watero-rst-core/src/main/java/com.iamberry.rst.core/tools/WeixinUtil.java

+ 15 - 7
watero-rst-core/src/main/java/com.iamberry.rst.core/tools/WeixinUtil.java

@@ -220,15 +220,18 @@ public class WeixinUtil {
 	 *            凭证
 	 * @param appsecret
 	 *            密钥
+	 * @param isUpdate
+	 *            是否更新 1,不需要更新,直接取缓存
 	 * @return
 	 */
-	public static AccessToken getAccessToken(String appid, String appsecret,String pubNo) {
-
-		// 根据public No查询access_token
-		Token token = cache.get(pubNo);
-
+	public static AccessToken getAccessToken(String appid, String appsecret,String pubNo,Integer isUpdate) {
+		Token token = null;
+		if(isUpdate == 1){
+			// 根据public No查询access_token
+			token = cache.get(pubNo);
+		}
 		AccessToken accessToken = null;
-		//判断数据库中是否存在token
+		//判断缓存中是否存在token
 		if (token != null) {
 			//判断token是否失效
 			Date date = new Date();
@@ -330,11 +333,16 @@ public class WeixinUtil {
 	public static QRCJson createQrcodeByWechatMp(String json,String appId,String appSecret,String pubNo) {
 		QRCJson qrcJson = new QRCJson();
 		try {
-			AccessToken at = getAccessToken(appId,appSecret,pubNo);
+			AccessToken at = getAccessToken(appId,appSecret,pubNo,1);
 			if (at != null) {
 				String token = at.getToken();
 				JSONObject jsonObject = httpRequest(NameUtils.get_token_url.replaceAll("TOKEN", token), "POST", json);
 				if (jsonObject != null) {
+					if(!jsonObject.containsKey("ticket")){
+						at = getAccessToken(appId,appSecret,pubNo,2);
+						token = at.getToken();
+						jsonObject = httpRequest(NameUtils.get_token_url.replaceAll("TOKEN", token), "POST", json);
+					}
 					String ticket = URLEncoder.encode(jsonObject.getString("ticket"), "UTF-8");
 					qrcJson.setTicket(ticket);
 					qrcJson.setUrl(NameUtils.show_qrcode_url + ticket);