1. 程式人生 > >微信連wifi portal驗證

微信連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觸發呼起微信客戶端:

[javascript] view plaincopy
  1. <script type="text/javascript">   
  2. var appId = 
    "wx1bxxxxx33e";   
  3. var secretkey = "9cf2exxxxxxx0c237a";  
  4.  var extend = "shandian";     //開發者自定義引數集合 
  5. var timestamp = new Date().getTime();    //時間戳(毫秒) 
  6. var shop_id = "819xxx52";    //AP裝置所在門店的ID 
  7. var authUrl = "http://xxx/callback/auth?httpCode=200?gwId=xxx"; //伺服器回撥地址 gwId當前連線的路由的裝置編號   
  8. var mac = "3c:91:57:c2:cc:af"
    ;    //使用者手機mac地址 安卓裝置必需 
  9. var ssid = "A01-S001-R044"//AP裝置訊號名稱,非必須 
  10. var bssid = "00:a0:b1:4c:a1:c5"//AP裝置mac地址,非必須 
  11. function callWechatBrowser(){   
  12. var sign = $.md5(</span>appId + extend + timestamp + shop_id + authUrl + mac + ssid + bssid + secretkey);  
  13.  Wechat_GotoRedirect(appId, extend, timestamp, sign, shop_id, authUrl, mac, ssid, bssid); }  
  14. </script>  


php獲取微信返回的openId,tid,extend回撥介面

  1. publicfunction auth(){   
  2. $gwId = $_GET["gwId"];   
  3. $openId = $_GET["openId"];   
  4. $extend$_GET["extend"];   
  5. $tid$_GET["tid"]; //獲取openId新增到資料庫獲取該使用者的token 
  6. }  


引數說明

引數 是否必須 說明

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頁面程式碼

  1. <!DOCTYPE HTML>
  2. <html>
  3. <headlang="zh-CN">
  4.     <metacharset="UTF-8">
  5.     <title>微信連Wi-Fi</title>
  6.     <metaname="viewport"content="width=device-width, initial-scale=1"/>
  7.     <metaname="viewport"content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
  8.     <metaname="apple-mobile-web-app-capable"content="yes">
  9.     <metaname="apple-mobile-web-app-status-bar-style"content="black">
  10.     <metaname="format-detection"content="telephone=no">
  11.     <scripttype="text/javascript">
  12.         /**  
  13.          * 微信連Wi-Fi協議3.1供運營商portal呼起微信瀏覽器使用  
  14.          */  
  15.         var loadIframe = null;  
  16.         var noResponse = null;  
  17.         var callUpTimestamp = 0;  
  18.         function putNoResponse(ev){  
  19.              clearTimeout(noResponse);  
  20.         }  
  21.          function errorJump()  
  22.          {  
  23.              var now = new Date().getTime();  
  24.              if((now - callUpTimestamp) > 4*1000){  
  25.                  return;  
  26.              }  
  27.              alert('該瀏覽器不支援自動跳轉微信請手動開啟微信\n如果已跳轉請忽略此提示');  
  28.          }  
  29.          myHandler = function(error) {  
  30.              errorJump();  
  31.          };  
  32.          function createIframe(){  
  33.              var iframe = document.createElement("iframe");  
  34.              iframe.style.cssText = "display:none;width:0px;height:0px;";  
  35.              document.body.appendChild(iframe);  
  36.              loadIframe = iframe;  
  37.          }  
  38.         //註冊回撥函式  
  39.         function jsonpCallback(result){  
  40.             if(result && result.success){  
  41.                 alert('WeChat will call up : ' + result.success + '  data:' + result.data);  
  42.                 var ua=navigator.userAgent;  
  43.                 if (ua.indexOf("iPhone") != -1 ||ua.indexOf("iPod")!=-1||ua.indexOf("iPad") != -1) {   //iPhone  
  44.                     document.location = result.data;  
  45.                 }else{  
  46.                     if('false'=='true'){  
  47.                         alert('[強制]該瀏覽器不支援自動跳轉微信請手動開啟微信\n如果已跳轉請忽略此提示');  
  48. 相關推薦

    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 浪費 信息 最近要啟動微信項目,上個月就開始了解微信的開發,這個月要啟動項目,配置微信公眾號信息一直失敗。為此,我甚至手工寫了微信提交過來的記錄,如: &timestamp=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資料,開發者需要驗證微信返回的資料是否合法。 特別提醒:商戶系統對於支付結果通知的內容一定要做簽名驗證,防止資料洩漏導致出現“假通知”,造成資金損失。