Browse Source

获取openId

黄远 5 years ago
parent
commit
a270244480

+ 11 - 5
lift-system-service/src/main/java/cn/com/ty/lift/system/user/controller/LoginController.java

@@ -156,7 +156,7 @@ public class LoginController {
     @RequestMapping("/getOpenId")
     @ResponseBody
     public RestResponse getOpenId(@RequestBody UserRequest userRequest) {
-        RestResponse restResponse = judgeAuthCode(userRequest, WxConstants.APPLET_LOGIN);
+        RestResponse restResponse = judgeAuthCode(userRequest, WxConstants.APPLET_SCAN_LOGIN);
         if (restResponse == null) {
             Map<String, String> openIdMap = new HashMap<>();
             openIdMap.put("appletOpenId", userRequest.getWeChatOpenId());
@@ -320,10 +320,16 @@ public class LoginController {
         }
         //通过授权码获取用户openId
         String openId = "";
-        if (WxConstants.APPLET_LOGIN.equals(loginStyle)) {
-            openId = WxUtil.getAppletOpenIdByAuthCode(authCode);
-        } else {
-            openId = WxUtil.getAppOpenIdByAuthCode(authCode);
+        switch (loginStyle) {
+            case WxConstants.APPLET_LOGIN:
+                openId = WxUtil.getAppletOpenIdByAuthCode(authCode);
+                break;
+            case WxConstants.APP_LOGIN:
+                openId = WxUtil.getAppOpenIdByAuthCode(authCode);
+                break;
+            case WxConstants.APPLET_SCAN_LOGIN:
+                openId = WxUtil.getAppletScanOpenIdByAuthCode(authCode);
+                break;
         }
         if (StringUtils.isBlank(openId)) {
             return RestResponse.fail(ApiConstants.RESULT_ERROR, "授权码无效无法进行操作");

+ 20 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/wechat/constants/WxConstants.java

@@ -12,6 +12,11 @@ public class WxConstants {
      */
     public static final String APPLET_LOGIN = "appletLogin";
 
+    /**
+     * 小程序扫码登录
+     */
+    public static final String APPLET_SCAN_LOGIN = "appletScanLogin";
+
     /**
      * app登录
      */
@@ -50,4 +55,19 @@ public class WxConstants {
         String APP_SECRET = "c5b986baad1ac89372de2595fb83b999";
     }
 
+    /**
+     * 扫码小程序配置常量
+     */
+    public interface ScanCodeConfigConstants {
+        String OPEN_ID_URL = "https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=CODE&grant_type=authorization_code";
+        /**
+         * 小程序appId
+         */
+        String APP_ID = "wx7e54f85a80dee09c";
+        /**
+         * 小程序secret
+         */
+        String APP_SECRET = "da2d0efff86d53dd7a7af3ffaf65f83d";
+    }
+
 }

+ 13 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/wechat/utils/WxUtil.java

@@ -35,6 +35,19 @@ public class WxUtil {
                 WxConstants.AppletConfigConstants.APP_SECRET);
     }
 
+    /**
+     * @param authCode 用户授权码
+     * @return openId
+     * @description 小程序端扫码获取用户openId
+     * @date 2020/4/27 10:36 上午
+     */
+    public static String getAppletScanOpenIdByAuthCode(String authCode) {
+        return getOpenIdByAuthCode(authCode, WxConstants.ScanCodeConfigConstants.OPEN_ID_URL,
+                WxConstants.ScanCodeConfigConstants.APP_ID,
+                WxConstants.ScanCodeConfigConstants.APP_SECRET);
+    }
+
+
     /**
      * @param authCode  授权码
      * @param appId     appId