2个文件已删除
2 文件已重命名
10个文件已修改
2个文件已添加
| | |
| | | import javax.servlet.http.HttpSession;
|
| | |
|
| | | import com.yeshi.fanli.entity.SystemEnum;
|
| | | import com.yeshi.fanli.util.wx.MyWXLoginUtil;
|
| | | import org.springframework.stereotype.Controller;
|
| | | import org.springframework.web.bind.annotation.PathVariable;
|
| | | import org.springframework.web.bind.annotation.RequestMapping;
|
| | |
| | | import com.yeshi.fanli.util.RedisManager;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | | import com.yeshi.fanli.util.taobao.TaoBaoUtil;
|
| | | import com.yeshi.fanli.util.wx.WXLoginUtil;
|
| | |
|
| | | import net.sf.json.JSONArray;
|
| | | import net.sf.json.JSONObject;
|
| | |
| | | long currentTimeMillis = java.lang.System.currentTimeMillis();
|
| | | String md5 = StringUtil.Md5(currentTimeMillis + "");
|
| | | session.setAttribute("wxState", md5);
|
| | | String baseUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + WXLoginUtil.WEXIN_APPID
|
| | | String baseUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + MyWXLoginUtil.WEXIN_APPID
|
| | | + "&redirect_uri=" + redirect_uri + "&response_type=code&scope=snsapi_userinfo&state=" + md5
|
| | | + "#wechat_redirect";
|
| | | response.sendRedirect(baseUrl);
|
| | |
| | | import com.yeshi.fanli.service.inter.user.*;
|
| | | import com.yeshi.fanli.util.*;
|
| | | import com.yeshi.fanli.util.account.UserUtil;
|
| | | import com.yeshi.fanli.util.wx.WXLoginUtil;
|
| | | import com.yeshi.fanli.util.wx.MyWXLoginUtil;
|
| | | import net.sf.json.JSONObject;
|
| | | import org.springframework.stereotype.Controller;
|
| | | import org.springframework.web.bind.annotation.RequestMapping;
|
| | |
| | | import org.yeshi.utils.JsonUtil;
|
| | | import org.yeshi.utils.encrypt.DESUtil;
|
| | | import org.yeshi.utils.entity.ProxyIP;
|
| | | import org.yeshi.utils.entity.wx.WeiXinUser;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | | import javax.servlet.http.HttpServletRequest;
|
| | |
| | | if (!StringUtil.isNullOrEmpty(code)) {
|
| | | WXAccountInfoDTO accountInfo = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
|
| | |
|
| | | WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code, accountInfo.getAppId(),
|
| | | WeiXinUser weiXinUser = MyWXLoginUtil.getWeiXinUserWithSavePortrait(code, accountInfo.getAppId(),
|
| | | accountInfo.getAppSecret());
|
| | | if (weiXinUser == null) {
|
| | | out.print(JsonUtil.loadFalseResult(1, "获取微信用户信息失败"));
|
| | |
| | | import org.springframework.web.bind.annotation.RequestMethod;
|
| | | import org.springframework.web.multipart.MultipartFile;
|
| | | import org.yeshi.utils.*;
|
| | | import org.yeshi.utils.entity.wx.WeiXinUser;
|
| | | import org.yeshi.utils.taobao.TbImgUtil;
|
| | | import org.yeshi.utils.tencentcloud.COSManager;
|
| | |
|
| | |
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfoModifyRecord.ModifyTypeEnum;
|
| | | import com.yeshi.fanli.entity.bus.user.WeiXinUser;
|
| | | import com.yeshi.fanli.entity.bus.user.vip.GiveVIPApplyInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
|
| | | import com.yeshi.fanli.entity.common.AdminUser;
|
| | |
| | | import com.yeshi.fanli.util.factory.OrderItemFactory;
|
| | | import com.yeshi.fanli.util.taobao.TaoBaoUtil;
|
| | | import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
|
| | | import com.yeshi.fanli.util.wx.WXLoginUtil;
|
| | | import com.yeshi.fanli.util.wx.MyWXLoginUtil;
|
| | | import com.yeshi.fanli.vo.user.MineInfoVO;
|
| | | import com.yeshi.fanli.vo.user.UserInfoExtraVO;
|
| | | import com.yeshi.fanli.vo.user.UserSettingsVO;
|
| | |
| | | // WeiXinUserParam wxParam = null;
|
| | | // 如果是微信登陆,那需要先获取到微信的unionid
|
| | | WXAccountInfoDTO account = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
|
| | | WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code, account.getAppId(),
|
| | | WeiXinUser weiXinUser = MyWXLoginUtil.getWeiXinUserWithSavePortrait(code, account.getAppId(),
|
| | | account.getAppSecret());
|
| | | if (loginType == Constant.WEIXIN && StringUtil.isNullOrEmpty(form.getWxUnionId())) {
|
| | | // wxParam = WXinUtil.getWxParam(code);
|
| | |
| | |
|
| | | WXAccountInfoDTO account = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
|
| | |
|
| | | WeiXinUser xinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code, account.getAppId(),
|
| | | WeiXinUser xinUser = MyWXLoginUtil.getWeiXinUserWithSavePortrait(code, account.getAppId(),
|
| | | account.getAppSecret());
|
| | | if (xinUser == null) {
|
| | | out.print(JsonUtil.loadFalseResult("登录失败"));
|
| | |
| | | int loginType = form.getLoginType();
|
| | | if (loginType == Constant.WEIXIN) {
|
| | | WXAccountInfoDTO account = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
|
| | | WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code, account.getAppId(),
|
| | | WeiXinUser weiXinUser = MyWXLoginUtil.getWeiXinUserWithSavePortrait(code, account.getAppId(),
|
| | | account.getAppSecret());
|
| | |
|
| | | if (weiXinUser == null) {
|
| | |
| | | import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInviteValidNum;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInviteValidRecord;
|
| | | import com.yeshi.fanli.entity.bus.user.WeiXinUser;
|
| | | import com.yeshi.fanli.entity.bus.user.invite.TeamDailyRecord;
|
| | | import com.yeshi.fanli.entity.bus.user.vip.TeamUserLevelStatistic;
|
| | | import com.yeshi.fanli.entity.bus.user.vip.TearcherInfo;
|
| | |
| | | import com.yeshi.fanli.util.VersionUtil;
|
| | | import com.yeshi.fanli.util.annotation.RequestSerializableByKey;
|
| | | import com.yeshi.fanli.util.user.UserLevelUtil;
|
| | | import com.yeshi.fanli.util.wx.WXLoginUtil;
|
| | | import com.yeshi.fanli.vo.order.OrderRankingVO;
|
| | |
|
| | | import net.sf.json.JSONArray;
|
| | | import net.sf.json.JSONObject;
|
| | | import org.yeshi.utils.entity.wx.WeiXinUser;
|
| | | import org.yeshi.utils.wx.WXAppLoginUtil;
|
| | |
|
| | | @Controller
|
| | | @RequestMapping("api/v2/invite")
|
| | |
| | | try {
|
| | | WXAccountInfoDTO wxAccount = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
|
| | | // 获取微信信息
|
| | | WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUser(code, wxAccount.getAppId(), wxAccount.getAppSecret());
|
| | | WeiXinUser weiXinUser = WXAppLoginUtil.getWeiXinUser(code, wxAccount.getAppId(), wxAccount.getAppSecret());
|
| | | if (weiXinUser == null)
|
| | | throw new UserInfoExtraException(1, "微信授权失败");
|
| | |
|
| | |
| | | import org.yeshi.utils.JsonUtil;
|
| | | import org.yeshi.utils.entity.wx.WXMPSessionInfo;
|
| | | import org.yeshi.utils.entity.wx.WXMPUserInfo;
|
| | | import org.yeshi.utils.entity.wx.WeiXinUser;
|
| | | import org.yeshi.utils.wx.WXXCXUtil;
|
| | |
|
| | | import com.google.gson.Gson;
|
| | |
| | | import com.yeshi.fanli.entity.bus.user.ThreeSale;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
|
| | | import com.yeshi.fanli.entity.bus.user.WeiXinUser;
|
| | | import com.yeshi.fanli.entity.bus.user.vip.UserVIPInfo;
|
| | | import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum;
|
| | | import com.yeshi.fanli.entity.shop.BanLiShopOrder;
|
| | |
| | | import org.yeshi.utils.JsonUtil;
|
| | | import org.yeshi.utils.entity.FileUploadResult;
|
| | | import org.yeshi.utils.entity.ProxyIP;
|
| | | import org.yeshi.utils.entity.wx.WeiXinUser;
|
| | | import org.yeshi.utils.tencentcloud.COSManager;
|
| | |
|
| | | import com.google.gson.Gson;
|
| | |
| | | import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfoModifyRecord.ModifyTypeEnum;
|
| | | import com.yeshi.fanli.entity.bus.user.WeiXinUser;
|
| | | import com.yeshi.fanli.exception.user.ForbiddenUserIdentifyCodeException;
|
| | | import com.yeshi.fanli.exception.user.UserAccountException;
|
| | | import com.yeshi.fanli.log.LogHelper;
|
| | |
| | | import com.yeshi.fanli.service.inter.user.msg.UserAccountMsgNotificationService;
|
| | | import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
|
| | | import com.yeshi.fanli.util.factory.msg.MsgAccountDetailFactory;
|
| | | import com.yeshi.fanli.util.wx.WXLoginUtil;
|
| | | import com.yeshi.fanli.util.wx.MyWXLoginUtil;
|
| | |
|
| | | import net.sf.json.JSONObject;
|
| | | import org.yeshi.utils.wx.WXAppLoginUtil;
|
| | | import redis.clients.jedis.Jedis;
|
| | | import redis.clients.jedis.JedisPool;
|
| | | import redis.clients.jedis.Transaction;
|
| | |
|
| | | @Service
|
| | |
| | | case 2:// 微信
|
| | | // 通过Code换取信息
|
| | | WXAccountInfoDTO wxAccount = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
|
| | | weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code, wxAccount.getAppId(),
|
| | | weiXinUser = MyWXLoginUtil.getWeiXinUserWithSavePortrait(code, wxAccount.getAppId(),
|
| | | wxAccount.getAppSecret());
|
| | | if (weiXinUser == null)
|
| | | throw new UserAccountException(1001, "无法获取到微信个人信息");
|
| | |
| | | case 2:// 微信
|
| | | // 通过Code换取信息
|
| | | WXAccountInfoDTO wxAccount = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
|
| | | weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code, wxAccount.getAppId(),
|
| | | weiXinUser = MyWXLoginUtil.getWeiXinUserWithSavePortrait(code, wxAccount.getAppId(),
|
| | | wxAccount.getAppSecret());
|
| | | if (weiXinUser == null)
|
| | | throw new UserAccountException(1001, "无法获取到微信个人信息");
|
| | |
| | | if (user == null)
|
| | | throw new UserAccountException(4, "用户不存在");
|
| | | WXAccountInfoDTO wxAccount = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
|
| | | WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code, wxAccount.getAppId(),
|
| | | WeiXinUser weiXinUser = MyWXLoginUtil.getWeiXinUserWithSavePortrait(code, wxAccount.getAppId(),
|
| | | wxAccount.getAppSecret());
|
| | | if (weiXinUser == null)
|
| | | throw new UserAccountException(10, "获取微信用户信息失败");
|
| | |
| | | LogHelper.lgoinInfo(logInfo.toString());
|
| | |
|
| | | // 通过Code换取信息
|
| | | WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUser(code, businessSystem.getWxAppId(), businessSystem.getWxAppSecret());
|
| | | WeiXinUser weiXinUser = WXAppLoginUtil.getWeiXinUser(code, businessSystem.getWxAppId(), businessSystem.getWxAppSecret());
|
| | | if (weiXinUser == null) {
|
| | | throw new UserAccountException(1, "微信帐号授权失败");
|
| | | }
|
| | |
| | | LogHelper.lgoinInfo(logInfo.toString());
|
| | |
|
| | | // 通过Code换取信息
|
| | | WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUser(wxCode, businessSystem.getWxAppId(), businessSystem.getWxAppSecret());
|
| | | WeiXinUser weiXinUser = WXAppLoginUtil.getWeiXinUser(wxCode, businessSystem.getWxAppId(), businessSystem.getWxAppSecret());
|
| | | if (weiXinUser == null) {
|
| | | throw new UserAccountException(1, "微信帐号授权失败");
|
| | | }
|
| | |
| | | @Override
|
| | | public void bindWeiXin(AcceptData acceptData, Long uid, String code) throws UserAccountException {
|
| | | WXAccountInfoDTO wxAccount = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
|
| | | WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUser(code, wxAccount.getAppId(), wxAccount.getAppSecret());
|
| | | WeiXinUser weiXinUser = WXAppLoginUtil.getWeiXinUser(code, wxAccount.getAppId(), wxAccount.getAppSecret());
|
| | | if (weiXinUser == null) {
|
| | | throw new UserAccountException(2, "微信帐号授权失败");
|
| | | }
|
| | |
| | |
|
| | | // 通过Code换取信息
|
| | | WXAccountInfoDTO wxAccount = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
|
| | | WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUser(code, wxAccount.getAppId(), wxAccount.getAppSecret());
|
| | | WeiXinUser weiXinUser = WXAppLoginUtil.getWeiXinUser(code, wxAccount.getAppId(), wxAccount.getAppSecret());
|
| | | if (weiXinUser == null) {
|
| | | throw new UserAccountException(1, "微信帐号授权失败");
|
| | | }
|
| | |
| | | import org.yeshi.utils.FileUtil;
|
| | | import org.yeshi.utils.HttpUtil;
|
| | | import org.yeshi.utils.entity.FileUploadResult;
|
| | | import org.yeshi.utils.entity.wx.WeiXinUser;
|
| | | import org.yeshi.utils.tencentcloud.COSManager;
|
| | |
|
| | | import com.aliyun.openservices.ons.api.Message;
|
| | | import com.aliyun.openservices.ons.api.Producer;
|
| | | import com.yeshi.fanli.dao.mybatis.user.UserInfoExtraMapper;
|
| | | import com.yeshi.fanli.dao.mybatis.user.UserRankRecordMapper;
|
| | | import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum;
|
| | |
| | | import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
|
| | | import com.yeshi.fanli.entity.bus.user.UserRank;
|
| | | import com.yeshi.fanli.entity.bus.user.UserRankRecord;
|
| | | import com.yeshi.fanli.entity.bus.user.WeiXinUser;
|
| | | import com.yeshi.fanli.entity.bus.user.notify.UserActivedRecord;
|
| | | import com.yeshi.fanli.entity.system.ConfigKeyEnum;
|
| | | import com.yeshi.fanli.exception.user.ThreeSaleException;
|
| | |
| | | import com.yeshi.fanli.util.account.UserUtil;
|
| | | import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
|
| | | import com.yeshi.fanli.util.rocketmq.MQTopicName;
|
| | | import com.yeshi.fanli.util.wx.WXLoginUtil;
|
| | | import com.yeshi.fanli.vo.user.UserInfoExtraVO;
|
| | |
|
| | | import net.coobird.thumbnailator.Thumbnails;
|
| | | import org.yeshi.utils.wx.WXAppLoginUtil;
|
| | |
|
| | | @Service
|
| | | public class UserInfoExtraServiceImpl implements UserInfoExtraService {
|
| | |
| | | throw new UserInfoExtraException(1, "已经激活, 无需再次激活");
|
| | |
|
| | | // 获取微信信息
|
| | | WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUser(code, wxAccount.getAppId(), wxAccount.getAppSecret());
|
| | | WeiXinUser weiXinUser = WXAppLoginUtil.getWeiXinUser(code, wxAccount.getAppId(), wxAccount.getAppSecret());
|
| | | if (weiXinUser == null) {
|
| | | throw new UserInfoExtraException(1, "微信授权失败");
|
| | | }
|
| | |
| | |
|
| | | import javax.annotation.Resource;
|
| | |
|
| | | import com.yeshi.fanli.util.wx.MyWXLoginUtil;
|
| | | import org.springframework.scheduling.annotation.Async;
|
| | | import org.springframework.stereotype.Service;
|
| | |
|
| | | import com.yeshi.fanli.dao.mybatis.user.UserInviteRecordMapper;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInviteRecord;
|
| | | import com.yeshi.fanli.entity.bus.user.WeiXinUser;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInviteRecordService;
|
| | | import com.yeshi.fanli.util.wx.WXLoginUtil;
|
| | | import org.yeshi.utils.entity.wx.WeiXinUser;
|
| | |
|
| | |
|
| | | @Service
|
| | |
| | | }
|
| | |
|
| | | // 获取微信信息
|
| | | WeiXinUser weiXinUser = WXLoginUtil.getWeiXinWYUser(code);
|
| | | WeiXinUser weiXinUser = MyWXLoginUtil.getWeiXinWYUser(code);
|
| | | if (weiXinUser == null) {
|
| | | return;
|
| | | }
|
| | |
| | | import com.yeshi.fanli.entity.accept.AcceptData;
|
| | | import com.yeshi.fanli.entity.bus.user.LoginResult;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.WeiXinUser;
|
| | | import com.yeshi.fanli.entity.system.BusinessSystem;
|
| | | import com.yeshi.fanli.exception.user.UserAccountException;
|
| | | import com.yeshi.fanli.vo.taobao.TaoBaoUser;
|
| | | import org.yeshi.utils.entity.ProxyIP;
|
| | | import org.yeshi.utils.entity.wx.WeiXinUser;
|
| | |
|
| | | import javax.servlet.http.HttpServletRequest;
|
| | |
|
| | |
| | | package com.yeshi.fanli.service.inter.user;
|
| | |
|
| | | import java.util.Date;
|
| | |
|
| | | import org.springframework.web.multipart.MultipartFile;
|
| | |
|
| | | import com.yeshi.fanli.dto.wx.WXAccountInfoDTO;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
|
| | | import com.yeshi.fanli.entity.bus.user.UserRank;
|
| | | import com.yeshi.fanli.entity.bus.user.WeiXinUser;
|
| | | import com.yeshi.fanli.exception.user.UserInfoExtraException;
|
| | | import com.yeshi.fanli.vo.user.UserInfoExtraVO;
|
| | | import org.springframework.web.multipart.MultipartFile;
|
| | | import org.yeshi.utils.entity.wx.WeiXinUser;
|
| | |
|
| | | import java.util.Date;
|
| | |
|
| | | public interface UserInfoExtraService {
|
| | |
|
New file |
| | |
| | | package com.yeshi.fanli.util.wx; |
| | | |
| | | import com.yeshi.fanli.log.LogHelper; |
| | | import com.yeshi.fanli.util.Constant; |
| | | import com.yeshi.fanli.util.FilePathEnum; |
| | | import com.yeshi.fanli.util.StringUtil; |
| | | import org.json.JSONException; |
| | | import org.json.JSONObject; |
| | | import org.yeshi.utils.HttpUtil; |
| | | import org.yeshi.utils.entity.FileUploadResult; |
| | | import org.yeshi.utils.entity.wx.WeiXinUser; |
| | | import org.yeshi.utils.entity.wx.WeiXinUserParam; |
| | | import org.yeshi.utils.tencentcloud.COSManager; |
| | | import org.yeshi.utils.wx.WXAppLoginUtil; |
| | | |
| | | import java.io.InputStream; |
| | | |
| | | public class MyWXLoginUtil { |
| | | |
| | | public static String WEXIN_APPID = "wx43617e2ed82c5b28"; |
| | | public static String WEXIN_SECRET = "f8a65908fb4681bdd181de70f6ab9a3b"; |
| | | |
| | | static { |
| | | WEXIN_APPID = Constant.systemCommonConfig.getWxGZAppId(); |
| | | WEXIN_SECRET = Constant.systemCommonConfig.getWxGZAppSecret(); |
| | | } |
| | | |
| | | |
| | | public static WeiXinUserParam getWxWYParam(String code) { |
| | | |
| | | WeiXinUserParam weiXinUserParam = WXAppLoginUtil.getWxParam(code, WEXIN_APPID, WEXIN_SECRET); |
| | | return weiXinUserParam; |
| | | } |
| | | |
| | | /** |
| | | * 通过code获取用户信息(伴随头像缓存) |
| | | * |
| | | * @param code |
| | | * @return |
| | | */ |
| | | public static WeiXinUser getWeiXinUserWithSavePortrait(String code, String appId, String appSecret) { |
| | | WeiXinUser user = WXAppLoginUtil.getWeiXinUser(code, appId, appSecret); |
| | | if (user != null) { |
| | | if (!StringUtil.isNullOrEmpty(user.getHeadimgurl())) { |
| | | |
| | | InputStream asInputStream = HttpUtil.getAsInputStream(user.getHeadimgurl()); |
| | | if (asInputStream == null) { |
| | | LogHelper.test("微信头像下载失败: " + user.getUnionid() + " " + user.getHeadimgurl()); |
| | | return user; |
| | | } |
| | | |
| | | FileUploadResult result = COSManager.getInstance().uploadFile(asInputStream, |
| | | String.format(FilePathEnum.userWXPortrait.getPath() + "%s_%s.jpg", user.getUnionid(), System.currentTimeMillis() + "")); |
| | | if (result != null && !StringUtil.isNullOrEmpty(result.getUrl())) { |
| | | user.setHeadimgurl(result.getUrl()); |
| | | // COS删除其余头像 |
| | | // String prefix = String.format("/portrait/wx/%s_", |
| | | // user.getUnionid()); |
| | | // ObjectListing list = |
| | | // COSManager.getInstance().getObjectList(prefix, null, 30); |
| | | // if (list != null && list.getObjectSummaries() != null) |
| | | // for (COSObjectSummary object : list.getObjectSummaries()) |
| | | // { |
| | | // if (!result.getUrl().contains(object.getKey())) { |
| | | // COSManager.getInstance().deleteFile(object.getKey()); |
| | | // } |
| | | // } |
| | | } else { |
| | | LogHelper.test("微信头像上传失败: " + user.getUnionid() + " " + user.getHeadimgurl()); |
| | | } |
| | | } |
| | | } |
| | | return user; |
| | | } |
| | | |
| | | public static WeiXinUser getWeiXinWYUser(String code) { |
| | | WeiXinUserParam param = getWxWYParam(code); |
| | | if (param == null) { |
| | | return null; |
| | | } |
| | | return WXAppLoginUtil.getWeiXinUser(param); |
| | | } |
| | | |
| | | private static WeiXinUserParam getWeiXinUserParam(String result) { |
| | | LogHelper.test(result); |
| | | WeiXinUserParam weiXinUserParam = new WeiXinUserParam(); |
| | | JSONObject jsonObject = null; |
| | | try { |
| | | jsonObject = new JSONObject(result); |
| | | } catch (JSONException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | String openId = jsonObject.optString("openid"); |
| | | if ("".equals(openId)) { |
| | | return null; |
| | | } |
| | | String accessToken = jsonObject.optString("access_token"); |
| | | String refreshToken = jsonObject.optString("refresh_token"); |
| | | String scope = jsonObject.optString("scope"); |
| | | int expires = jsonObject.optInt("expires_in"); |
| | | String unionId = jsonObject.optString("unionid"); |
| | | |
| | | weiXinUserParam.setRefreshToken(refreshToken); |
| | | weiXinUserParam.setOpenId(openId); |
| | | weiXinUserParam.setExpires(expires); |
| | | weiXinUserParam.setAccessToken(accessToken); |
| | | weiXinUserParam.setScope(scope); |
| | | weiXinUserParam.setUnionId(unionId); |
| | | |
| | | return weiXinUserParam; |
| | | } |
| | | |
| | | /** |
| | | * 初始化公众号自定义菜单 |
| | | */ |
| | | public static void initGZMenu() { |
| | | JSONObject root = new JSONObject(); |
| | | |
| | | // WXUtil.createMenu(accessToken, root); |
| | | } |
| | | |
| | | } |
File was renamed from fanli/src/main/java/com/yeshi/fanli/entity/bus/user/WeiXinUser.java |
| | |
| | | package com.yeshi.fanli.entity.bus.user;
|
| | | package org.yeshi.utils.entity.wx; |
| | |
|
| | | //微信用户解析
|
| | | public class WeiXinUser {
|
File was renamed from fanli/src/main/java/com/yeshi/fanli/entity/bus/user/WeiXinUserParam.java |
| | |
| | | package com.yeshi.fanli.entity.bus.user;
|
| | | package org.yeshi.utils.entity.wx; |
| | |
|
| | | public class WeiXinUserParam {
|
| | |
|
New file |
| | |
| | | package org.yeshi.utils.wx; |
| | | |
| | | import org.json.JSONException; |
| | | import org.json.JSONObject; |
| | | import org.yeshi.utils.HttpUtil; |
| | | import org.yeshi.utils.StringUtil; |
| | | import org.yeshi.utils.entity.wx.WeiXinUser; |
| | | import org.yeshi.utils.entity.wx.WeiXinUserParam; |
| | | |
| | | public class WXAppLoginUtil { |
| | | // 通过code获取access_token openId |
| | | private static String weiXinUrl1 = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code"; |
| | | |
| | | public static String weiXinUrl2 = "https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s&lang=zh_CN"; |
| | | |
| | | public static WeiXinUserParam getWxParam(String code, String appId, String appSecret) { |
| | | String wxUrl = String.format(weiXinUrl1, appId, appSecret, code); |
| | | String result = HttpUtil.get(wxUrl); |
| | | WeiXinUserParam weiXinUserParam = parseWeiXinUserParam(result); |
| | | return weiXinUserParam; |
| | | } |
| | | |
| | | public static WeiXinUser getWeiXinUser(WeiXinUserParam param) { |
| | | String result = HttpUtil.getAsString(String.format(weiXinUrl2, param.getAccessToken(), param.getOpenId()), |
| | | "ISO-8859-1", "UTF-8"); |
| | | JSONObject jsonObject = null; |
| | | try { |
| | | jsonObject = new JSONObject(result); |
| | | } catch (JSONException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | String nickname = jsonObject.optString("nickname"); |
| | | String province = jsonObject.optString("province"); |
| | | String city = jsonObject.optString("city"); |
| | | String country = jsonObject.optString("country"); |
| | | String headimgurl = jsonObject.optString("headimgurl"); |
| | | String unionid = jsonObject.optString("unionid"); |
| | | int sex = jsonObject.optInt("sex"); |
| | | WeiXinUser weiXinUser = new WeiXinUser(); |
| | | weiXinUser.setCity(city); |
| | | weiXinUser.setCountry(country); |
| | | weiXinUser.setHeadimgurl(headimgurl); |
| | | weiXinUser.setNickname(nickname); |
| | | weiXinUser.setOpenid(param.getOpenId()); |
| | | weiXinUser.setSex(sex); |
| | | weiXinUser.setUnionid(unionid); |
| | | weiXinUser.setProvince(province); |
| | | return weiXinUser; |
| | | } |
| | | |
| | | public static WeiXinUser getWeiXinUser(String code, String appId, String appSecret) { |
| | | WeiXinUserParam param = getWxParam(code, appId, appSecret); |
| | | if (param == null) { |
| | | return null; |
| | | } |
| | | WeiXinUser weiXinUser = getWeiXinUser(param); |
| | | if (weiXinUser != null && StringUtil.isNullOrEmpty(weiXinUser.getUnionid()) |
| | | && !StringUtil.isNullOrEmpty(param.getUnionId())) { |
| | | weiXinUser.setUnionid(param.getUnionId()); |
| | | } |
| | | return weiXinUser; |
| | | } |
| | | |
| | | |
| | | private static WeiXinUserParam parseWeiXinUserParam(String result) { |
| | | WeiXinUserParam weiXinUserParam = new WeiXinUserParam(); |
| | | JSONObject jsonObject = null; |
| | | try { |
| | | jsonObject = new JSONObject(result); |
| | | } catch (JSONException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | String openId = jsonObject.optString("openid"); |
| | | if ("".equals(openId)) { |
| | | return null; |
| | | } |
| | | String accessToken = jsonObject.optString("access_token"); |
| | | String refreshToken = jsonObject.optString("refresh_token"); |
| | | String scope = jsonObject.optString("scope"); |
| | | int expires = jsonObject.optInt("expires_in"); |
| | | String unionId = jsonObject.optString("unionid"); |
| | | |
| | | weiXinUserParam.setRefreshToken(refreshToken); |
| | | weiXinUserParam.setOpenId(openId); |
| | | weiXinUserParam.setExpires(expires); |
| | | weiXinUserParam.setAccessToken(accessToken); |
| | | weiXinUserParam.setScope(scope); |
| | | weiXinUserParam.setUnionId(unionId); |
| | | |
| | | return weiXinUserParam; |
| | | } |
| | | |
| | | /** |
| | | * 初始化公众号自定义菜单 |
| | | */ |
| | | public static void initGZMenu() { |
| | | JSONObject root = new JSONObject(); |
| | | |
| | | // WXUtil.createMenu(accessToken, root); |
| | | } |
| | | |
| | | } |