微信連wifi portal驗證
建立公眾賬號門店
1.新增功能門店管理
2.建立門店
新增微信連Wi-Fi裝置
完成後提交,獲得門店Wi-Fi裝置改造資訊,包括:appId,shop_id,ssid,secretkey。
開發移動端Portal頁面
微信連Wi-Fi流程
模組時序圖
若無法看清圖中文字,可先通過“圖片另存為”將圖片儲存到本地,再放大檢視。
1. 使用者手動選擇SSID,手機瀏覽器彈出Portal頁面
2. Portal頁面初始化時,向AC/AP請求移動端和AC/AP的MAC地址
移動裝置在portal頁中引用下述微信JSAPI,讓原有Wi-Fi portal頁具備呼起微信的能力:
<script type="text/javascript" src="https://wifi.weixin.qq.com/resources/js/wechatticket/wechatutil.js" ></script>
呼叫JSAPI觸發呼起微信客戶端:
- <script type="text/javascript">
-
var appId =
- var secretkey = "9cf2exxxxxxx0c237a";
- var extend = "shandian"; //開發者自定義引數集合
- var timestamp = new Date().getTime(); //時間戳(毫秒)
- var shop_id = "819xxx52"; //AP裝置所在門店的ID
- var authUrl = "http://xxx/callback/auth?httpCode=200?gwId=xxx"; //伺服器回撥地址 gwId當前連線的路由的裝置編號
-
var mac = "3c:91:57:c2:cc:af"
- var ssid = "A01-S001-R044"; //AP裝置訊號名稱,非必須
- var bssid = "00:a0:b1:4c:a1:c5"; //AP裝置mac地址,非必須
- function callWechatBrowser(){
- var sign = $.md5(</span>appId + extend + timestamp + shop_id + authUrl + mac + ssid + bssid + secretkey);
- Wechat_GotoRedirect(appId, extend, timestamp, sign, shop_id, authUrl, mac, ssid, bssid); }
- </script>
php獲取微信返回的openId,tid,extend回撥介面
- publicfunction auth(){
- $gwId = $_GET["gwId"];
- $openId = $_GET["openId"];
- $extend= $_GET["extend"];
- $tid= $_GET["tid"]; //獲取openId新增到資料庫獲取該使用者的token
- }
引數說明
引數 | 是否必須 | 說明 |
---|---|---|
appId |
是 |
商家微信公眾平臺賬號 |
extend |
是 |
extend裡面可以放開發者需要的相關引數集合,最終將透傳給運營商認證URL。extend引數只支援英文和數字,且長度不得超過300個字元。 |
timestamp |
是 |
時間戳使用毫秒 |
sign |
是 |
請求引數簽名,具體計算方法見下方說明 |
shop_id |
是 |
AP裝置所在門店的ID(微信公眾平臺門店) |
authUrl |
是 |
認證服務端URL,微信客戶端將把使用者微信身份資訊向此URL提交併獲得認證放行 |
mac |
安卓裝置必需 |
使用者手機mac地址,格式冒號分隔,字元長度17個,並且字母小寫,例如:00:1f:7a:ad:5c:a8 |
ssid |
否 |
AP裝置的訊號名稱 |
bssid |
否 |
無線網路裝置的無線mac地址,格式冒號分隔,字元長度17個,並且字母小寫,例如:00:1f:7a:ad:5c:a8 |
3. 使用者點選微信連Wi-Fi按鈕,瀏覽器請求AC/AP臨時放行
4. AC/AP臨時放行移動端所有上網請求
可以wifidog中做防火牆策略臨時放行微信所有的ip
http://xxx/callback/auth?httpCode=200?gwId=xxx&gwId=&extend=xxx&openId=xxx&tid=xxx
引數說明
引數 | 說明 |
---|---|
extend | 為上文中呼叫呼起微信JSAPI時傳遞的extend引數,這裡原樣回傳給商家主頁 |
openId | 使用者的微信openId |
tid | 為加密後的使用者手機號碼(僅作網監部門備案使用) |
5. 瀏覽器生成ticket,發向微信Server
jsonpCallback({'success':true,'data':'weixin://connectToFreeWifi/?apKey=http%3A%2F%2Fmp.weixin.qq.com%2Fmp%2Fwifi%3Fq%3D47b33c80e2910d51&ticket=ba21685ba44144dc988fa02ec8254053'})
6. 連線成功
7. 跳轉到商家主頁可自己設定
Portal頁面程式碼
- <!DOCTYPE HTML>
- <html>
- <headlang="zh-CN">
- <metacharset="UTF-8">
- <title>微信連Wi-Fi</title>
- <metaname="viewport"content="width=device-width, initial-scale=1"/>
- <metaname="viewport"content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
- <metaname="apple-mobile-web-app-capable"content="yes">
- <metaname="apple-mobile-web-app-status-bar-style"content="black">
- <metaname="format-detection"content="telephone=no">
- <scripttype="text/javascript">
- /**
- * 微信連Wi-Fi協議3.1供運營商portal呼起微信瀏覽器使用
- */
- var loadIframe = null;
- var noResponse = null;
- var callUpTimestamp = 0;
- function putNoResponse(ev){
- clearTimeout(noResponse);
- }
- function errorJump()
- {
- var now = new Date().getTime();
- if((now - callUpTimestamp) > 4*1000){
- return;
- }
- alert('該瀏覽器不支援自動跳轉微信請手動開啟微信\n如果已跳轉請忽略此提示');
- }
- myHandler = function(error) {
- errorJump();
- };
- function createIframe(){
- var iframe = document.createElement("iframe");
- iframe.style.cssText = "display:none;width:0px;height:0px;";
- document.body.appendChild(iframe);
- loadIframe = iframe;
- }
- //註冊回撥函式
- function jsonpCallback(result){
- if(result && result.success){
- alert('WeChat will call up : ' + result.success + ' data:' + result.data);
- var ua=navigator.userAgent;
- if (ua.indexOf("iPhone") != -1 ||ua.indexOf("iPod")!=-1||ua.indexOf("iPad") != -1) { //iPhone
- document.location = result.data;
- }else{
- if('false'=='true'){
- alert('[強制]該瀏覽器不支援自動跳轉微信請手動開啟微信\n如果已跳轉請忽略此提示');
-
相關推薦
微信連wifi portal驗證
建立公眾賬號門店 1.新增功能門店管理 2.建立門店 新增微信連Wi-Fi裝置 完成後提交,獲得門店Wi-Fi裝置改造資訊,包括:appId,shop_id,ssid,secre
微信連WIFI提示無法重定向到以weixin開頭的網址的解決辦法
tar gin tle color port out 定向 -s font 熱點登錄打不開改網頁,因為無法重定向一weixin://開頭的地址;ios無法通過portal頁面呼出微信客戶端;問題困擾了幾天;下面說解決辦法 地址見http://www.xiegaosheng.
微信支付-公眾號支付,統一下單,調起微信支付,回調驗證
.net log bsp 問題 常見問題 下單 article 微信 微信支付 參考:http://www.jianshu.com/p/a172a1b69fdd http://www.jianshu.com/p/1ae0ef652f63 http://www.jb51.n
微信開發模式無法驗證以及返回消息中文亂碼的情況
dsm 中文 第一次 下載 pos 亂碼 公眾平臺 art style 一開始我也糾結了這個問題非常久,從微信公眾平臺上下載下來的樣例不是utf-8格式的,可是卻能夠驗證通過。 此時改動增加中文,返回消息會亂碼,改成utf-8編碼就顯示正常了。 再
微信公眾平臺——token驗證php版
head 一點 輸出 lean host ont 題解 開發 問題解決 這幾天開始接觸微信公眾號的開發,註冊這些就不說了,我是先弄了個測試號用著。進入正題 所謂token驗證,其實就是微信服務器向自己要用到的服務器url發送一段數據,其中有一個參數$_GET[‘ec
微信企業號OAuth2驗證接口實例(使用SpringMVC)
個人信息 bin result 持久化 pri get 保存 override 說明 微信企業號OAuth2驗證接口(使用SpringMVC) 企業應用中的URL鏈接(包含自己定義菜單或者消息中的鏈接)。能夠通過OAuth2.0來獲取員工的身份信息。 註意
Java企業微信開發_09_身份驗證之移動端網頁授權(有完整項目源碼)
.com post請求 ati errcode http nbsp code repl button 註: 源碼已上傳github: https://github.com/shirayner/WeiXin_QiYe_Demo 一、本節要點 1.1 授權回調域(可信
Java企業微信開發_10_未驗證域名歸屬,JS-SDK功能受限
校驗 style 現象 -s 解決方案 img ges pps span 1.現象: 在企業微信後臺填寫可信域名後,提示:未驗證域名歸屬,JS-SDK功能受限,如下圖: 點擊“申請域名校驗”後, 註意:域名根目錄 當時一直
Thinkphp5 微信公眾號token驗證不成功的原因
個人博客 很多 host ech tmp bsp tps 浪費 信息 最近要啟動微信項目,上個月就開始了解微信的開發,這個月要啟動項目,配置微信公眾號信息一直失敗。為此,我甚至手工寫了微信提交過來的記錄,如: ×tamp=1510210523&n
微信破解WiFi密碼如何操作?一招幫你查看密碼!
搜索框 方法 技術分享 mage com alt 有時 破解 程序 對用手機用戶來說我們使用最多的軟件莫過於騰訊的微信了!對於使用最為廣泛的軟件來說,如果能夠幫助我們解決網絡問題那無疑是最好的,因為有時你們破解wifi還要下載一大堆破解軟件。現在直接通過微信就能破解WIFI
微信公眾號token驗證成功,但是自動回覆沒反應 / 該公眾號服務故障
微信公眾號token驗證成功,但是自動回覆沒反應 / 該公眾號服務故障 微信公眾號token驗證成功,但是自動回覆沒反應 / 該公眾號服務故障 微信公眾號token驗證成功,但是自動回覆沒反應 / 該公眾號服務故障 先上程式碼,輸入?自動回覆時間 <?php heade
ThinkPHP 3.2.3響應微信傳送的Token驗證失敗
1、伺服器配置是阿里雲的linux 2、下載微信的Token驗證Demo,放於根目錄測試連結沒有任何問題:URL http://www.XXX.com/wx_sample.phpToken weixin 3、將驗證程式碼置於TP框架中(application/Weixin/Controller/Index
微信小程式實現驗證碼倒計時效果
效果圖 wxml <input class='input-pwd' placeholder="新密碼" placeholder-style='color: #000' password focus bindconfirm='getPwd'/> <input class='i
微信小程序實現驗證碼倒計時效果
cti fff img onf hold tel 頁面加載 conf 技術分享 效果圖 wxml <input class=‘input-pwd‘ placeholder="新密碼" placeholder-style=‘color: #000‘ passwor
微信公眾號開發者驗證
很久沒碰公眾號開發了 今天幫別人開發公眾號 重新記錄一下 /** * 驗證方法 * @return bool */ function checkSignature(){ $signature = $_GET["signature"]; $tmpArr = [ 't
微信小程式簡訊驗證碼,小程式怎麼開通簡訊驗證碼
微信小程式可以通過 , 獲取使用者繫結手機號時, 傳送一條簡訊驗證碼。 但是在實際業務中, 你的小程式會有更多地方使用到簡訊驗證碼功能… 一、 小程式簡訊驗證碼作用 下面的場景, 會經常用到手機
thinphp3.2 使用微信擴充套件類 token驗證失敗
tp 提供了很好的微信擴充套件類給我們使用 , 但在配置的時候老提示token驗證失敗 , 後來找資料發現 在輸出echostr之前,ob_clean(); 具體位置: \ThinkPHP\Library\Com\Wechat.class.php 在100行
node微信小程式支付驗證
Node 微信支付驗證 說明 業務流程 支付驗證 輔助方法 結束 說明 之前寫了一個,單純的微信小程式支付的介面,這篇介紹一下支付完之後如何驗證. 業務流程 支付驗證 我們之前支付
微信小程式----簡訊驗證碼倒計時外掛
效果圖 JS // 倒計時外掛 class CountTime { constructor(page) { this.page = page; this.time =
微信支付回撥驗證簽名java版V3
微信支付java版V3驗證資料合法性 概要:使用微信支付介面時,微信會返回或回撥給商戶XML資料,開發者需要驗證微信返回的資料是否合法。 特別提醒:商戶系統對於支付結果通知的內容一定要做簽名驗證,防止資料洩漏導致出現“假通知”,造成資金損失。