From 65aaf1c05bd06cefa82ebc40cc3e01cf4ac233c0 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期六, 27 七月 2024 13:52:08 +0800 Subject: [PATCH] 代理新功能完善 --- src/main/java/com/taoke/autopay/controller/WebApiController.java | 81 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 80 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/taoke/autopay/controller/WebApiController.java b/src/main/java/com/taoke/autopay/controller/WebApiController.java index eed88bd..15831c2 100644 --- a/src/main/java/com/taoke/autopay/controller/WebApiController.java +++ b/src/main/java/com/taoke/autopay/controller/WebApiController.java @@ -1,5 +1,6 @@ package com.taoke.autopay.controller; +import com.google.gson.Gson; import com.taoke.autopay.dto.DYOrderDto; import com.taoke.autopay.dto.WXAppInfoDto; import com.taoke.autopay.entity.KeyOrder; @@ -267,6 +268,71 @@ } } + @ResponseBody + @RequestMapping(value = "submitKeyV4") + public String submitKeyV4(SubmitKeyInfo keyInfo, HttpSession session, HttpServletRequest request) { + String referer = request.getHeader("Referer"); + keyInfo.setReferer(referer); + WxUserInfo user = (WxUserInfo) session.getAttribute(Constant.SESSION_KEY_USER); + if (StringUtil.isNullOrEmpty(keyInfo.getKey())) { + return JsonUtil.loadFalseResult( "璇蜂笂浼爇ey"); + } + if(1<0) { + try { + verifySubmitKey(keyInfo.getKey()); + } catch (Exception e) { + return JsonUtil.loadFalseResult("鏀粯瀹濆彛浠や笉姝g‘"); + } + // 楠岃瘉鎻愪氦鏃堕棿 + String timeStr = systemConfigService.getValueCache(SystemConfigKeyEnum.KEY_SUBMIT_TIME_RANGE); + if (StringUtil.isNullOrEmpty(timeStr)) { + return JsonUtil.loadFalseResult("灏氭湭閰嶇疆鐢熸晥鏃堕棿"); + } + String startTime = timeStr.split(",")[0].trim().replace(":", ""); + String endTime = timeStr.split(",")[1].trim().replace(":", ""); + String now = TimeUtil.getGernalTime(System.currentTimeMillis(), "HHmmss"); + if (Integer.parseInt(now) < Integer.parseInt(startTime) || Integer.parseInt(now) > Integer.parseInt(endTime)) { + return JsonUtil.loadFalseResult(String.format("鍙d护鎻愪氦鏃堕棿娈典负锛�%s-%s", timeStr.split(",")[0], timeStr.split(",")[1])); + } + } + if (user == null) { + // 鍏堜繚瀛楰EY +// SESSION_KEY_TEMP_ALIPAY_KEY + session.setAttribute(Constant.SESSION_KEY_TEMP_ALIPAY_KEY, keyInfo); + wxLogger.info("寰俊娌℃湁鎺堟潈:" + session.getId()); + String redictLink = systemConfigService.getValueCache(SystemConfigKeyEnum.WX_REDIRECT_LINK); + if (StringUtil.isNullOrEmpty(redictLink)) { + return JsonUtil.loadFalseResult("鏃犳硶鑾峰彇鍒版巿鏉冮摼鎺�"); + } + + redictLink=redictLink.replace("snsapi_base","snsapi_userinfo"); + // 娌℃湁鐧诲綍锛岃繑鍥炵櫥褰曢摼鎺� + JSONObject root = new JSONObject(); + root.put("link", redictLink); + return JsonUtil.loadTrueResult(Constant.RESULT_CODE_NEED_LOGIN, root); + } + wxLogger.info("寰俊鏈夋巿鏉�:" + session.getId()); + try { + addKey(keyInfo, user.getId()); + return JsonUtil.loadTrueResult(""); + } catch (KeyOrderException e) { + e.printStackTrace(); + return JsonUtil.loadFalseResult(e.getMessage()); + } catch (WxOrderCountException e) { + return JsonUtil.loadFalseResult(e.getMessage()); + } catch (KeyVerifyException e) { + logger.debug("鍙d护鏍¢獙澶辫触锛歿}-{}-{}", keyInfo.getKey(), e.getCode(), e.getMessage()); + switch (e.getCode()){ + case KeyVerifyException.CODE_KEY_MONEY_NOT_MATCH: + return JsonUtil.loadFalseResult("璇ョ瑪璁㈠崟鏈夎锛屼笉浜堟彁浜�"); + case KeyVerifyException.CODE_ORDER_MONEY_NOT_MATCH: + return JsonUtil.loadFalseResult("鎻愪氦閲戦涓嶅尮閰�"); + } + return JsonUtil.loadFalseResult(e.getMessage()); + } + } + + @RequestMapping(value = "wxLogin") public void wxLogin(String code, String state, HttpServletRequest request, HttpServletResponse response, HttpSession session) throws IOException { // 鏍规嵁code鑾峰彇openid @@ -286,7 +352,20 @@ WxApiUtil.WXAccessTokenInfo tokenInfo = WxApiUtil.getAcessTokenInfo(code, wxApp); if (tokenInfo != null && !StringUtil.isNullOrEmpty(tokenInfo.getOpenid())) { - WxUserInfo user = wxUserService.login(tokenInfo.getOpenid()); + WxApiUtil.WXUserInfo wxUserInfo =null; + if(tokenInfo.getScope()!=null&&tokenInfo.getScope().contains("snsapi_userinfo")){ + try { + wxUserInfo = WxApiUtil.getUserInfo(tokenInfo.getAccess_token(), tokenInfo.getOpenid()); + wxLogger.info("瑙f瀽缁撴灉",new Gson().toJson(wxUserInfo)); + }catch(Exception e){ + wxLogger.error("瑙f瀽鍑洪敊",e); + } + } + if(wxUserInfo==null){ + wxUserInfo=new WxApiUtil.WXUserInfo(); + wxUserInfo.setOpenid(tokenInfo.getOpenid()); + } + WxUserInfo user = wxUserService.login(wxUserInfo); session.setAttribute(Constant.SESSION_KEY_USER, user); wxLogger.info("寰俊淇濆瓨鐢ㄦ埛淇℃伅锛歿} id-{}", session.getId(), user.getId()); -- Gitblit v1.8.0