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