微信公衆平臺開發01
Table of Contents
1 微信公衆平臺
1.1 開發準備
- 微信公衆號服務器只是作了一箇中介的做用
微信公衆號服務器和網站的關係java
- 能夠使用nat123在內網搭建網站,做爲測試開發
- 能夠申請微信公衆平臺接口測試賬號,前期避免繁瑣的帳號認證,打開瀏覽器,這裏以IE 爲例。輸入:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
- 正式運營時,能夠使用新浪雲計算SAE Java平臺,不用本身購買服務器和管理服務器
1.2 功能
- 自定義歡迎信息:用戶關注咱們的微信公衆號時,返回自定義歡迎信息
- 提供位置服務:網站收到用戶發送的位置信息,在數據庫中保存位置信息, 再根據用戶發送的信息在制定的位置範圍內搜索,如用戶先發送位置信息"蘭 州市西固區玉門街什字",再發送"超市",網站收到這個信息,先從數據庫中 取得用戶位置信息,再根據位置信息和搜索信息,獲得用戶想要的結果,以微 信的形式返回
- 提供自定義菜單:如"獲取優惠卷","調查問卷"
1.3 代碼分析
主要類的關係數據庫
1.3.1 WeixinSerciceImpl代碼分析
weixinConfirm:微信確認請求是微信公衆平臺向網站發送消息的入口,分爲GET和POST兩種 方式,GET用於驗證網站真實性,POST用於向網站發送信息和事件推送。目前發送信息處理了 TEXT類型的消息,事件推送處理了自定義菜單點擊和模板消息推送json
//微信確認請求 public String weixinConfirm(HttpServletRequest request,HttpServletResponse response)throws Exception | | v /** * 處理微信發來的POST請求 * * @param request * @return */ private String processRequest(HttpServletRequest request) | | v /** * 根據屬性名到屬性配置文件內找對應的xml文件進行返回。 * @param request * @param content * @param requestMap * @return */ private String responseMessage(HttpServletRequest request,String content,Map<String, String> requestMap) | | v /** * 返回文本信息 * @param requestMap * @param request * @param content * @return */ private String responseTxtMsg(Map<String, String> requestMap,HttpServletRequest request,String content)
1.3.2 WeixinUtil代碼分析
httpsRequest:發起https請求並獲取結果,分爲GET和POST兩種方式。用於菜單建立(POST), 獲取 accesstoken的接口,獲取網頁受權認證, 推送模板信息,獲取用戶信息,獲取微信IP地址 列表,網頁受權獲取用戶信息,長連接轉換成短連接瀏覽器
/** * 發起https請求並獲取結果 * @param requestUrl 請求地址 * @param requestMethod 請求方式(GET、POST) * @param outputStr 提交的數據 * @return JSONObject(經過JSONObject.get(key)的方式獲取json對象的屬性值) */ public static JSONObject httpsRequest(String requestUrl, String requestMethod, String outputStr)