1. 程式人生 > >微信公眾號獲取微信使用者資訊

微信公眾號獲取微信使用者資訊

注:  這裡獲取使用者資訊方式和網頁授權獲取使用者資訊方式不同。兩個access_token不同,返回的結果也不同。

我們很多場景可能需要使用者資訊

  微信公眾號獲取微信使用者資訊需要的條件:

    1.獲取使用者openId。可以在使用者繫結APP的時候用code換取,也可以在使用者關注公眾號的時候獲取,或者小程式授權時獲取。微信公眾號code換取openId

     2.獲取該微信公眾號 access_token。方法可見微信公眾號獲取access_token

     3.通過openId和access_token請求微信伺服器獲取使用者資訊。

  程式碼如下:(略去httpclientutil類,詳見微信公眾號獲取access_token

  

public class WeChatUserInfoTest {

    public static void main(String[] args) {

        String accessToken = "";//測試accessToken寫死 真實環境不應該寫死
        String openId = "";//測試openId寫死 真實環境不應該寫死
        Map<String, String> params = new HashMap<>();
        params.put("access_token", accessToken);
        params.put("openid", openId);
        params.put("lang", "zh_CN");

        String url = "https://api.weixin.qq.com/cgi-bin/user/info";
        String response = HttpClientUtil.doGet(url, params);
        JSONObject object = JSONObject.parseObject(response);
        /**
         * 移動應用、網站應用和公眾帳號關聯到同一個微信開放平臺帳號時,unionid是唯一的,
         * 如果需要打通移動應用、網站應用和公眾帳號或者以後要打通,很有必要儲存unionId
         */
        String unionId = object.getString("unionid");

        /**
         * nickName很可能是一些古怪的符號,因此實際場景需要對nickName做處理,可以使用emoji-java的工具類去處理
         */
        String nickName = object.getString("nickname");
        String avatarUrl = object.getString("headimgurl");
    }
}