一、開發前准備
1)准備一個服務器,一個已經備案的域名(小程序開發必須使用:https)
2)涉及到微信支付的,需提前在微信支付商戶平台,申請商戶號和秘鑰
3)如果需要將微信公眾號或微信小程序相互打通,需提前在微信開放平台注冊賬號,並將微信公眾號或小程序綁定在一起(此時才會獲取到unionid)
二、配置
1)開發配置
操作路徑:微信公眾平台 —— 開發 —— 基本配置
操作頁面
注意:如果是進行公眾號網頁開發以上配置不是必須的
2)公眾號設置
操作路徑:微信公眾平台 —— 設置 —— 公眾號配置
操作頁面
注意:以上設置,只有在進行公眾號網頁開發的時候需要,小程序開發不需要
三、開發
1)微信公眾號的開發
微信公眾號開發要分為:與微信服務器交互的開發和不與微信服務器交互的開發。與微信服務器交互的開發,就是微信服務器主動與你的服務器通訊,以響應你的請求。例如,你的用戶向你的公眾號發送一條信息,你的服務器接受到信息后自動發送一條回復消息。
對於與微信服務器交互的開發,首先需要驗證微信服務器。在上面的開發配置處,我們已經配置了服務器地址。此服務器地址就是驗證微信服務器時,微信服務器需要調用的地址。驗證微信服務器時,微信服務器會向此地址發送POST請求,傳遞一些參數,此地址接受到參數后,需要作出相應的處理。
下面以ThinkPHP的案例來說明
代碼樣圖
代碼樣圖
注意:不需要與微信服務器交互的開發,以上內容可以省略
不管是否需要與微信服務器交互,access_token是必不可少的。因為access_token是公眾號的全局唯一接口調用憑據,公眾號調用各接口時都需使用access_token。因此在調用其他接口之前,需要先調用接口獲取access_token。
獲取access_token,可以調用如下接口:
請求鏈接
參數說明
返回結果
注意:由於access_token的有效期目前為2個小時,所以在獲取到access_token后可以將其以文件的形式保存起來,使用時,先判斷保存的access_token是否過期,沒有過期則直接使用,過期了則重新調用接口獲取新的access_token並保存到文件中。
access_token獲取之后,其他接口即可按開發文檔直接調用。
2)小程序開發
小程序開發相對於公眾號開發而言是比較簡單的,其難點就是調起授權登錄窗,獲取用戶信息。那么如何獲取用戶的登錄信息呢?
具體步驟如下:
-
調用wx.login(OBJECT)接口,獲取登錄憑證(code),調用后台自己的接口,用code 換取 session_key,獲取到session_key后,使用自己的加密方式生成新的session_key,將其返回給客戶端,客戶端接收到新的session_key后將其保存在本地。
-
進入其他需要用戶信息的頁面,先調用wx.checkSession(OBJECT)接口,檢測用戶登錄態是否失效,如果用戶登錄態失效了,需要重新操作第一步,獲取新的session_key
-
如果登錄態沒有失效,將之前本地已經保存的session_key傳至后台,后台接收到后,通過session_key獲取用戶信息
3)微信支付開發
微信開發數據的傳輸使用的是XML格式,因此在接受數據和發送數據時,需要進行XML的封裝和解析。微信官方Demo中已經封裝相關方法,大家可以根據需要選擇版本。
掃碼支付。微信掃碼支付,有兩種模式,模式一不需要預先指定支付用戶的openid,而模式二需要預先指定用戶的openid。對於模式一,需要先在微信支付商戶后台,配置掃碼回調地址,然后再根據商品或訂單信息生成二維碼。微信掃碼時,微信服務器會將商品或訂單信息及掃碼人的openid推送到掃碼回調地址。模式一和模式二的不同之處在於獲取openid的方式,其他的步驟基本一樣,都是調用統一下單API。