微信小程序之Wi-Fi-小程序打通接口文檔
微信小程序之Wi-Fi-小程序打通接口文檔,微信小程序用戶連Wi-Fi后長期逗留在場所內,可以在連接Wi-Fi后進入微信點擊微信聊首頁歡迎語,即可進入預先設置的小程序中獲得資訊或服務,查詢門店WiFi信息接口和連Wi-Fi完成頁跳轉小程序。
目錄:
1、連Wi-Fi完成頁跳小程序
2、商戶主頁跳轉小程序
3、查詢門店Wi-Fi信息接口
1、連Wi-Fi完成頁跳轉小程序
設置聯網完成頁接口
場景介紹:
設置需要跳轉的小程序,連網完成點擊“完成”按鈕,即可進入設置的小程序。
注:只能跳轉與公眾號關聯的小程序。
接口調用
接口調用說明
協議:https 請求方式: POST 請求URL: https://api.weixin.qq.com/bizwifi/finishpage/set?access_token=ACCESS_TOKEN POST數據格式:JSON
請求參數說明
參數 | 是否必填 | 說明 |
---|---|---|
access_token | 是 | 調用接口憑證 |
POST數據 | 是 | JSON數據 |
POST數據
數據示例:
{ "shop_id": 429620, "finishpage_url": "", "wxa_user_name": "gh_966b66e00888", "wxa_path": "pages/index/index", "finishpage_type": 1 }
字段說明
字段 | 是否必填 | 說明 |
---|---|---|
shop_name | 是 | 門店名稱 |
finishpage_url | 否 | 連網完成頁URL,finishpage_type為0時有效 |
wxa_user_name | 否 | 連網完成頁跳轉小程序原始id,finishpage_type為1時有效,要求小程序與公眾號有綁定關系 |
wxa_path | 否 | 連網完成頁跳轉小程序路徑,finishpage_type為1時有效,需要做urlencode |
finishpage_type | 否 | 連網完成頁跳轉類型,0為H5,1為小程序 |
##2、設置頂部banner跳轉小程序接口
場景介紹:
用戶連Wi-Fi后長期逗留在場所內,可以在連接Wi-Fi后進入微信點擊微信聊首頁歡迎語,即可進入預先設置的小程序中獲得資訊或服務。
注:只能跳轉與公眾號關聯的小程序。
接口調用
接口調用說明
協議:https 請求方式: POST 請求URL:https://api.weixin.qq.com/bizwifi/homepage/set?access_token=ACCESS_TOKEN POST數據格式:JSON
請求參數說明
參數 | 是否必填 | 說明 |
---|---|---|
access_token | 是 | 調用接口憑證 |
POST數據 | 是 | JSON數據 |
POST數據
數據示例:
{ "shop_id": 2200766, "template_id": 2, "struct": { "wxa_user_name": "gh_5cb1b4334f3a", "wxa_path": "index.html?query=abc" } }
字段說明
字段 | 是否必填 | 說明 |
---|---|---|
shop_id | 是 | 門店ID |
template_id | 是 | 2-關聯小程序(支持門店小程序) |
struct | 是 | 連網完成頁跳轉小程序原始id,finishpage_type為1時有效,要求小程序與公眾號有綁定關系 |
wxa_user_name | 是 | 賬號原始ID |
wxa_path | 是 | 小程序頁面路徑 |
3、查詢門店WiFi信息接口
場景介紹
接口調用說明
協議:https http請求方式: POST 請求URL:https://api.weixin.qq.com/bizwifi/shop/get?access_token=ACCESS_TOKEN POST數據格式:JSON
請求參數說明
參數 | 是否必填 | 說明 |
---|---|---|
access_token | 是 | 調用接口憑證 |
POST數據 | 是 | JSON數據 |
POST數據
數據示例:
{ "errcode": 0, "data": { "shop_name": "南山店", "ssid": " WX123", "ssid_list": [ "WX123", "WX456" ], "ssid_password_list": [ { "ssid": "WX123", "password": "123456789" }, { "ssid": "WX456", "password": "21332465dge" } ], "password": "123456789", "protocol_type": 4, "ap_count": 2, "template_id": 1, "homepage_url": "http://www.weixin.qq.com/", "bar_type": 1, "sid":"", "poi_id":"285633617", "homepage_wxa_user_name":"", "homepage_wxa_path":"", "finishpage_url":"", "finishpage_wxa_user_name":"gh_966b66e00888", "finishpage_wxa_path":"pages/index/index", "finishpage_type":1, } }
字段說明
字段 | 是否必填 | 說明 |
---|---|---|
shop_name | 是 | 門店名稱 |
ssid | 是 | 無線網絡設備的ssid,未添加設備為空,多個ssid時顯示第一個 |
ssid_list | 是 | 無線網絡設備的ssid列表,返回數組格式 |
ssid_password_list | 是 | ssid和密碼的列表,數組格式。當為密碼型設備時,密碼才有值 |
password | 是 | 設備密碼,當設備類型為密碼型時返回 |
protocol_type | 是 | 門店內設備的設備類型,0-未添加設備,4-密碼型設備,31-portal型設備 |
ap_count | 是 | 門店內設備總數 |
template_id | 是 | 商家主頁(bar條)模板類型 0 默認頁 1 自定義h5 2 跳轉小程序 |
homepage_url | 是 | 商家主頁(bar條)鏈接 |
bar_type | 是 | 頂部常駐入口上顯示的文本內容:0--歡迎光臨+公眾號名稱;1--歡迎光臨+門店名稱;2--已連接+公眾號名稱+WiFi;3--已連接+門店名稱+Wi-Fi |
finishpage_url | 是 | 連網完成頁鏈接,finishpage_type為0時有效 |
sid | 是 | 商戶自己的id,與門店poi_id對應關系,建議在添加門店時候建立關聯關系,具體請參考“微信門店接口” |
poi_id | 是 | 門店ID(適用于微信卡券、微信門店業務),具體定義參考微信門店,與shop_id一一對應。 |
homepage_wxa_user_name | 是 | 商家主頁(bar條)跳轉的小程序原始id,template_id為2時有效 |
finishpage_wxa_user_name | 是 | 完成頁跳轉的小程序原始id,finishpage_type為1時有效 |
inishpage_wxa_path | 是 | 完成頁跳轉的小程序路徑,需要做urlencode,finishpage_type為1時有效 |
finishpage_type | 是 |
完成頁跳轉類型 0為H5;1為小程序 |
在小程序中支持搜索周邊的 Wi-Fi,同時可以針對指定 Wi-Fi,傳入密碼發起連接。
該系列接口為系統原生能力,如需查看“微信連Wi-Fi”能力及配置跳轉小程序,請參考文檔。
連接指定 Wi-Fi 接口調用時序:
Android: startWifi —> connectWifi —> onWifiConnected
iOS(僅iOS 11及以上版本支持):
startWifi —> connectWifi —> onWifiConnected
連周邊 Wi-Fi 接口調用時序:
Android startWifi —> getWifiList —> onGetWifiList —> connectWifi —> onWifiConnected
iOS(iOS 11.0及11.1版本因系統原因暫不支持):
startWifi —> getWifiList —> onGetWifiList —> setWifiList —> onWifiConnected
注意:
Wi-Fi 相關接口暫不可用 wx.canIUse 接口判斷。
Android 6.0 以上版本,在沒有打開定位開關的時候會導致設備不能正常獲取周邊的 Wi-Fi 信息。
wx.startWifi(OBJECT)
基礎庫 1.6.0 開始支持,低版本需做兼容處理
初始化 Wi-Fi 模塊。
OBJECT參數說明:
參數 | 類型 | 必填 | 說明 |
---|---|---|---|
success | Function | 否 | 接口調用成功的回調函數 |
fail | Function | 否 | 接口調用失敗的回調函數 |
complete | Function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
示例代碼:
wx.startWifi({ success: function(res) { console.log(res.errMsg) } })
wx.stopWifi(OBJECT)
基礎庫 1.6.0 開始支持,低版本需做兼容處理
關閉 Wi-Fi 模塊。
OBJECT參數說明:
參數 | 類型 | 必填 | 說明 |
---|---|---|---|
success | Function | 否 | 接口調用成功的回調函數 |
fail | Function | 否 | 接口調用失敗的回調函數 |
complete | Function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
示例代碼:
wx.stopWifi({ success: function(res) { console.log(res.errMsg) } })
wx.connectWifi(OBJECT)
基礎庫 1.6.0 開始支持,低版本需做兼容處理
連接 Wi-Fi。若已知 Wi-Fi 信息,可以直接利用該接口連接。僅 Android 與 iOS 11 以上版本支持。
OBJECT參數說明:
參數 | 類型 | 必填 | 說明 |
---|---|---|---|
SSID | String | 是 | Wi-Fi 設備ssid |
BSSID | String | 是 | Wi-Fi 設備bssid |
password | String | 否 | Wi-Fi 設備密碼 |
success | Function | 否 | 接口調用成功的回調函數 |
fail | Function | 否 | 接口調用失敗的回調函數 |
complete | Function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
示例代碼:
wx.connectWifi({ SSID: '', BSSID: '', success: function(res) { console.log(res.errMsg) } })
wx.getWifiList(OBJECT)
基礎庫 1.6.0 開始支持,低版本需做兼容處理
請求獲取 Wi-Fi 列表,在 onGetWifiList 注冊的回調中返回 wifiList 數據。iOS 將跳轉到系統的 Wi-Fi 界面,Android 不會跳轉。 iOS 11.0 及 iOS 11.1 兩個版本因系統問題,該方法失效。但在 iOS 11.2 中已修復。
OBJECT參數說明:
參數 | 類型 | 必填 | 說明 |
---|---|---|---|
success | Function | 否 | 接口調用成功的回調函數 |
fail | Function | 否 | 接口調用失敗的回調函數 |
complete | Function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
wx.onGetWifiList(CALLBACK)
基礎庫 1.6.0 開始支持,低版本需做兼容處理
監聽在獲取到 Wi-Fi 列表數據時的事件,在回調中將返回 wifiList。
CALLBACK 返回參數說明:
參數 | 類型 | 說明 |
---|---|---|
wifiList | Array | Wi-Fi 列表數據 |
Wi-Fi 列表項說明:
參數 | 類型 | 說明 |
---|---|---|
SSID | String | Wi-Fi 的SSID |
BSSID | String | Wi-Fi 的BSSID |
secure | Boolean | Wi-Fi 是否安全 |
signalStrength | Number | Wi-Fi 信號強度 |
wx.setWifiList(OBJECT)
基礎庫 1.6.0 開始支持,低版本需做兼容處理
iOS特有接口 在 onGetWifiList 回調后,利用接口設置 wifiList 中 AP 的相關信息。
注意:
該接口只能在 onGetWifiList 回調之后才能調用。
此時客戶端會掛起,等待小程序設置 Wi-Fi 信息,請務必盡快調用該接口,若無數據請傳入一個空數組。
有可能隨著周邊 Wi-Fi 列表的刷新,單個流程內收到多次帶有存在重復的 Wi-Fi 列表的回調。
OBJECT參數說明:
參數 | 類型 | 必填 | 說明 |
---|---|---|---|
wifiList | Array | 是 | 提供預設的 Wi-Fi 信息列表 |
success | Function | 否 | 接口調用成功的回調函數 |
fail | Function | 否 | 接口調用失敗的回調函數 |
complete | Function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
Wi-Fi 信息列表項說明:
參數 | 類型 | 說明 |
---|---|---|
SSID | String | Wi-Fi 設備ssid |
BSSID | String | Wi-Fi 設備bssid |
password | String | Wi-Fi 設備密碼 |
示例代碼:
wx.onGetWifiList({ success: function(res) { if (res.wifiList.length) { wx.setWifiList({ wifiList: [{ SSID: res.wifiList[0].SSID, BSSID: res.wifiList[0].BSSID, password: '123456' }] }) } else { wx.setWifiList({ wifiList: [] }) } } }) wx.getWifiList()
wx.onWifiConnected(CALLBACK)
基礎庫 1.6.0 開始支持,低版本需做兼容處理
監聽連接上 Wi-Fi 的事件。
CALLBACK 返回參數說明:
參數 | 類型 | 說明 |
---|---|---|
wifi | Object | Wi-Fi 信息 |
wifi對象說明:
參數 | 類型 | 說明 |
---|---|---|
SSID | String | Wi-Fi 的SSID |
BSSID | String | Wi-Fi 的BSSID |
secure | Boolean | Wi-Fi 是否安全 |
signalStrength | Number | Wi-Fi 信號強度 |
wx.getConnectedWifi(OBJECT)
基礎庫 1.6.0 開始支持,低版本需做兼容處理
獲取已連接中的 Wi-Fi 信息
OBJECT參數說明:
參數 | 類型 | 必填 | 說明 |
---|---|---|---|
success | Function | 否 | 接口調用成功的回調函數 |
fail | Function | 否 | 接口調用失敗的回調函數 |
complete | Function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
success返回參數說明:
參數 | 類型 | 說明 |
---|---|---|
wifi | Object | Wi-Fi 信息 |
wifi對象說明:
參數 | 類型 | 說明 |
---|---|---|
SSID | String | Wi-Fi 的SSID |
BSSID | String | Wi-Fi 的BSSID |
secure | Boolean | Wi-Fi 是否安全 |
signalStrength | Number | Wi-Fi 信號強度 |
errCode列表
每個接口調用的時候,都會返回 errCode 字段。
錯誤碼 | 說明 | 備注 |
---|---|---|
0 | ok | 正常 |
12000 | not init | 未先調用startWifi接口 |
12001 | system not support | 當前系統不支持相關能力 |
12002 | password error | Wi-Fi 密碼錯誤 |
12003 | connection timeout | 連接超時 |
12004 | duplicate request | 重復連接 Wi-Fi |
12005 | wifi not turned on | Android特有,未打開 Wi-Fi 開關 |
12006 | gps not turned on | Android特有,未打開 GPS 定位開關 |
12007 | user denied | 用戶拒絕授權鏈接 Wi-Fi |
12008 | invalid SSID | 無效SSID |
12009 | system config err | 系統運營商配置拒絕連接 Wi-Fi |
12010 | system internal error | 系統其他錯誤,需要在errmsg打印具體的錯誤原因 |
12011 | weapp in background | 應用在后臺無法配置 Wi-Fi |
掃二維碼手機查看該文章
- 上一篇:微信小程序第三方開發平臺
- 下一篇:微信小程序兼容接口及小程序兼容組件