微信公眾號開發訪問第三方網頁獲取使用者的openid
阿新 • • 發佈:2019-02-20
訪問第三方網頁獲取使用者的openid首先要滿足兩個條件
1.不能是訂閱號(訂閱號可以藉助服務號來獲取openid,直接將請求連結放在訂閱號上)
2.要經過認證
在開發者中心可以看該公眾號是否有許可權
若已獲得許可權才能繼續,點選修改
填上你的回撥域名 注意:不要帶上http://
1、在微信公眾號請求使用者網頁授權之前,開發者需要先到公眾平臺官網中的開發者中心頁配置授權回撥域名。請注意,這裡填寫的是域名(是一個字串),而不是URL,因此請勿加http://等協議頭; 2、授權回撥域名配置規範為全域名,比如需要網頁授權的域名為:www.qq.com,配置以後此域名下面的頁面http://www.qq.com/music.html、 http://www.qq.com/login.html 都可以進行OAuth2.0鑑權。但http://pay.qq.com 、 http://music.qq.com 、 http://qq.com無法進行OAuth2.0鑑權 3、如果公眾號登入授權給了第三方開發者來進行管理,則不必做任何設定,由第三方代替公眾號實現網頁授權即可
然後按照微信官方文件填寫請求地址
引數 | 是否必須 | 說明 |
---|---|---|
appid | 是 | 公眾號的唯一標識 |
redirect_uri | 是 | 授權後重定向的回撥連結地址,請使用urlencode對連結進行處理 |
response_type | 是 | 返回型別,請填寫code |
scope | 是 | 應用授權作用域,snsapi_base (不彈出授權頁面,直接跳轉,只能獲取使用者openid),snsapi_userinfo (彈出授權頁面,可通過openid拿到暱稱、性別、所在地。並且,即使在未關注的情況下,只要使用者授權,也能獲取其資訊 |
state | 否 | 重定向後會帶上state引數,開發者可以填寫a-zA-Z0-9的引數值,最多128位元組 |
#wechat_redirect | 是 | 無論直接開啟還是做頁面302重定向時候,必須帶此引數 |
這裡注意一點 回撥連結地址必須要使用urlencode對連結進行處理(JAVA使用URLEncoder.encode("","")方法)
授權後可以獲取code,然後用code通過一下地址獲取帶有openid的json
JAVA程式碼
然後解析得到的json就可以得到openid
{ "access_token":"ACCESS_TOKEN", "expires_in":7200, "refresh_token":"REFRESH_TOKEN", "openid":"OPENID", "scope":"SCOPE", "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL" }