From 3f7bcb1fb68b78a2cd2a87b44098f1de70378d92 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 30 十二月 2019 18:59:59 +0800
Subject: [PATCH] 完成微信小程序登录流程

---
 fanli/src/main/java/com/yeshi/fanli/controller/wxmp/UserController.java |   27 +++++++++++++++++++++++----
 1 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/UserController.java b/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/UserController.java
index fdc7afc..9515430 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/UserController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/UserController.java
@@ -2,12 +2,17 @@
 
 import java.io.PrintWriter;
 
+import javax.annotation.Resource;
+import javax.servlet.http.HttpSession;
+
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.yeshi.utils.JsonUtil;
+import org.yeshi.utils.entity.wx.WXMPSessionInfo;
 import org.yeshi.utils.wx.WXXCXUtil;
 
 import com.yeshi.fanli.dto.WXMPAcceptData;
+import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.StringUtil;
 
@@ -17,20 +22,34 @@
 @RequestMapping("/wxmp/api/v1/user")
 public class UserController {
 
+	public final static String WXMP_SESSION_INFO_KEY = "WXMP-SESSION-INFO";
+
+	@Resource
+	private UserInfoExtraService userInfoExtraService;
+
+	/**
+	 * 鑾峰彇openId
+	 * 
+	 * @param acceptData
+	 * @param code
+	 * @param out
+	 */
 	@RequestMapping("getOpenId")
-	public void getOpenId(WXMPAcceptData acceptData, String code, PrintWriter out) {
+	public void getOpenId(WXMPAcceptData acceptData, String code, HttpSession session, PrintWriter out) {
 		if (StringUtil.isNullOrEmpty(code)) {
 			out.print(JsonUtil.loadFalseResult("code涓虹┖"));
 			return;
 		}
 
-		String openId = WXXCXUtil.getOpenId(Constant.WXMP_APP_INFO, code);
-		if (!StringUtil.isNullOrEmpty(openId)) {
+		WXMPSessionInfo info = WXXCXUtil.getSessionInfo(Constant.WXMP_APP_INFO, code);
+		if (info != null) {
+			session.setAttribute(WXMP_SESSION_INFO_KEY, info);
 			JSONObject data = new JSONObject();
-			data.put("openId", openId);
+			data.put("openId", info.getOpenId());
 			out.print(JsonUtil.loadTrueResult(data));
 		} else {
 			out.print(JsonUtil.loadFalseResult("openId鑾峰彇澶辫触"));
 		}
 	}
+
 }

--
Gitblit v1.8.0