微信開發--網頁授權獲取使用者基本資訊
阿新 • • 發佈:2019-01-28
功能:主要用於在使用者通過手機端微信訪問第三方H5頁面時獲取使用者的身份資訊(openId,暱稱,頭像,所在地等。。)可用來實現微信登入、微信賬號繫結、使用者身份鑑權等功能。
開發前的準備:
1、需要有一個公眾號,拿到AppID和AppSecret;2、進入公眾號開發者中心頁配置授權回撥域名。具體位置:介面許可權-網頁服務-網頁賬號-網頁授權獲取使用者基本資訊-修改
注意,這裡僅需填寫全域名(如www.qq.com、www.baidu.com),勿加 http:// 等協議頭及具體的地址欄位;
本文以 lovebread.tunnel.qydev.com 域名為例:
3、如果嫌手機上測試麻煩,可以使用微信官方提供的web開發者工具直接在瀏覽器中進行除錯。
前提是需要在微信公眾號中繫結開發者賬號:登入公眾號-開發者工具-進入web開發者工具-繫結web開發者微信賬號
使用說明及下載地址:https://mp.weixin.qq.com/wiki?action=doc&id=mp1455784140&t=0.7272727088156665&token=&lang=zh_CN#6
網頁授權獲取使用者基本資訊
@Test
public void testAuthenticationUrl(){
String url = MpOAuth2s.defaultOAuth2s().authenticationUrl("http://wxtest.gzriver.com/oS-I8EwVL9X.view", "snsapi_userinfo");
System.out.println(url);
Assert.assertNotNull(url);
}
通過轉發形式微信驗證頁面
@RequestMapping(value = { "/xxx" }) public ModelAndView testOrder(HttpSession httpSession) { ModelAndView modelView = new ModelAndView(); String url = MpOAuth2s.defaultOAuth2s().authenticationUrl(StringUtils.generateWechatAuthUrl("xxx"), "xxx"); // 轉到微信驗證頁面 return new ModelAndView("redirect:" + url); }
通過url訪問得到code
{
state = ,
code = 011ARkch0yXcSC1zgUah07uhch0ARkcp
}
-
AccessToken accessToken = MpOAuth2s.defaultOAuth2s().getAccessToken(code);
-
accessToken = MpOAuth2s.defaultOAuth2s().refreshToken(accessToken.getRefreshToken());
-
OpenUser openUser = MpOAuth2s.defaultOAuth2s().userInfo(accessToken.getAccessToken(), accessToken.getOpenId()); logger.debug("openUser........................." + openUser.toString());