From 02d37bb72140291301adfc19689dfd49c2c37a53 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 17 四月 2019 18:16:27 +0800
Subject: [PATCH] 事务更改,淘宝授权回调逻辑更改

---
 fanli/src/main/java/com/yeshi/fanli/controller/AuthCallBackController.java |   53 ++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 38 insertions(+), 15 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/AuthCallBackController.java b/fanli/src/main/java/com/yeshi/fanli/controller/AuthCallBackController.java
index ad351ae..56f284c 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/AuthCallBackController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/AuthCallBackController.java
@@ -20,6 +20,7 @@
 import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
 import com.yeshi.fanli.util.AESUtil;
 import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.TaoBaoConstant;
 import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
@@ -42,8 +43,12 @@
 	@Resource
 	private TaoBaoUnionAuthRecordService taoBaoUnionAuthRecordService;
 
+	@Resource
+	private RedisManager redisManager;
+
 	@RequestMapping(value = "tb")
 	public void tb(String code, String state, HttpServletRequest request, HttpServletResponse response) {
+
 		LogHelper.test("娣樺疂鎺堟潈鍥炶皟:" + code + "锛�" + state);
 		if (StringUtil.isNullOrEmpty(code) || StringUtil.isNullOrEmpty(state)) {
 			LogHelper.error("娣樺疂鎺堟潈鍥炶皟鍑洪敊");
@@ -53,6 +58,14 @@
 				e1.printStackTrace();
 			}
 			return;
+		}
+		try {
+			String key = StringUtil.Md5("taobao-code-" + code);
+			if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(key)))
+				return;
+			redisManager.cacheCommonString(key, 1 + "", 5);
+		} catch (Exception e) {
+
 		}
 		String stateStr = AESUtil.decrypt(state, Constant.UIDAESKEY);
 		int errCode = 0;
@@ -82,7 +95,10 @@
 			String openUid = data.optString("taobao_open_uid");
 			String taoBaoUid = data.optString("taobao_user_id");
 			String nickName = data.optString("taobao_user_nick");
-
+			try {
+				nickName = URLDecoder.decode(nickName, "UTF-8");
+			} catch (Exception e) {
+			}
 			// LogHelper.test("uid:" + uid + "\n accessToken:" + accessToken);
 
 			// 鑾峰彇娓犻亾ID涓庝細鍛業D
@@ -92,15 +108,15 @@
 				if (StringUtil.isNullOrEmpty(relationId))
 					LogHelper.test(uid + "娓犻亾澶囨澶辫触");
 				try {
-					userExtraTaoBaoInfoService.addRelationId(uid, relationId, taoBaoUid,nickName, true);
+					userExtraTaoBaoInfoService.addRelationId(uid, relationId, taoBaoUid, nickName, true);
 				} catch (UserExtraTaoBaoInfoException e) {
 					LogHelper.test(e.getMsg());
 					errCode = 5;
 				}
-			} else if ("zigou".equalsIgnoreCase(source))  {
+			} else if ("zigou".equalsIgnoreCase(source)) {
 				String specialId = TaoKeApiUtil.getSpecialId(accessToken, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
 						TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
-
+
 				if (StringUtil.isNullOrEmpty(specialId))
 					LogHelper.test(uid + "浼氬憳澶囨澶辫触");
 				try {
@@ -110,17 +126,18 @@
 					errCode = 5;
 				}
 			} else if ("bind".equalsIgnoreCase(source)) {
-				
+
 				boolean bindInfo = true;
 				// 缁戝畾娣樺疂锛歏1.5.3
-				String relationId = TaoKeApiUtil.getRelationId(accessToken, Constant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);// 娓犻亾ID
+				String relationId = TaoKeApiUtil.getRelationId(accessToken, Constant.TAOBAO_AUTH_APPKEY,
+						TaoBaoConstant.TAOBAO_AUTH_APPSECRET);// 娓犻亾ID
 				if (StringUtil.isNullOrEmpty(relationId)) {
 					LogHelper.test(uid + "娓犻亾澶囨澶辫触");
 					bindInfo = false;
 				}
-				
+
 				String specialId = null;
-				if(bindInfo) {
+				if (bindInfo) {
 					specialId = TaoKeApiUtil.getSpecialId(accessToken, Constant.TAOBAO_AUTH_APPKEY,
 							TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
 					if (StringUtil.isNullOrEmpty(specialId)) {
@@ -128,20 +145,20 @@
 						bindInfo = false;
 					}
 				}
-				
+
 				if (!bindInfo) {
 					errCode = 5;// 淇℃伅鑾峰彇涓嶅叏
 				} else {
 					try {
-						userExtraTaoBaoInfoService.saveUserTaoBaoInfo(uid, relationId, specialId, taoBaoUid, nickName, true);
+						userExtraTaoBaoInfoService.saveUserTaoBaoInfo(uid, relationId, specialId, taoBaoUid, nickName,
+								true);
 					} catch (UserExtraTaoBaoInfoException e) {
 						LogHelper.test(e.getMsg());
 						errCode = 6;
 					}
 				}
-				
+
 			}
-				
 
 			if (!StringUtil.isNullOrEmpty(nickName))
 				try {
@@ -156,7 +173,7 @@
 			record.setTaoBaoUserNick(nickName);
 			record.setCreateTime(new Date());
 			taoBaoUnionAuthRecordService.addAuthRecord(record);
-			
+
 		} catch (Exception e) {
 			errCode = 4;
 			try {
@@ -174,7 +191,10 @@
 				} else if ("zigou".equalsIgnoreCase(source)) {
 					response.sendRedirect("http://apph5.yeshitv.com/apppage/flq_rebateState.html?code=0");
 				} else if ("bind".equalsIgnoreCase(source)) {
-					response.getWriter().print("<script>yestv.toast(\"鎭枩浣狅紝娣樺疂缁戝畾鎴愬姛\");yestv.finishPage();</script>");
+					String script = String.format(
+							"<script>if(/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {window.location.href = 'yestv://toast#%s';setTimeout(function(){window.location.href = 'yestv://finishPage';},100);} else {yestv.toast(\"鎭枩浣狅紝娣樺疂缁戝畾鎴愬姛\");yestv.finishPage();}</script>",
+							StringUtil.getBase64String("鎭枩浣狅紝娣樺疂缁戝畾鎴愬姛"));
+					response.getWriter().print(script);
 				}
 			} else {// 澶辫触
 				if ("share".equalsIgnoreCase(source)) {
@@ -182,7 +202,10 @@
 				} else if ("zigou".equalsIgnoreCase(source)) {
 					response.sendRedirect("http://apph5.yeshitv.com/apppage/flq_rebateState.html?code=1");
 				} else if ("bind".equalsIgnoreCase(source)) {
-					response.getWriter().print("<script>yestv.toast(\"鎶辨瓑锛屾窐瀹濈粦瀹氬け璐");yestv.finishPage();</script>");
+					String script = String.format(
+							"<script>if(/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {window.location.href = 'yestv://toast#%s';setTimeout(function(){window.location.href = 'yestv://finishPage';},100);} else {yestv.toast(\"鎶辨瓑锛屾窐瀹濈粦瀹氬け璐");yestv.finishPage();}</script>",
+							StringUtil.getBase64String("鎶辨瓑锛屾窐瀹濈粦瀹氬け璐�"));
+					response.getWriter().print(script);
 				}
 			}
 		} catch (Exception e) {

--
Gitblit v1.8.0