1. 程式人生 > >微信公眾號開發(四)

微信公眾號開發(四)

微信公眾號開發時常需要一個使用者授權繫結的過程。關於微信公眾號的使用者繫結,一般有如下兩種實現方式:

  • (1)通過傳送簡訊驗證碼的方式;
  • (2)使用使用者登入時,向後端傳遞openid的方式。

使用簡訊驗證碼進行校驗來進行繫結的方式反而相對來講的話比較簡單。下面我們來看下使用連結跳轉進行繫結的方式。

  1. 首先,我們需要配置好微信公眾號的開發者配置資訊;
  2. 然後,編寫一個Controller用來接收微信伺服器發起的授權地址校驗。這時候需要在微信公眾號設定裡面進行網頁授權域名設定,想要使得此處設定的地址在授權跳轉(回撥)的時候起作用,需要下載一個微信的txt驗證檔案。很多人在初次面對這個檔案的時候會顯得一臉懵逼~不要慌,咱們繼續。微信公眾號官方的說法是將該檔案放置在域名伺服器的根路徑下……其實這句話理解的方式有三種:
  • (1)對於純web應用來說,直接將該檔案放置在nginx的根目錄,進行相應的配置,使得靜態檔案可以訪問即可;
  • (2)對於tomcat作為容器的系統,既可以把檔案作為一個靜態資源對外暴露,也可以手動編寫一個根路徑的請求方法,URL名稱為校驗檔案檔名(刪掉.txt的部分),然後直接返回微信校驗檔案裡面的字串即可。因為現在很多情況下,我們都是基於springboot開發,所以強烈推薦第二種方式。
  • (3) 在編寫完成Controller之後,我們需要在微信公眾號設定裡面配置剛才的地址,這個地方要注意的是——微信伺服器發起校驗檔案驗證時的請求地址為網頁授權域名/校驗檔案檔名(不包含.txt部分)

需要注意的是在發起微信配置的網頁授權域名之前,先要把編寫的微信服務端程式部署在可以被外部訪問到的網路伺服器上。微信可以選擇的埠有80和443埠。

  • (4)部署好程式之後,進行授權域名的配置,然後點選儲存,這個時候微信伺服器會嚮應用伺服器發起一次請求來進行校驗,校驗通過,則訪問授權跳轉連結的時候會成功跳轉到回撥地址。最常見的錯誤為【10003】 redirect_uri域名與後臺配置不一致,這個時候就要檢查你所配置的授權域名和授權URL的redirect_uri是否一致。
【授權地址參考連結】(請在微信客戶端中開啟此連結體驗)
1. scope為snsapi_base(基礎靜默授權)https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx520c15f417810387&redirect_uri=https%3A%2F%2Fchong.qq.com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdapter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type=code&scope=snsapi_base&state=123#wechat_redirect
2. scope為snsapi_userinfo(獲取使用者基本資訊)
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

然後正常的話開啟第二種連結,會跳出需使用者確認的授權頁面,點選同意之後跳轉至填寫的