做者:知曉雲 - 小程序開發快人一步
來源:知曉課堂json
許多小程序開發者,都須要獲取進入小程序不一樣頁面的二維碼:包括常見的四方形「QR 碼」和微信推出的「小程序碼」。小程序
這時候,咱們直接在小程序後臺中獲取到的二維碼,就遠遠沒法知足咱們以上需求了。貼心的是,微信提供了「獲取小程序二維碼」的接口。segmentfault
經過這個接口,商家和開發者可以製做進入不一樣頁面的小程序二維碼,而不會限定掃碼進入小程序主頁。微信小程序
下面,咱們就以某遊戲資料庫小程序的英雄詳情頁爲例,展現這個接口的使用方法。api
首先,咱們須要確保在小程序的app.json
代碼中,已經註冊了相應的頁面。服務器
在本例的設定中,咱們就須要在pages
裏,將pages/detail/hero/hero
這個頁面註冊進去。微信
固然,相應目錄下也須要有相應的頁面文件,且你的小程序已經有已發佈的線上版本。不然,用戶掃碼後,微信會提示出錯。app
接下來,咱們須要到微信小程序後臺,獲取小程序的 AppSecret(若是已經獲取,這一步能夠跳過)。spa
進入小程序後臺,點擊左側「設置」,找到「開發設置」,咱們就能找到 AppSecret 一項。點擊「獲取」或「重置」,掃碼以後,網頁就會顯示新的 AppSecret。須要注意的是,若是你以前生成過新的 AppSecret,那麼舊的 AppSecret 會隨這個操做而失效。3d
開發者也須要記得妥善保管 AppSecret,儘量保證 AppSecret 不會丟失、泄漏。
有了小程序的 AppID 和 AppSecret,咱們就能利用服務器,獲取小程序的二維碼了。在本例,咱們經過模擬請求的方式,讓你們瞭解這個接口的使用方法和原理。
首先,咱們要利用 AppID 和 AppSecret,獲取 Access Token。
這一步,咱們請求的地址是https://api.weixin.qq.com/cgi-bin/token
,你須要使用GET
方法,傳遞你的 AppID 和 AppSecret。
從結果中,咱們能夠得知:執行這個操做後,微信會給你返回一個 JSON 數據包。解析這個數據包,咱們就能夠得到 Access Token。
有了 Access Token,咱們就能夠獲取不一樣的小程序二維碼了。
微信提供了兩個POST
獲取小程序二維碼的接口。你能夠根據你的業務需求,自由選擇任一接口,獲取相應的小程序二維碼(GET
參數中的ACCESS_TOKEN
部分填入上一步咱們獲取到的 Access Token)。
https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN
https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN
POST
請求體中,須要包含小程序的頁面地址,以及傳入小程序的參數。記住,這個頁面必需要在小程序裏的app.json
進行註冊。
本例中,JSON 請求體以下:
發送請求後,微信會直接返回一張製做好的「小程序碼」。
如今,長按上圖掃一掃,看看是否是到了指定頁面了?
除了咱們文中舉例的接口,微信還開放了另外一個與二維碼相關的接口,即 wxacodeunlimit 來獲取小程序碼。(數量不限;但沒法攜帶參數)
微信將經過「獲取小程序二維碼」接口獲取的二維碼的數量限定在十萬個,而且彷佛並無「註銷之前生成的二維碼」的功能和機制。
因此,若是你有很是大量的小程序二維碼生成需求,建議使用普通連接小程序的方式生成小程序碼。若是須要使用微信提供的二維碼生成接口生成帶參數的小程序碼,也要注意不要超過限額。
知曉雲 JS SDK 將上面的實現過程進行了封裝,一個接口就能夠實現上文提到的三種獲取方式(知曉雲還會幫你存儲管理 Access Token)。該接口爲:
wx.BaaS.getWXACode(type, params)
接口中 type 的三種類型
注意,該接口不須要再傳入 Access Token,但在調用前須要提早確保:
PS:知曉雲後臺自帶二維碼生成功能,無需開發也能快速獲取進入小程序不一樣頁面的二維碼。
相關閱讀
第一期:快速實現圖片爬蟲
第二期:快速生成分享海報
第三期:處理微信卡券消息
第四期:自動回覆客服消息
關注「知曉雲」公衆號,點擊菜單欄「知曉雲」-「知曉課堂」,獲取更多開發教程。