微信公眾號獲取使用者資訊-網頁授權
阿新 • • 發佈:2019-02-09
網頁授權資訊獲取分為兩種
,基本資訊snsapi_base只能獲取openid,詳細資訊snsapi_userinfo需要使用者主動授權,可以獲取使用者暱稱,地址等資訊; 準備工作:(微信公眾號配置)
分別配置上專案的域名,微信會根據配置的域名回撥訪問;注意不能加埠等,所以專案必須可以無埠訪問; 介面訪問分為三步: 1.獲取授權code
注:程式碼中用到一些工具類如http,json可以用自己的 程式碼在github上:https://github.com/zgdcool/wechat 後期會持續更新,有興趣的可以一起完善!
SNSAPI_BASE("snsapi_base", "基本資訊"), SNSAPI_USERINFO("snsapi_userinfo", "詳細資訊");
,基本資訊snsapi_base只能獲取openid,詳細資訊snsapi_userinfo需要使用者主動授權,可以獲取使用者暱稱,地址等資訊; 準備工作:(微信公眾號配置)
分別配置上專案的域名,微信會根據配置的域名回撥訪問;注意不能加埠等,所以專案必須可以無埠訪問; 介面訪問分為三步: 1.獲取授權code
public static String getWeChatCode(String backUri,2.用code換取access_token,同時可以獲取到openidGdWechatScopeTypeEnum scope) throws UnsupportedEncodingException { backUri = URLEncoder.encode(backUri, "UTF-8"); String url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + GdWechatConfig.appid + "&redirect_uri=" + backUri + "&response_type=code&scope=" + scope.getTypeCode() + "&state=123#wechat_redirect"; return url; }
public static Map<Object, Object> getOpenIdAndTokenByCodeWechat(String code) { //微信 String URL = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + GdWechatConfig.appid + "&secret=" + GdWechatConfig.secret + "&code=" + code + "&grant_type=authorization_code"3.用access_token和openid獲取到使用者基本資訊; if (StringUtils.isNotEmpty(code)) { String resultStr = GDHttpClient.get(URL); if (StringUtils.isNotEmpty(resultStr)) { Map<Object, Object> map = GdJsonMapper.readStringValueToMap(resultStr); return map; } } return null; }
public static Map<Object, Object> getUserInfoWechat(String openId, String token) throws Exception { String userinfourl = "https://api.weixin.qq.com/sns/userinfo?access_token=" + token + "&openid=" + openId + "&lang=zh_CN"; String resultStr = GDHttpClient.get(userinfourl); if (StringUtils.isNotEmpty(resultStr)) { return (Map<Object, Object>) GdJsonMapper.readStringValueToMap(resultStr); } return null; }
注:程式碼中用到一些工具類如http,json可以用自己的 程式碼在github上:https://github.com/zgdcool/wechat 後期會持續更新,有興趣的可以一起完善!