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




