package com.epmet.service.impl; import com.epmet.commons.tools.exception.RenException; import com.epmet.dto.form.PaWxCodeFormDTO; import com.epmet.service.PublicUserLoginService; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken; import me.chanjar.weixin.mp.bean.result.WxMpUser; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.Map; /** * 描述一下 * * @author yinzuomei@elink-cn.com * @date 2020/7/8 18:31 */ @Service public class PublicUserLoginServiceImpl implements PublicUserLoginService { private static final Logger logger = LoggerFactory.getLogger(PublicUserLoginServiceImpl.class); @Autowired private WxMpService wxMpService; @Override public Map loginByWxCode(PaWxCodeFormDTO formDTO) { WxMpUser wxMpUser=this.getWxMpUser(formDTO.getWxCode()); Map map =new HashMap(); map.put("微信用户信息",wxMpUser); return map; } private WxMpUser getWxMpUser(String wxCode) { WxMpUser wxMpUser = null; try { WxMpOAuth2AccessToken wxMpOAuth2AccessToken = wxMpService.oauth2getAccessToken(wxCode); wxMpUser = wxMpService.oauth2getUserInfo(wxMpOAuth2AccessToken, null); } catch (WxErrorException e) { logger.error("->[getWxMpUser]::error[{}]", "解析微信用户信息失败"); } if (null == wxMpUser || StringUtils.isBlank(wxMpUser.getUnionId())) { throw new RenException("解析微信用户信息失败"); } return wxMpUser; } }