|
@@ -9,6 +9,7 @@ import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
|
|
|
import com.github.binarywang.wxpay.constant.WxPayConstants;
|
|
|
import com.github.binarywang.wxpay.exception.WxPayException;
|
|
|
import com.github.binarywang.wxpay.service.WxPayService;
|
|
|
+import com.hcloud.microserver.h5.entity.LoginRequest;
|
|
|
import com.hcloud.microserver.h5.service.CustomerInfoService;
|
|
|
import com.hcloud.microserver.commoncore.annotation.AuthCarbonValidate;
|
|
|
import com.hcloud.microserver.commoncore.base.BaseController;
|
|
@@ -56,28 +57,42 @@ public class WechatAppController extends BaseController {
|
|
|
|
|
|
@Autowired
|
|
|
private CustomerInfoService customerInfoService;
|
|
|
+
|
|
|
/**
|
|
|
* 登陆接口
|
|
|
*/
|
|
|
@PostMapping("/login")
|
|
|
@ResponseBody
|
|
|
- public ResponseBase login(@RequestBody MyWxMpUser myWxMpUser) {
|
|
|
- String code = myWxMpUser.getCode();
|
|
|
+ public ResponseBase login(@RequestBody LoginRequest request) {
|
|
|
+ String code = request.getCode();
|
|
|
if (StringUtils.isBlank(code)) {
|
|
|
return responseSuccess(new ResultVO(1, "请输入code错误!"));
|
|
|
}
|
|
|
try {
|
|
|
- WxMaJscode2SessionResult session = wxMaService.getUserService().getSessionInfo(code);
|
|
|
- this.logger.info(session.getSessionKey());
|
|
|
- this.logger.info(session.getOpenid());
|
|
|
+
|
|
|
+ // 获取微信用户session
|
|
|
+ WxMaJscode2SessionResult session = wxMaService.getUserService().getSessionInfo(request.getCode());
|
|
|
+ if (null == session) {
|
|
|
+ throw new RuntimeException("login handler error");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 解密用户信息
|
|
|
+ WxMaUserInfo wxUserInfo = wxMaService.getUserService().getUserInfo(session.getSessionKey(),
|
|
|
+ request.getEncryptedData(), request.getIv());
|
|
|
+ if (null == wxUserInfo) {
|
|
|
+ throw new RuntimeException("wxUser not exist");
|
|
|
+ }
|
|
|
+
|
|
|
+ MyWxMpUser myWxMpUser=new MyWxMpUser();
|
|
|
//TODO 可以增加自己的逻辑,关联业务相关数据
|
|
|
myWxMpUser.setOpenId(session.getOpenid());
|
|
|
- myWxMpUser.setUnionId(session.getOpenid());
|
|
|
+ myWxMpUser.setUnionId(session.getUnionid());
|
|
|
+ myWxMpUser.setNickname(wxUserInfo.getNickName());
|
|
|
+ myWxMpUser.setHeadImgUrl(wxUserInfo.getAvatarUrl());
|
|
|
//后台新增用户成功
|
|
|
- String customerId = customerInfoService.wxlogin(myWxMpUser);
|
|
|
+ Map<String, String> tokenMap = customerInfoService.wxlogin(myWxMpUser);
|
|
|
//登录系统获取本地
|
|
|
- Map<String, Object> resultMap = getStringObjectMap(customerId);
|
|
|
- return responseSuccess(new ResultVO(ResultEnum.SUCCESS, resultMap));
|
|
|
+ return responseSuccess(new ResultVO(ResultEnum.SUCCESS, tokenMap));
|
|
|
} catch (WxErrorException e) {
|
|
|
this.logger.error(e.getMessage(), e);
|
|
|
return responseSuccess(new ResultVO(1, "登录错误!"));
|
|
@@ -111,24 +126,7 @@ public class WechatAppController extends BaseController {
|
|
|
return responseSuccess(new ResultVO(ResultEnum.SUCCESS, resultMap));
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * <pre>
|
|
|
- * 获取用户信息接口
|
|
|
- * </pre>
|
|
|
- */
|
|
|
- @GetMapping("/info")
|
|
|
- public String info(String sessionKey,
|
|
|
- String signature, String rawData, String encryptedData, String iv) {
|
|
|
- // 用户信息校验
|
|
|
- if (!wxMaService.getUserService().checkUserInfo(sessionKey, rawData, signature)) {
|
|
|
- return "user check failed";
|
|
|
- }
|
|
|
- // 解密用户信息
|
|
|
- WxMaUserInfo userInfo = wxMaService.getUserService().getUserInfo(sessionKey, encryptedData, iv);
|
|
|
- MyWxMpUser myWxMpUser = getMyWxMpUser(userInfo);
|
|
|
- String wxlogin = customerInfoService.wxlogin(myWxMpUser);
|
|
|
- return JsonUtils.toJson(wxlogin);
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
private MyWxMpUser getMyWxMpUser(WxMaUserInfo userInfo) {
|
|
|
String openId = userInfo.getOpenId();
|
|
@@ -146,8 +144,6 @@ public class WechatAppController extends BaseController {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
@Value("${wx.auth.wxpayAppcallbackurl}")
|
|
|
private String wxpayCallbackUrl;
|
|
|
|
|
@@ -158,7 +154,7 @@ public class WechatAppController extends BaseController {
|
|
|
@PostMapping("/pay")
|
|
|
@AuthCarbonValidate
|
|
|
@ResponseBody
|
|
|
- public ResponseBase pay( HttpServletRequest request) {
|
|
|
+ public ResponseBase pay(HttpServletRequest request) {
|
|
|
// String orderId = wxPayFrom.getOrderId();
|
|
|
// String openid = wxPayFrom.getOpenid();
|
|
|
// String tradeType = wxPayFrom.getTradeType();
|
|
@@ -293,7 +289,6 @@ public class WechatAppController extends BaseController {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* //签名成功生成支付订单
|
|
|
*
|
|
@@ -330,6 +325,7 @@ public class WechatAppController extends BaseController {
|
|
|
ip = split[0];
|
|
|
return ip;
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* <pre>
|
|
|
* 获取用户绑定手机号信息
|