ソースを参照

微信小程序获取openid

李进 2 年 前
コミット
5366563b70

+ 23 - 0
authorize-api-service/src/main/java/com/xy/third/ThirdLoginServiceImpl.java

@@ -0,0 +1,23 @@
+package com.xy.third;
+
+import cn.dev33.satoken.stp.StpUtil;
+import com.xy.dto.ThirdLoginDto;
+import com.xy.service.ThirdLoginService;
+import com.xy.utils.R;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+@Service
+@AllArgsConstructor
+@Api(tags = "第三方登录")
+public class ThirdLoginServiceImpl implements ThirdLoginService {
+
+    @Override
+    @ApiOperation("登录")
+    public R<String> login(ThirdLoginDto thirdLoginDto) {
+        StpUtil.login(thirdLoginDto.getLoginId());
+        return R.ok(StpUtil.getTokenValue());
+    }
+}

+ 0 - 25
authorize-api-service/src/main/java/com/xy/third/config/ThirdLoginConfig.java

@@ -1,25 +0,0 @@
-package com.xy.third.config;
-
-import lombok.Data;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-@Data
-@Component
-@ConfigurationProperties(prefix = "third-login")
-public class ThirdLoginConfig {
-
-    private Wx wx;
-
-    @Data
-    public static class Wx {
-
-        private String appid;
-
-        private String secret;
-
-    }
-
-}

+ 0 - 34
authorize-api-service/src/main/java/com/xy/third/config/WxMaConfiguration.java

@@ -1,34 +0,0 @@
-package com.xy.third.config;
-
-import cn.binarywang.wx.miniapp.api.WxMaService;
-import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
-import cn.binarywang.wx.miniapp.config.WxMaConfig;
-import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
-import com.xy.collections.map.JHashMap;
-import lombok.AllArgsConstructor;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-@AllArgsConstructor
-public class WxMaConfiguration {
-
-    private ThirdLoginConfig thirdLoginConfig;
-
-    /**
-     * 小程序
-     *
-     * @return
-     */
-    @Bean
-    public WxMaService wxMaService() {
-        ThirdLoginConfig.Wx wx = thirdLoginConfig.getWx();
-        WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
-        config.setAppid(wx.getAppid());
-        config.setSecret(wx.getSecret());
-        WxMaService wxMaService = new WxMaServiceImpl();
-        wxMaService.setMultiConfigs(new JHashMap<String, WxMaConfig>().set("config", config));
-        return wxMaService;
-    }
-
-}

+ 0 - 78
authorize-api-service/src/main/java/com/xy/third/service/ThirdLoginServiceImpl.java

