From 65aaf1c05bd06cefa82ebc40cc3e01cf4ac233c0 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期六, 27 七月 2024 13:52:08 +0800 Subject: [PATCH] 代理新功能完善 --- src/main/java/com/taoke/autopay/utils/WxApiUtil.java | 34 ++++++++++++++++++++++++++++++++++ 1 files changed, 34 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/taoke/autopay/utils/WxApiUtil.java b/src/main/java/com/taoke/autopay/utils/WxApiUtil.java index ee4d9a9..ea524a5 100644 --- a/src/main/java/com/taoke/autopay/utils/WxApiUtil.java +++ b/src/main/java/com/taoke/autopay/utils/WxApiUtil.java @@ -2,9 +2,14 @@ import com.google.gson.Gson; import com.taoke.autopay.dto.WXAppInfoDto; +import lombok.Data; import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.yeshi.utils.HttpUtil; import org.yeshi.utils.entity.wx.WXAPPInfo; + +import java.net.URLEncoder; /** * @author hxh @@ -13,6 +18,8 @@ * @date 2024/6/28 17:27 */ public class WxApiUtil { + + private static Logger wxLogger = LoggerFactory.getLogger("wxLogger"); public class WXAccessTokenInfo { private String access_token; @@ -80,11 +87,25 @@ } } + @Data + public static class WXUserInfo{ + private String openid;// 鐢ㄦ埛鐨勫敮涓�鏍囪瘑 + private String nickname ;// 鐢ㄦ埛鏄电О + private Integer sex;// 鐢ㄦ埛鐨勬�у埆锛屽�间负1鏃舵槸鐢锋�э紝鍊间负2鏃舵槸濂虫�э紝鍊间负0鏃舵槸鏈煡 + private String province;// 鐢ㄦ埛涓汉璧勬枡濉啓鐨勭渷浠� + private String city ;// 鏅�氱敤鎴蜂釜浜鸿祫鏂欏~鍐欑殑鍩庡競 + private String country;// 鍥藉锛屽涓浗涓篊N + private String headimgurl;// 鐢ㄦ埛澶村儚锛屾渶鍚庝竴涓暟鍊间唬琛ㄦ鏂瑰舰澶村儚澶у皬锛堟湁0銆�46銆�64銆�96銆�132鏁板�煎彲閫夛紝0浠h〃640*640姝f柟褰㈠ご鍍忥級锛岀敤鎴锋病鏈夊ご鍍忔椂璇ラ」涓虹┖銆傝嫢鐢ㄦ埛鏇存崲澶村儚锛屽師鏈夊ご鍍廢RL灏嗗け鏁堛�� + private String unionid;// 鍙湁鍦ㄧ敤鎴峰皢鍏紬鍙风粦瀹氬埌寰俊寮�鏀惧钩鍙拌处鍙峰悗锛屾墠浼氬嚭鐜拌瀛楁銆� + + } + public static WXAccessTokenInfo getAcessTokenInfo(String code, WXAppInfoDto app) throws Exception { String tokenUrl = String.format("https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code", app.getAppId(), app.getAppSecret(), code); String result = HttpUtil.get(tokenUrl); System.out.println(result); + wxLogger.info(result); JSONObject root = JSONObject.fromObject(result); if (root.optInt("errcode", 0) != 0) { throw new Exception(root.optString("errmsg")); @@ -92,6 +113,19 @@ return JsonUtil.getSimpleGson().fromJson(result, WXAccessTokenInfo.class); } + public static WXUserInfo getUserInfo(String accessToken,String openid) throws Exception { + String tokenUrl = String.format("https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s&lang=zh_CN", URLEncoder.encode(accessToken,"UTF-8"),openid); + String result = HttpUtil.get(tokenUrl); + result = new String(result.getBytes("ISO-8859-1"),"UTF-8"); + System.out.println(result); + wxLogger.info(result); + JSONObject root = JSONObject.fromObject(result); + if (root.optInt("errcode", 0) != 0) { + throw new Exception(root.optString("errmsg")); + } + return JsonUtil.getSimpleGson().fromJson(result, WXUserInfo.class); + } + public static void main(String[] args) throws Exception { getAcessTokenInfo("061KT5ll2vgWHd4VyIll2UVQZV0KT5lP", new WXAppInfoDto("wx6217429129959b05", "14ae1808a271111954c509d8cb06df92")); -- Gitblit v1.8.0