1. 程式人生 > >微信公眾號開發訪問第三方網頁獲取使用者的openid

微信公眾號開發訪問第三方網頁獲取使用者的openid

訪問第三方網頁獲取使用者的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.comhttp://music.qq.comhttp://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"
}