@@ -1,78 +0,0 @@
-package com.xy.third.service;
-
-import cn.binarywang.wx.miniapp.api.WxMaService;
-import cn.binarywang.wx.miniapp.api.WxMaUserService;
-import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
-import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
-import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
-import cn.binarywang.wx.miniapp.util.WxMaConfigHolder;
-import cn.dev33.satoken.stp.StpUtil;
-import com.xy.dto.ThirdLoginDto;
-import com.xy.dto.WxMaDto;
-import com.xy.error.CommRuntimeException;
-import com.xy.service.ThirdLoginService;
-import com.xy.utils.FunctionUtils;
-import com.xy.utils.R;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.AllArgsConstructor;
-import me.chanjar.weixin.common.error.WxErrorException;
-import org.springframework.stereotype.Service;
-import org.springframework.util.StringUtils;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.RequestBody;
-
-import static com.xy.utils.Beans.copy;
-
-@Service
-@AllArgsConstructor
-@Api(tags = "第三方登录")
-public class ThirdLoginServiceImpl implements ThirdLoginService {
-
-    private WxMaService wxMaService;
-
-    @Override
-    @ApiOperation("登录")
-    public R<String> login(ThirdLoginDto thirdLoginDto) {
-        StpUtil.login(thirdLoginDto.getLoginId());
-        return R.ok(StpUtil.getTokenValue());
-    }
-
-    @Override
-    @ApiOperation("获取用户信息-微信小程序")
-    public R<WxMaDto.Vo> getUserInfoWxMa(@RequestBody @Validated WxMaDto.GetUserInfo getUserInfo) {
-        WxMaDto.Vo vo = new WxMaDto.Vo();
-        WxMaUserService userService = wxMaService.getUserService();
-        //获取用户信息
-        FunctionUtils.NoParamsNoResult getInfo = () -> {
-            String code = getUserInfo.getCode();
-            if (StringUtils.isEmpty(code)) {
-                return;
-            }
-            WxMaJscode2SessionResult session;
-            try {
-                session = userService.getSessionInfo(code);
-            } catch (WxErrorException e) {
-                throw new CommRuntimeException("登录失败");
-            }
-            String openid = session.getOpenid();
-            String sessionKey = session.getSessionKey();
-            WxMaUserInfo userInfo = userService.getUserInfo(sessionKey, getUserInfo.getEncryptedData(), getUserInfo.getIv());
-            copy(vo, userInfo).setOpenId(openid)
-                    .setSessionKey(sessionKey);
-        };
-        //获取手机信息
-        FunctionUtils.NoParamsNoResult getTel = () -> {
-            String sessionKey = getUserInfo.getSessionKey();
-            if (StringUtils.isEmpty(sessionKey)) {
-                return;
-            }
-            WxMaPhoneNumberInfo phoneNoInfo = userService.getPhoneNoInfo(sessionKey, getUserInfo.getEncryptedData(), getUserInfo.getIv());
-            vo.setTel(phoneNoInfo.getPhoneNumber());
-        };
-        getInfo.run();
-        getTel.run();
-        WxMaConfigHolder.remove();
-        return R.ok(vo);
-    }
-}

+ 0 - 61
authorize-api/src/main/java/com/xy/dto/WxMaDto.java

@@ -1,61 +0,0 @@
-package com.xy.dto;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import javax.validation.constraints.NotBlank;
-
-public class WxMaDto {
-
-    @Data
-    @Accessors(chain = true)
-    public static class GetUserInfo {
-
-        @ApiModelProperty("code")
-        private String code;
-
-        @ApiModelProperty("sessionKey")
-        private String sessionKey;
-
-        @ApiModelProperty("用户数据")
-        @NotBlank(message = "encryptedData不能为空")
-        private String encryptedData;
-
-        @NotBlank(message = "iv不能为空")
-        @ApiModelProperty("加密算法的初始向量")
-        private String iv;
-    }
-
-    @Data
-    @Accessors(chain = true)
-    public static class Vo {
-
-        @ApiModelProperty("昵称")
-        private String nickName;
-
-        @ApiModelProperty("性别")
-        private String gender;
-
-        @ApiModelProperty("语言")
-        private String language;
-
-        @ApiModelProperty("市")
-        private String city;
-
-        @ApiModelProperty("省")
-        private String province;
-
-        @ApiModelProperty("国家")
-        private String country;
-
-        @ApiModelProperty("openId")
-        private String openId;
-
-        @ApiModelProperty("手机号")
-        private String tel;
-
-        @ApiModelProperty("sessionKey")
-        private String sessionKey;
-    }
-}

+ 0 - 10
authorize-api/src/main/java/com/xy/service/ThirdLoginService.java

@@ -2,7 +2,6 @@ package com.xy.service;
 
 import com.xy.annotate.RestMappingController;
 import com.xy.dto.ThirdLoginDto;
-import com.xy.dto.WxMaDto;
 import com.xy.utils.R;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -22,13 +21,4 @@ public interface ThirdLoginService {
      */
     @PostMapping("login")
     R<String> login(@RequestBody @Validated ThirdLoginDto thirdLoginDto);
-
-    /**
-     * 获取用户信息-微信小程序
-     *
-     * @param getUserInfo
-     * @return
-     */
-    @PostMapping("getUserInfoWxMa")
-    R<WxMaDto.Vo> getUserInfoWxMa(@RequestBody @Validated WxMaDto.GetUserInfo getUserInfo);
 }