登陸地址:https://mp.weixin.qq.com/,註冊-選擇類型,html
對類型不清楚的點擊連接,帳號類型區別http://kf.qq.com/faq/170815aUZjeQ170815mU7bI7.htmljava
公衆號申請流程:http://kf.qq.com/product/weixinmp.html#hid=99web
首先要建立的是一個web項目(springmvc),環境搭好併成功啓動。spring
公衆號帳號登陸後,會看到一個首頁界面,請熟悉界面左側菜單:json
在「功能」菜單下面,不須要本身開發,能夠實現的基本功能,編輯完成能夠查看公衆號,實現簡單的公衆號。api
在「設置」菜單下,公衆號設置能夠查看「設置詳情」,點擊「功能設置」,有一個「網頁受權域名」這個設置的是你web項目發佈後的域名。微信
微信認證流程:http://kf.qq.com/product/weixinmp.html#hid=97mvc
「開發」菜單下的「基本配置」能夠看到「公衆號開發信息」須要先設置secret和ip白名單,這三個信息在「開發者工具」下的「開發者文檔」獲取access_token時會用到。app
請熟悉「開發者文檔」!https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432工具
3.1. 獲取access_token
在建立好的web項目中,新建WxController.java,根據文檔
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183
經過OkHttp作get請求,請求
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
公衆號帳號登陸—基本配置—公衆號開發信息,能夠獲取到appid和secret兩個參數;
若是與文檔正確返回結果一致,即獲取成功。
3.2. 自定義菜單建立接口
仔細閱讀文檔 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141013
Token獲取後,根據自定義菜單請求格式建立菜單,將token以及菜單做爲參數經過okhttp的post請求建立菜單,若與文檔正確結果一致則成功,此時打開微信公衆號,能夠看到手機上出現菜單(注:只有修改建立菜單的代碼才須要對建立菜單作post請求);
3.3. 微信網頁開發-微信網頁受權
仔細閱讀文檔 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842
瞭解Scope的snsapi_base和snsapi_userinfo區別;
瞭解網頁受權access_token和普通access_token的區別;
第一步獲取code:
訪問連接URL:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
用戶贊成後,跳轉redirect_uri/?code=CODE&state=STATE;
其中redirect_uri:
public static String AppDomain = "www.baodu.com";(網頁受權域名)
String back_url = "http://" + AppDomain + "/wx/back/openid";
String redirect_uri = URLEncoder.encode(back_url, "utf-8");
(受權後重定向的回調連接地址,請使用urlEncode對連接進行處理)
因此,只須要配好URL的參數,而後 return "redirect:" + url; 就會自動跳轉到redirect_uri/?code=code&state=state;(注:連接裏的code就是要做爲,獲取access_token的參數的)
將code做爲參數請求下面連接:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
若請求成功,就獲取網頁access_token和"openid":"OPENID";
若是scope爲snsapi_base流程到這裏就結束了;
若是想拿用戶信息,須要將scope改成 snsapi_userinfo,才能夠接着經過okhttp的get請求訪問
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN ;
若是正確最終返回json格式的用戶信息,你能夠將json解析傳給對象,對用戶信息進行入庫操做等。