- 申請公眾號流程
登錄地址:https://mp.weixin.qq.com/,注冊-選擇類型,
對類型不清楚的點擊鏈接,賬號類型區別http://kf.qq.com/faq/170815aUZjeQ170815mU7bI7.html
公眾號申請流程:http://kf.qq.com/product/weixinmp.html#hid=99
- 開發准備
首先要創建的是一個web項目(springmvc),環境搭好並成功啟動。
公眾號賬號登錄后,會看到一個首頁界面,請熟悉界面左側菜單:
在“功能”菜單下面,不需要自己開發,可以實現的基本功能,編輯完成可以查看公眾號,實現簡單的公眾號。
在“設置”菜單下,公眾號設置可以查看“設置詳情”,點擊“功能設置”,有一個“網頁授權域名”這個設置的是你web項目發布后的域名。
微信認證流程:http://kf.qq.com/product/weixinmp.html#hid=97
“開發”菜單下的“基本配置”可以看到“公眾號開發信息”需要先設置secret和ip白名單,這三個信息在“開發者工具”下的“開發者文檔”獲取access_token時會用到。
請熟悉“開發者文檔”!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解析傳給對象,對用戶信息進行入庫操作等。