|
本帖最后由 zhangxc90 于 2018-12-9 12:17 编辑
最近无事,上网看到了一段简单的微信连wifi,的代码。
自已下下来玩了一下,对接后,发现一个问题,就是一直弹出认证页面。
但就是无法上网。 判断问题出在“认证页,没有告诉爱快路由,可以让这个人上网了”
请技术给指导下,如何给操作。
我应该在jsonpCallback 内如何操作,填加什么代码,或者如何传参让路由放行。
还是在下面的 authUrl 填写,如爱快自定义portal 方法写的,地址如:(对接认证http://portal.ikuai8.com/Action/webauth-up?type=8),个人觉得应该不是这种放法。
还请技术做下指导。
有兴趣的快友,也可以一起互相学习下,已经了解情况的,麻烦告诉下。
下面是网上的代码:- <!DOCTYPE HTML>
- <html>
- <head lang="zh-CN">
- <meta charset="UTF-8">
- <title>微信连Wi-Fi</title>
- <meta name="viewport" content="width=device-width, initial-scale=1" />
- <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
- <meta name="apple-mobile-web-app-capable" content="yes">
- <meta name="apple-mobile-web-app-status-bar-style" content="black">
- <meta name="format-detection" content="telephone=no">
- <script src="libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
- <script type="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如果已跳转请忽略此提示');
- return;
- }
- createIframe();
- callUpTimestamp = new Date().getTime();
- loadIframe.src=result.data;
- noResponse = setTimeout(function(){
- errorJump();
- },3000);
- }
- }else if(result && !result.success){
- alert(result.data);
- }
- }
- function Wechat_GotoRedirect(appId, extend, timestamp, sign, shopId, authUrl, mac, ssid, bssid){
- //将回调函数名称带到服务器端
- var url = "https://wifi.weixin.qq.com/operator/callWechatBrowser.xhtml?appId=" + appId
- + "&extend=" + extend
- + "×tamp=" + timestamp
- + "&sign=" + '';
- //如果sign后面的参数有值,则是新3.1发起的流程
- if(authUrl && shopId){
- url = "https://wifi.weixin.qq.com/operator/callWechat.xhtml?appId=" + appId
- + "&extend=" + extend
- + "×tamp=" + timestamp
- + "&sign=" + sign
- + "&shopId=" + shopId
- + "&authUrl=" + encodeURIComponent(authUrl)
- + "&mac=" + mac
- + "&ssid=" + ssid
- + "&bssid=" + bssid;
- }
- //通过dom操作创建script节点实现异步请求
- var script = document.createElement('script');
- script.setAttribute('src', url);
- document.getElementsByTagName('head')[0].appendChild(script);
- }
- </script>
- <link rel="stylesheet" href="https://wifi.weixin.qq.com/resources/css/style-simple-follow.css"/>
- </head>
- <body class="mod-simple-follow">
- <div class="mod-simple-follow-page">
- <div class="mod-simple-follow-page__banner">
- <img class="mod-simple-follow-page__banner-bg" src="https://wifi.weixin.qq.com/resources/images/background.jpg" alt=""/>
- <div class="mod-simple-follow-page__img-shadow"></div>
- <div class="mod-simple-follow-page__logo">
- <img class="mod-simple-follow-page__logo-img" src="https://wifi.weixin.qq.com/resources/images/t.weixin.logo.png" alt=""/>
- <p class="mod-simple-follow-page__logo-name"></p>
- <p class="mod-simple-follow-page__logo-welcome">立远科技 欢迎您</p>
- </div>
- </div>
- <div class="mod-simple-follow-page__attention">
- <p class="mod-simple-follow-page__attention-txt">欢迎使用微信连Wi-Fi</p>
- <p class="mod-simple-follow-page__attention-txt">MianFeiWifi 已连接,希望能给您,一个良好的上网体验</p>
- <a class="mod-simple-follow-page__attention-btn" href="#" onclick="callWechatBrowser()">一键打开微信连Wi-Fi</a>
- </div>
- </div>
- </body>
- <script src="http://cdn.bootcss.com/blueimp-md5/1.1.0/js/md5.js"></script>
- <script type="text/javascript">
- var appId = "wx10fb4548a16725c8";
- var secretkey = "b89a25164dcfbd5e7a15e2418523499a";
- var extend = "90done"; //开发者自定义参数集合
- var timestamp = new Date().getTime(); //时间戳(毫秒)
- var shop_id = "3252716"; //AP设备所在门店的ID
- var authUrl = "http://test.90done.com/auth.php?httpCode=200&gwId=xxx"; //认证服务端URL
- var mac = "3c:91:57:c5:cc:af"; //用户手机mac地址 安卓设备必需
- var ssid = "MianFeiWifi"; //AP设备信号名称,非必须
- var bssid = "00:e0:61:4c:a7:c5"; //AP设备mac地址,非必须
- function callWechatBrowser(){
- var sign = md5(appId + extend + timestamp + shop_id + authUrl + mac + ssid + bssid + secretkey);
- Wechat_GotoRedirect(appId, extend, timestamp, sign, shop_id, authUrl, mac, ssid, bssid);
- }
- </script>
- <script type="text/javascript">
- document.addEventListener('visibilitychange', putNoResponse, false);
- </script>
- </html>
复制代码
|
|