登录
This commit is contained in:
@@ -1,23 +1,18 @@
|
|||||||
package com.cool.store.http;
|
package com.cool.store.http;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.cool.store.dto.response.ResultDTO;
|
|
||||||
import com.cool.store.dto.wx.CodeSessionDTO;
|
import com.cool.store.dto.wx.CodeSessionDTO;
|
||||||
import com.cool.store.dto.wx.PhoneInfoDTO;
|
import com.cool.store.dto.wx.PhoneInfoDTO;
|
||||||
import com.cool.store.enums.ErrorCodeEnum;
|
import com.cool.store.enums.ErrorCodeEnum;
|
||||||
import com.cool.store.exception.ServiceException;
|
import com.cool.store.exception.ServiceException;
|
||||||
import com.cool.store.mq.util.HttpRestTemplateService;
|
import com.cool.store.mq.util.HttpRestTemplateService;
|
||||||
import com.cool.store.utils.RedisUtilPool;
|
import com.cool.store.utils.RedisUtilPool;
|
||||||
import com.cool.store.utils.RestTemplateUtil;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.http.ResponseEntity;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author zhangchenbiao
|
* @author zhangchenbiao
|
||||||
@@ -46,20 +41,19 @@ public class WechatRest {
|
|||||||
|
|
||||||
|
|
||||||
public CodeSessionDTO miniProgramJsCodeSession(String appId, String secret, String jsCode){
|
public CodeSessionDTO miniProgramJsCodeSession(String appId, String secret, String jsCode){
|
||||||
|
log.info("WechatRest#miniProgramJsCodeSession, jsCode:{}", jsCode);
|
||||||
String url = "https://api.weixin.qq.com/sns/jscode2session";
|
String url = "https://api.weixin.qq.com/sns/jscode2session";
|
||||||
HashMap requestMap = new HashMap();
|
HashMap requestMap = new HashMap();
|
||||||
requestMap.put("appid", appId);
|
requestMap.put("appid", appId);
|
||||||
requestMap.put("secret", secret);
|
requestMap.put("secret", secret);
|
||||||
requestMap.put("js_code", jsCode);
|
requestMap.put("js_code", jsCode);
|
||||||
requestMap.put("grant_type","authorization_code");
|
requestMap.put("grant_type","authorization_code");
|
||||||
ResponseEntity<CodeSessionDTO> responseEntity = null;
|
|
||||||
try {
|
try {
|
||||||
responseEntity = RestTemplateUtil.loadGet(url, CodeSessionDTO.class);
|
String responseStr = httpRestTemplateService.getForObject(url, String.class ,requestMap);
|
||||||
log.info("WechatRest#miniProgramJsCodeSession, url:{}, response:{}", url, JSONObject.toJSONString(responseEntity));
|
log.info("WechatRest#miniProgramJsCodeSession, url:{}, response:{}", url, responseStr);
|
||||||
if(Objects.nonNull(responseEntity.getBody()) && responseEntity.getBody().isSuccess()){
|
if(StringUtils.isNotBlank(responseStr)){
|
||||||
return responseEntity.getBody();
|
return JSONObject.parseObject(responseStr, CodeSessionDTO.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.info("调用微信服务异常{}", e);
|
log.info("调用微信服务异常{}", e);
|
||||||
throw new ServiceException(ErrorCodeEnum.WX_SERVICE_ERROR);
|
throw new ServiceException(ErrorCodeEnum.WX_SERVICE_ERROR);
|
||||||
@@ -76,13 +70,12 @@ public class WechatRest {
|
|||||||
String reqUrl = String.format(ACCESS_TOKEN, appId, secret);
|
String reqUrl = String.format(ACCESS_TOKEN, appId, secret);
|
||||||
JSONObject jsonObject = null;
|
JSONObject jsonObject = null;
|
||||||
try {
|
try {
|
||||||
jsonObject = httpRestTemplateService.getForObject(reqUrl, JSONObject.class, null);
|
jsonObject = httpRestTemplateService.getForObject(reqUrl, JSONObject.class, new HashMap());
|
||||||
log.info("WechatRest#getAccessToken, reqUrl:{}, response:{}", reqUrl, JSONObject.toJSONString(jsonObject));
|
log.info("WechatRest#getAccessToken, reqUrl:{}, response:{}", reqUrl, JSONObject.toJSONString(jsonObject));
|
||||||
String token = jsonObject.getString("access_token");
|
String token = jsonObject.getString("access_token");
|
||||||
if (StringUtils.isBlank(token)) {
|
if (StringUtils.isBlank(token)) {
|
||||||
throw new ServiceException(ErrorCodeEnum.GET_ACCESSTOKEN_ERROR);
|
throw new ServiceException(ErrorCodeEnum.GET_ACCESSTOKEN_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
redisUtilPool.setString(cacheAccessToken, token, 7000);
|
redisUtilPool.setString(cacheAccessToken, token, 7000);
|
||||||
accessToken = token;
|
accessToken = token;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -96,14 +89,17 @@ public class WechatRest {
|
|||||||
String reqUrl = String.format(GET_USERPHONENUMBER, accessToken);
|
String reqUrl = String.format(GET_USERPHONENUMBER, accessToken);
|
||||||
HashMap requestMap = new HashMap();
|
HashMap requestMap = new HashMap();
|
||||||
requestMap.put("code", code);
|
requestMap.put("code", code);
|
||||||
PhoneInfoDTO phoneInfoDTO = null;
|
String responseStr = null;
|
||||||
try {
|
try {
|
||||||
phoneInfoDTO = httpRestTemplateService.postForObject(reqUrl, requestMap, PhoneInfoDTO.class);
|
responseStr = httpRestTemplateService.postForObject(reqUrl, requestMap, String.class);
|
||||||
log.info("WechatRest#getUserPhoneNumber, reqUrl:{}, response:{}", reqUrl, JSONObject.toJSONString(phoneInfoDTO));
|
log.info("WechatRest#getUserPhoneNumber, reqUrl:{}, response:{}", reqUrl, responseStr);
|
||||||
|
if(StringUtils.isNotBlank(responseStr)){
|
||||||
|
return JSONObject.parseObject(responseStr, PhoneInfoDTO.class);
|
||||||
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("获取手机号异常", e);
|
log.error("获取手机号异常", e);
|
||||||
}
|
}
|
||||||
return phoneInfoDTO;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.cool.store.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils;
|
import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils;
|
||||||
import com.cool.store.constants.CommonConstants;
|
import com.cool.store.constants.CommonConstants;
|
||||||
import com.cool.store.dao.HyPartnerLineInfoDAO;
|
import com.cool.store.dao.HyPartnerLineInfoDAO;
|
||||||
@@ -62,6 +63,7 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PartnerUserInfoVO miniProgramLogin(MiniProgramLoginDTO param) {
|
public PartnerUserInfoVO miniProgramLogin(MiniProgramLoginDTO param) {
|
||||||
|
log.info("miniProgramLogin #param {}", JSONObject.toJSONString(param));
|
||||||
PartnerUserInfoVO userInfoVO = new PartnerUserInfoVO();
|
PartnerUserInfoVO userInfoVO = new PartnerUserInfoVO();
|
||||||
String jsCode = param.getJsCode();
|
String jsCode = param.getJsCode();
|
||||||
String lockKey = "codeSession:" + wxAppId + CommonConstants.MOSAICS + jsCode;
|
String lockKey = "codeSession:" + wxAppId + CommonConstants.MOSAICS + jsCode;
|
||||||
@@ -76,12 +78,12 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService {
|
|||||||
String unionId = codeSession.getUnionId();
|
String unionId = codeSession.getUnionId();
|
||||||
log.info("小程序登录:{}", unionId);
|
log.info("小程序登录:{}", unionId);
|
||||||
log.info("sessionKey {}", codeSession.getSessionKey());
|
log.info("sessionKey {}", codeSession.getSessionKey());
|
||||||
String decryptUser = AesUtil.decryptWechat(codeSession.getSessionKey(), param.getEncryptedData(), param.getIvStr());
|
/* String decryptUser = AesUtil.decryptWechat(codeSession.getSessionKey(), param.getEncryptedData(), param.getIvStr());
|
||||||
log.info("解密用户信息:{}", decryptUser);
|
log.info("解密用户信息:{}", decryptUser);
|
||||||
MiniProgramUserVO miniProgramUser = JSON.parseObject(decryptUser, MiniProgramUserVO.class);
|
MiniProgramUserVO miniProgramUser = JSON.parseObject(decryptUser, MiniProgramUserVO.class);
|
||||||
if (Objects.isNull(miniProgramUser)) {
|
if (Objects.isNull(miniProgramUser)) {
|
||||||
throw new ServiceException(ErrorCodeEnum.GET_WECHAT_USER_INFO_FAIL);
|
throw new ServiceException(ErrorCodeEnum.GET_WECHAT_USER_INFO_FAIL);
|
||||||
}
|
}*/
|
||||||
// 获取小程序token
|
// 获取小程序token
|
||||||
String accessToken = wechatRest.getAccessToken(wxAppId, wxAppSecret);
|
String accessToken = wechatRest.getAccessToken(wxAppId, wxAppSecret);
|
||||||
// 获取手机号码
|
// 获取手机号码
|
||||||
@@ -91,8 +93,10 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService {
|
|||||||
if(hyPartnerUserInfoDO == null){
|
if(hyPartnerUserInfoDO == null){
|
||||||
hyPartnerUserInfoDO = new HyPartnerUserInfoDO();
|
hyPartnerUserInfoDO = new HyPartnerUserInfoDO();
|
||||||
hyPartnerUserInfoDO.setMobile(phoneInfoDTO.getPhoneInfo().getPhoneNumber());
|
hyPartnerUserInfoDO.setMobile(phoneInfoDTO.getPhoneInfo().getPhoneNumber());
|
||||||
hyPartnerUserInfoDO.setUsername(miniProgramUser.getNickName());
|
// hyPartnerUserInfoDO.setUsername(phoneInfoDTO.getPhoneInfo().getPhoneNumber());
|
||||||
hyPartnerUserInfoDO.setPartnerId(UUIDUtils.get32UUID());
|
hyPartnerUserInfoDO.setPartnerId(UUIDUtils.get32UUID());
|
||||||
|
hyPartnerUserInfoDO.setAcceptAdjustType(0);
|
||||||
|
hyPartnerUserInfoDO.setIsWritePartnerKnow(0);
|
||||||
hyPartnerUserInfoDAO.insertSelective(hyPartnerUserInfoDO);
|
hyPartnerUserInfoDAO.insertSelective(hyPartnerUserInfoDO);
|
||||||
// 生成一条线索 也可在提交加盟信息时插入
|
// 生成一条线索 也可在提交加盟信息时插入
|
||||||
HyPartnerLineInfoDO hyPartnerLineInfoDO = new HyPartnerLineInfoDO();
|
HyPartnerLineInfoDO hyPartnerLineInfoDO = new HyPartnerLineInfoDO();
|
||||||
|
|||||||
Reference in New Issue
Block a user