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);
|
}
|
|
}
|