|
@@ -1,8 +1,11 @@
|
|
package com.xy.third.service.wx;
|
|
package com.xy.third.service.wx;
|
|
|
|
|
|
import cn.binarywang.wx.miniapp.api.WxMaService;
|
|
import cn.binarywang.wx.miniapp.api.WxMaService;
|
|
|
|
+import cn.binarywang.wx.miniapp.api.WxMaUserService;
|
|
import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
|
|
import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
|
|
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
|
|
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.config.WxMaConfig;
|
|
import cn.binarywang.wx.miniapp.config.WxMaConfig;
|
|
import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
|
|
import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
|
|
import cn.binarywang.wx.miniapp.util.WxMaConfigHolder;
|
|
import cn.binarywang.wx.miniapp.util.WxMaConfigHolder;
|
|
@@ -18,6 +21,8 @@ import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
|
|
|
|
|
+import static com.xy.utils.Beans.copy;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 微信小程序
|
|
* 微信小程序
|
|
*
|
|
*
|
|
@@ -30,9 +35,9 @@ public class WxMaServiceImpls {
|
|
|
|
|
|
private ThirdLoginConfig thirdLoginConfig;
|
|
private ThirdLoginConfig thirdLoginConfig;
|
|
|
|
|
|
- @PostMapping("oenId")
|
|
|
|
- @ApiOperation("获取openId")
|
|
|
|
- public R<String> openId(@RequestBody @Validated WxMaDto.OpenId openId) {
|
|
|
|
|
|
+ @PostMapping("getUserInfo")
|
|
|
|
+ @ApiOperation("获取用户信息")
|
|
|
|
+ public R<WxMaDto.Vo> getUserInfo(@RequestBody @Validated WxMaDto.GetUserInfo getUserInfo) {
|
|
ThirdLoginConfig.Wx wx = thirdLoginConfig.getWx();
|
|
ThirdLoginConfig.Wx wx = thirdLoginConfig.getWx();
|
|
WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
|
|
WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
|
|
config.setAppid(wx.getAppid());
|
|
config.setAppid(wx.getAppid());
|
|
@@ -40,8 +45,19 @@ public class WxMaServiceImpls {
|
|
WxMaService wxMaService = new WxMaServiceImpl();
|
|
WxMaService wxMaService = new WxMaServiceImpl();
|
|
wxMaService.setMultiConfigs(new JHashMap<String, WxMaConfig>().set("config", config));
|
|
wxMaService.setMultiConfigs(new JHashMap<String, WxMaConfig>().set("config", config));
|
|
try {
|
|
try {
|
|
- WxMaJscode2SessionResult session = wxMaService.getUserService().getSessionInfo(openId.getCode());
|
|
|
|
- return R.ok(session.getOpenid());
|
|
|
|
|
|
+ WxMaUserService userService = wxMaService.getUserService();
|
|
|
|
+ //获取session
|
|
|
|
+ WxMaJscode2SessionResult session = userService.getSessionInfo(getUserInfo.getCode());
|
|
|
|
+ String sessionKey = session.getSessionKey();
|
|
|
|
+ //获取用户信息
|
|
|
|
+ WxMaUserInfo userInfo = userService.getUserInfo(sessionKey, getUserInfo.getEncryptedData(), getUserInfo.getIv());
|
|
|
|
+ //获取手机信息
|
|
|
|
+ WxMaPhoneNumberInfo phoneNoInfo = userService.getPhoneNoInfo(sessionKey, getUserInfo.getEncryptedData(), getUserInfo.getIv());
|
|
|
|
+ //封装返回值
|
|
|
|
+ WxMaDto.Vo vo = copy(WxMaDto.Vo.class, userInfo)
|
|
|
|
+ .setOpenId(session.getOpenid())
|
|
|
|
+ .setTel(phoneNoInfo.getPhoneNumber());
|
|
|
|
+ return R.ok(vo);
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
return R.fail("code无效");
|
|
return R.fail("code无效");
|
|
} finally {
|
|
} finally {
|