From c987318c7cf02e51fe6c9c98e75bfcc47058841b Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 16 四月 2019 16:36:28 +0800 Subject: [PATCH] 优化部分功能,添加京东 --- fanli/src/main/java/com/yeshi/fanli/controller/AuthCallBackController.java | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 109 insertions(+), 8 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 03d3ea8..ad351ae 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/AuthCallBackController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/AuthCallBackController.java @@ -1,22 +1,27 @@ package com.yeshi.fanli.controller; -import java.io.PrintWriter; +import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.util.Date; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.taobao.TaoBaoUnionAuthRecord; +import com.yeshi.fanli.exception.user.UserExtraTaoBaoInfoException; +import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionAuthRecordService; 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.StringUtil; +import com.yeshi.fanli.util.TaoBaoConstant; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; import net.sf.json.JSONObject; @@ -38,9 +43,17 @@ private TaoBaoUnionAuthRecordService taoBaoUnionAuthRecordService; @RequestMapping(value = "tb") - public void tb(String code, String state, PrintWriter out) { - if (StringUtil.isNullOrEmpty(code) || StringUtil.isNullOrEmpty(state)) + public void tb(String code, String state, HttpServletRequest request, HttpServletResponse response) { + LogHelper.test("娣樺疂鎺堟潈鍥炶皟:" + code + "锛�" + state); + if (StringUtil.isNullOrEmpty(code) || StringUtil.isNullOrEmpty(state)) { + LogHelper.error("娣樺疂鎺堟潈鍥炶皟鍑洪敊"); + try { + response.sendRedirect("http://apph5.yeshitv.com/apppage/flq_bonusState.html?code=1"); + } catch (IOException e1) { + e1.printStackTrace(); + } return; + } String stateStr = AESUtil.decrypt(state, Constant.UIDAESKEY); int errCode = 0; if (StringUtil.isNullOrEmpty(stateStr)) { @@ -50,6 +63,7 @@ JSONObject json = JSONObject.fromObject(stateStr); Long time = json.optLong("t"); Long uid = json.optLong("u"); + String source = json.optString("s"); if (System.currentTimeMillis() - time > 1000 * 60 * 10L) { // 杩囨椂 errCode = 2; @@ -60,22 +74,81 @@ // 璁″叆璁板綍 try { - String result = TaoKeApiUtil.getAccessToken(code, Constant.TAOBAO_AUTH_APPKEY, - Constant.TAOBAO_AUTH_APPSECRET); + String result = TaoKeApiUtil.getAccessToken(code, TaoBaoConstant.TAOBAO_AUTH_APPKEY, + TaoBaoConstant.TAOBAO_AUTH_APPSECRET); JSONObject data = JSONObject.fromObject(result); data = data.optJSONObject("top_auth_token_create_response").optJSONObject("token_result"); String accessToken = data.optString("access_token"); String openUid = data.optString("taobao_open_uid"); String taoBaoUid = data.optString("taobao_user_id"); String nickName = data.optString("taobao_user_nick"); + + // LogHelper.test("uid:" + uid + "\n accessToken:" + accessToken); + + // 鑾峰彇娓犻亾ID涓庝細鍛業D + if ("share".equalsIgnoreCase(source)) { + String relationId = TaoKeApiUtil.getRelationId(accessToken, TaoBaoConstant.TAOBAO_AUTH_APPKEY, + TaoBaoConstant.TAOBAO_AUTH_APPSECRET);// 娓犻亾ID + if (StringUtil.isNullOrEmpty(relationId)) + LogHelper.test(uid + "娓犻亾澶囨澶辫触"); + try { + userExtraTaoBaoInfoService.addRelationId(uid, relationId, taoBaoUid,nickName, true); + } catch (UserExtraTaoBaoInfoException e) { + LogHelper.test(e.getMsg()); + errCode = 5; + } + } 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 { + userExtraTaoBaoInfoService.addSpecialId(uid, specialId, taoBaoUid, nickName, true); + } catch (UserExtraTaoBaoInfoException e) { + LogHelper.test(e.getMsg()); + 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 + if (StringUtil.isNullOrEmpty(relationId)) { + LogHelper.test(uid + "娓犻亾澶囨澶辫触"); + bindInfo = false; + } + + String specialId = null; + if(bindInfo) { + specialId = TaoKeApiUtil.getSpecialId(accessToken, Constant.TAOBAO_AUTH_APPKEY, + TaoBaoConstant.TAOBAO_AUTH_APPSECRET); + if (StringUtil.isNullOrEmpty(specialId)) { + LogHelper.test(uid + "浼氬憳澶囨澶辫触"); + bindInfo = false; + } + } + + if (!bindInfo) { + errCode = 5;// 淇℃伅鑾峰彇涓嶅叏 + } else { + try { + userExtraTaoBaoInfoService.saveUserTaoBaoInfo(uid, relationId, specialId, taoBaoUid, nickName, true); + } catch (UserExtraTaoBaoInfoException e) { + LogHelper.test(e.getMsg()); + errCode = 6; + } + } + + } + + if (!StringUtil.isNullOrEmpty(nickName)) try { nickName = URLDecoder.decode(nickName, "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - - // userExtraTaoBaoInfoService.addRelationId(uid, relationId); TaoBaoUnionAuthRecord record = new TaoBaoUnionAuthRecord(); record.setUser(new UserInfo(uid)); record.setTaoBaoOpenUid(openUid); @@ -83,11 +156,39 @@ record.setTaoBaoUserNick(nickName); record.setCreateTime(new Date()); taoBaoUnionAuthRecordService.addAuthRecord(record); + } catch (Exception e) { errCode = 4; + try { + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); + } } - out.print("<html><body>缁戝畾閿欒:閿欒鐮侊紙" + errCode + "锛�</body></html>"); + try { + if (errCode == 0)// 鎴愬姛 + { + if ("share".equalsIgnoreCase(source)) { + response.sendRedirect("http://apph5.yeshitv.com/apppage/flq_bonusState.html?code=0"); + } 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>"); + } + } else {// 澶辫触 + if ("share".equalsIgnoreCase(source)) { + response.sendRedirect("http://apph5.yeshitv.com/apppage/flq_bonusState.html?code=1"); + } 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>"); + } + } + } catch (Exception e) { + + } + } } -- Gitblit v1.8.0