java110 лет назад: 5
Родитель
Сommit
8208918b34

+ 1 - 0
java110-utils/src/main/java/com/java110/utils/constant/WechatConstant.java

@@ -45,6 +45,7 @@ public class WechatConstant {
     public static final String GET_ACCESS_TOKEN = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET";
 
     public static final String APP_GET_ACCESS_TOKEN_URL = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code";
+    public static final String APP_GET_USER_INFO_URL = "https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN";
 
     public static final String OPEN_AUTH = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URL&response_type=code&scope=SCOPE&state=STATE#wechat_redirect";
 

+ 11 - 1
service-front/src/main/java/com/java110/front/smo/staff/impl/StaffAuthSMOImpl.java

@@ -86,16 +86,26 @@ public class StaffAuthSMOImpl extends AbstractFrontServiceSMO implements IStaffA
         }
 
         JSONObject paramObj = JSONObject.parseObject(paramOut.getBody());
-
         //获取 openId
         String openId = paramObj.getString("openid");
+        url = WechatConstant.APP_GET_USER_INFO_URL
+                .replace("ACCESS_TOKEN", paramObj.getString("access_token"))
+                .replace("OPENID", openId);
+
+        paramOut = outRestTemplate.getForEntity(url, String.class);
 
+        logger.debug("调用微信换去openId ", paramOut);
+        if (paramOut.getStatusCode() != HttpStatus.OK) {
+            return ResultVo.redirectPage("/");
+        }
+        paramObj = JSONObject.parseObject(paramOut.getBody());
         JSONObject paramAuth = new JSONObject();
         paramAuth.put("openId", openId);
         paramAuth.put("staffId", staffId);
         paramAuth.put("storeId", storeId);
         paramAuth.put("appType", "WECHAT");
         paramAuth.put("state", "2002");
+        paramAuth.put("openName", paramObj.getString("nickname"));
 
         ResponseEntity<String> responseEntity = this.callCenterService(restTemplate, pd, paramAuth.toJSONString(),
                 ServiceConstant.SERVICE_API_URL + "/api/staff/updateStaffAppAuth", HttpMethod.POST);

+ 1 - 0
service-user/src/main/java/com/java110/user/bmo/staffAppAuth/impl/UpdateStaffAppAuthBMOImpl.java

@@ -28,6 +28,7 @@ public class UpdateStaffAppAuthBMOImpl implements IUpdateStaffAppAuthBMO {
         staffAppAuthDto.setAppType(staffAppAuthPo.getAppType());
         staffAppAuthDto.setStaffId(staffAppAuthPo.getStaffId());
         staffAppAuthDto.setStoreId(staffAppAuthPo.getStoreId());
+        staffAppAuthDto.setOpenName(staffAppAuthPo.getOpenName());
         int count = staffAppAuthInnerServiceSMOImpl.queryStaffAppAuthsCount(staffAppAuthDto);
         int flag = 0;
         if (count > 0) {