├── auth └── index.php ├── ping └── index.php ├── wx ├── image-bg.jpg ├── image-logo.png ├── index.php ├── pc.php └── style-index.css ├── login ├── image-bg.jpg ├── background.jpg ├── image-logo.png ├── t.weixin.logo.png ├── wechatutil.js ├── index.php ├── index.php.bak.php ├── index-phone.php ├── index-pc.php ├── style-pcdemo.css ├── style-simple-follow.css └── pcauth.js ├── gw_message.php ├── portal └── index.php └── README.md /auth/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ping/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /wx/image-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/echowxsy/wx-apfree_wifidog-auth/HEAD/wx/image-bg.jpg -------------------------------------------------------------------------------- /login/image-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/echowxsy/wx-apfree_wifidog-auth/HEAD/login/image-bg.jpg -------------------------------------------------------------------------------- /wx/image-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/echowxsy/wx-apfree_wifidog-auth/HEAD/wx/image-logo.png -------------------------------------------------------------------------------- /login/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/echowxsy/wx-apfree_wifidog-auth/HEAD/login/background.jpg -------------------------------------------------------------------------------- /login/image-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/echowxsy/wx-apfree_wifidog-auth/HEAD/login/image-logo.png -------------------------------------------------------------------------------- /login/t.weixin.logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/echowxsy/wx-apfree_wifidog-auth/HEAD/login/t.weixin.logo.png -------------------------------------------------------------------------------- /gw_message.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /portal/index.php: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /wx/index.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 黄花旅游 6 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # wx-apfree_wifidog-auth 2 | 基于Apfree_wifidog的微信认证服务端 3 | 4 | ### 接口说明 5 | 6 | #### auth 7 | 8 | index.php 此接口用于确认网关返回到信息,通过返回`Auth: 1`(注意 1 前面的空格是必须的)。 9 | 10 | #### login 11 | 12 | index.php 用于判断客户端类型,跳转不同的页面 13 | 14 | index-pc.php PC端认证页面,需要使用手机扫描二维码 15 | 16 | index-phone.php 手机端认证页面,会跳转到微信连 Wi-Fi 的界面 17 | 18 | #### portal 19 | 20 | index.php 跳转认证完成之后的页面 21 | 22 | #### ping 23 | 24 | index.php 判断认证服务器是否在线的接口 -------------------------------------------------------------------------------- /wx/pc.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 微信连接Wi-Fi 8 | 9 | 10 | 11 | 12 | 13 |
14 |
15 | 16 | 17 |
18 | 19 |
20 | 21 |
22 |
23 |

Wi-Fi已成功连接

24 | 27 |
28 | 29 |
30 | 31 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /login/wechatutil.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 微信连Wi-Fi协议3.1供运营商portal呼起微信浏览器使用 3 | */ 4 | var loadIframe = null; 5 | var noResponse = null; 6 | function createIframe(){ 7 | var iframe = document.createElement("iframe"); 8 | iframe.style.cssText = "display:none;width:0px;height:0px;"; 9 | document.body.appendChild(iframe); 10 | loadIframe = iframe; 11 | } 12 | //注册回调函数 13 | function jsonpCallback(result){ 14 | if(result && result.success){ 15 | var ua=navigator.userAgent; 16 | if (ua.indexOf("iPhone") != -1 ||ua.indexOf("iPod")!=-1||ua.indexOf("iPad") != -1) { //iPhone 17 | document.location = result.data; 18 | }else{ 19 | createIframe(); 20 | loadIframe.src=result.data; 21 | noResponse = setTimeout(function(){ 22 | errorJump(); 23 | },3000); 24 | } 25 | }else if(result && !result.success){ 26 | alert(result.data); 27 | } 28 | } 29 | 30 | function Wechat_GotoRedirect(appId, extend, timestamp, sign, shopId, authUrl, mac, ssid, bssid){ 31 | 32 | //将回调函数名称带到服务器端 33 | var url = "https://wifi.weixin.qq.com/operator/callWechatBrowser.xhtml?appId=" + appId 34 | + "&extend=" + extend 35 | + "×tamp=" + timestamp 36 | + "&sign=" + sign; 37 | 38 | //如果sign后面的参数有值,则是新3.1发起的流程 39 | if(authUrl && shopId){ 40 | 41 | 42 | url = "https://wifi.weixin.qq.com/operator/callWechat.xhtml?appId=" + appId 43 | + "&extend=" + extend 44 | + "×tamp=" + timestamp 45 | + "&sign=" + sign 46 | + "&shopId=" + shopId 47 | + "&authUrl=" + encodeURIComponent(authUrl) 48 | + "&mac=" + mac 49 | + "&ssid=" + ssid 50 | + "&bssid=" + bssid; 51 | 52 | } 53 | 54 | //通过dom操作创建script节点实现异步请求 55 | var script = document.createElement('script'); 56 | script.setAttribute('src', url); 57 | document.getElementsByTagName('head')[0].appendChild(script); 58 | } -------------------------------------------------------------------------------- /login/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /login/index.php.bak.php: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 | 24 | 黄花旅游 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |
35 |
36 | 37 |
38 | 43 |
44 |
45 |

欢迎使用微信连Wi-Fi

46 | 打开微信关注公众号 47 |
48 | 56 |
57 | 58 | 59 | -------------------------------------------------------------------------------- /login/index-phone.php: -------------------------------------------------------------------------------- 1 | 18 | 19 | 20 | 21 | 22 | 23 | 欢迎使用黄花旅游WiFi 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 33 | 34 | 35 | 36 |
37 |
38 | 39 |
40 | 45 |
46 |
47 |

欢迎使用微信连Wi-Fi

48 | 打开微信关注公众号 49 |
50 | 51 | 64 | 67 |
68 | 69 | 70 | -------------------------------------------------------------------------------- /login/index-pc.php: -------------------------------------------------------------------------------- 1 | 27 | 28 | 29 | 30 | 31 | 微信连Wi-Fi 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 |
45 |
46 | 47 | 48 |
49 | 50 |
51 | 52 |
53 |

欢迎使用免费Wi-Fi

54 |
55 | 56 |
57 | 58 |
59 | 60 | 63 |
64 | 65 | 75 | -------------------------------------------------------------------------------- /login/style-pcdemo.css: -------------------------------------------------------------------------------- 1 | a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}table{border-collapse:collapse;border-spacing:0}a{text-decoration:none}hr{height:0}label{cursor:pointer}body{font:14px/1.6 "Helvetica Neue",Helvetica Neue,Helvetica,Arial,Heiti SC,Hiragino Sans GB,Microsoft Yahei,sans-serif;background-color:#FFF;-webkit-font-smoothing:antialiased;color:#222;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-text-size-adjust:none;-webkit-touch-callout:none;-webkit-user-select:none}body,html{width:100%;height:100%}.container{position:relative;height:100%;overflow:hidden}.header{position:relative;height:120px;text-align:center;vertical-align:middle}.header__logo{position:absolute;margin:auto;left:0;right:0;top:0;bottom:0;width:287px;height:auto;max-height:120px}.main{position:absolute;height:100%;width:100%;background-position:center center;background-repeat:no-repeat;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover;margin:0}.main__bg{width:100%;height:auto}.main__content{position:absolute;top:50%;left:50%;width:446px;height:446px;margin-top:-328px;margin-left:-223px;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;background-color:#fff;color:#333;text-align:center}.main__content-title{margin-top:50px;font-size:28px;line-height:28px}.main__content-title em{color:#3cc123;font-weight:400;font-style:normal}.main__content-qrcode{margin-top:30px;border:1px solid #e5e5e5;width:250px;height:250px;padding:4px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main__content-info{margin-top:22px;font-size:18px;color:#666}.main__wifi-logo{text-align:center;display:block;position:absolute;bottom:238px;width:100%}.main__wifi-icon{display:inline-block;background:url(../img/wifi-logo.png);width:129px;height:20px}.footer{position:absolute;bottom:0;height:80px;width:100%;background-color:#373636;color:#f1f1f1;text-align:center}.footer__list{text-align:center;padding-top:30px}.footer__item{display:inline-block;*display:inline;*zoom:1}.footer__item a{display:block;padding:0 10px;color:#f1f1f1;border-left:1px solid #f1f1f1}.footer__item a:hover{text-decoration:none}.footer__item:first-child a{border:none}.footer_copyright{color:#f1f1f1;line-height:80px}.footer_copyright a{padding:0 10px;color:#f1f1f1}.footer_copyright a:hover{text-decoration:none}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (min-resolution:240dpi){.main__wifi-icon{background:url(../img/wifi-logo@2x.png);-webkit-background-size:129px auto;-moz-background-size:129px auto;-o-background-size:129px auto;background-size:129px auto}}.ui-ta-c{text-align:center}.ui-ta-l{text-align:left}.ui-ta-r{text-align:right}.ui-va-b{vertical-align:bottom}.ui-va-bl{vertical-align:baseline}.ui-va-m{vertical-align:middle}.ui-va-t{vertical-align:top}.ui-pos-a{position:absolute}.ui-pos-f{position:fixed}.ui-pos-r{position:relative}.ui-pos-s{position:static}.ui-fl-l{float:left}.ui-fl-n{float:none}.ui-fl-r{float:right}.ui-d-b{display:block}.ui-d-i{display:inline}.ui-d-ib{display:inline-block;*display:inline;*zoom:1}.ui-d-n{display:none}.ui-tof{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.ui-clearfix{zoom:1}.ui-clearfix:before{content:'';display:block}.ui-clearfix:after{content:'';display:table;clear:both}.ui-bfc{zoom:1}.ui-bfc:before{content:'';display:block}.ui-bfc:after{content:'';display:table;clear:both}.ui-bfc__left{float:left}.ui-bfc__right{float:right}.ui-bfc__content{display:table-cell;zoom:1}.ui-bfc__content:before{content:'';display:block}.ui-bfc__content:after{content:'';display:table;clear:both}.ui-bfc__content:after{clear:both;display:block;visibility:hidden;overflow:hidden;height:0!important;line-height:0;font-size:xx-large;content:" x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x "}.ui-flex{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.ui-flex__item{-webkit-box-flex:1;-moz-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;display:block!important;width:0}.ui-mask{position:fixed;height:100%;width:100%;left:0;top:0;right:0;bottom:0;background-color:rgba(0,0,0,.7);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3000000', endColorstr='#b3000000', GradientType=0) \9;zoom:1;z-index:9997}.ui-mask:not([dummy]){filter:progid:DXImageTransform.Microsoft.gradient(enabled='false')} -------------------------------------------------------------------------------- /wx/style-index.css: -------------------------------------------------------------------------------- 1 | a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}table{border-collapse:collapse;border-spacing:0}a{text-decoration:none}hr{height:0}label{cursor:pointer}body{font:14px/1.6 "Helvetica Neue",Helvetica Neue,Helvetica,Arial,Heiti SC,Hiragino Sans GB,Microsoft Yahei,sans-serif;background-color:#FFF;-webkit-font-smoothing:antialiased;color:#222;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-text-size-adjust:none;-webkit-touch-callout:none;-webkit-user-select:none}body,html{width:100%;height:100%}.container{position:relative;height:100%;min-height:700px;overflow:hidden}.header{position:relative;height:120px;text-align:center;vertical-align:middle}.header__logo{position:absolute;margin:auto;left:0;right:0;top:0;bottom:0;max-width:287px;height:auto;max-height:120px}.main{position:absolute;height:100%;width:100%;background-position:center center;background-repeat:no-repeat;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover;margin:0}.main__bg{width:100%;height:auto}.main__content{position:absolute;top:50%;left:50%;width:446px;height:446px;margin-top:-328px;margin-left:-223px;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;background-color:#fff;color:#333;text-align:center}.main__content-title{margin-top:50px;font-size:28px;line-height:28px}.main__content-title em{color:#3cc123;font-weight:400;font-style:normal}.main__content-qrcode{margin-top:30px;border:1px solid #e5e5e5;width:250px;height:250px;padding:4px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main__content-info{margin-top:22px;font-size:18px;color:#666}.main__content-info em{color:#3cc123;font-weight:400;font-style:normal}.main__laptop-img{display:inline-block;background:url(../img/laptop.png);width:194px;height:124px;margin-top:80px}.main__success .main__content-title{margin-top:40px}.main__success .main__content-info{margin-top:84px}.main__wifi-logo{text-align:center;display:block;position:absolute;bottom:238px;width:100%}.main__wifi-icon{display:inline-block;background:url(../img/wifi-logo.png);width:129px;height:20px}.footer{position:absolute;bottom:0;height:80px;width:100%;background-color:#373636;color:#f1f1f1;text-align:center}.footer__list{text-align:center;padding-top:30px}.footer__item{display:inline-block;*display:inline;*zoom:1}.footer__item a{display:block;padding:0 10px;color:#f1f1f1;border-left:1px solid #f1f1f1}.footer__item a:hover{text-decoration:none}.footer__item:first-child a{border:none}.footer_copyright{color:#f1f1f1;line-height:80px}.footer_copyright a{padding:0 10px;color:#f1f1f1}.footer_copyright a:hover{text-decoration:none}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (min-resolution:240dpi){.main__wifi-icon{background:url(../img/wifi-logo@2x.png);-webkit-background-size:129px auto;-moz-background-size:129px auto;-o-background-size:129px auto;background-size:129px auto}.main__laptop-img{background:url(../img/laptop@2x.png);-webkit-background-size:194px auto;-moz-background-size:194px auto;-o-background-size:194px auto;background-size:194px auto}}.ui-ta-c{text-align:center}.ui-ta-l{text-align:left}.ui-ta-r{text-align:right}.ui-va-b{vertical-align:bottom}.ui-va-bl{vertical-align:baseline}.ui-va-m{vertical-align:middle}.ui-va-t{vertical-align:top}.ui-pos-a{position:absolute}.ui-pos-f{position:fixed}.ui-pos-r{position:relative}.ui-pos-s{position:static}.ui-fl-l{float:left}.ui-fl-n{float:none}.ui-fl-r{float:right}.ui-d-b{display:block}.ui-d-i{display:inline}.ui-d-ib{display:inline-block;*display:inline;*zoom:1}.ui-d-n{display:none}.ui-tof{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.ui-clearfix{zoom:1}.ui-clearfix:before{content:'';display:block}.ui-clearfix:after{content:'';display:table;clear:both}.ui-bfc{zoom:1}.ui-bfc:before{content:'';display:block}.ui-bfc:after{content:'';display:table;clear:both}.ui-bfc__left{float:left}.ui-bfc__right{float:right}.ui-bfc__content{display:table-cell;zoom:1}.ui-bfc__content:before{content:'';display:block}.ui-bfc__content:after{content:'';display:table;clear:both}.ui-bfc__content:after{clear:both;display:block;visibility:hidden;overflow:hidden;height:0!important;line-height:0;font-size:xx-large;content:" x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x "}.ui-flex{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.ui-flex__item{-webkit-box-flex:1;-moz-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;display:block!important;width:0}.ui-mask{position:fixed;height:100%;width:100%;left:0;top:0;right:0;bottom:0;background-color:rgba(0,0,0,.7);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3000000', endColorstr='#b3000000', GradientType=0) \9;zoom:1;z-index:9997}.ui-mask:not([dummy]){filter:progid:DXImageTransform.Microsoft.gradient(enabled='false')} -------------------------------------------------------------------------------- /login/style-simple-follow.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}body{font:14px/1.6 "Helvetica Neue",Helvetica Neue,Helvetica,Arial,Heiti SC,Hiragino Sans GB,Microsoft Yahei,sans-serif;background-color:#fffbf0;-webkit-font-smoothing:antialiased;color:#222;-webkit-tap-highlight-color:transparent}.icon{display:inline-block;*display:inline;*zoom:1}.mod-simple-follow{background-color:#FFF}.mod-simple-follow-page{background-color:#FFF;height:100%}.mod-simple-follow-page__top-bar{height:45px;background-color:#f2f2f2;font-size:14px;line-height:45px;color:#6c6c6c;padding-left:20px}.mod-simple-follow-page__status{margin-left:5px}.mod-simple-follow-page__banner{overflow:hidden;max-height:314px;position:relative;text-align:center;line-height:1;font-size:0}.mod-simple-follow-page__banner-bg{width:100%}.mod-simple-follow-page__logo{position:absolute;top:45px;width:100%}.mod-simple-follow-page__logo-img{width:83px;display:block;margin:0 auto;-webkit-border-radius:50px;-moz-border-radius:50px;border-radius:50px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.mod-simple-follow-page__logo-name{color:#FFF;font-size:22px;line-height:20px;text-align:center;margin-top:30px;margin-bottom:0;text-shadow:1px 1px 1px rgba(0,0,0,.4);-webkit-text-shadow:1px 1px 1px rgba(0,0,0,.4)}.mod-simple-follow-page__logo-welcome{color:#FFF;font-size:22px;line-height:20px;text-align:center;margin-top:18px;text-shadow:1px 1px 1px rgba(0,0,0,.4);-webkit-text-shadow:1px 1px 1px rgba(0,0,0,.4)}.mod-simple-follow-page__attention{padding-bottom:15px;text-align:center}.mod-simple-follow-page__attention-txt{margin:45px 0;text-align:center;font-size:16px}.mod-simple-follow-page__attention-btn{display:inline-block;width:290px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;height:40px;line-height:40px;background-color:#04be01;color:#fff;text-align:center;font-size:16px}.mod-simple-follow-page__img-shadow{width:100%;min-height:174px;display:block;position:absolute;bottom:0;background:#000;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(0,0,0,0)),color-stop(1,rgba(0,0,0,.4)));background:-moz-linear-gradient(center top,rgba(0,0,0,0) 0,rgba(0,0,0,.4) 100%)}.ui-ta-c{text-align:center}.ui-ta-l{text-align:left}.ui-ta-r{text-align:right}.ui-va-b{vertical-align:bottom}.ui-va-bl{vertical-align:baseline}.ui-va-m{vertical-align:middle}.ui-va-t{vertical-align:top}.ui-pos-a{position:absolute}.ui-pos-f{position:fixed}.ui-pos-r{position:relative}.ui-pos-s{position:static}.ui-fl-l{float:left}.ui-fl-n{float:none}.ui-fl-r{float:right}.ui-d-b{display:block}.ui-d-i{display:inline}.ui-d-ib{display:inline-block;*display:inline;*zoom:1}.ui-d-n{display:none}.ui-tof{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.ui-clearfix{zoom:1}.ui-clearfix:before{content:'';display:block}.ui-clearfix:after{content:'';display:table;clear:both}.ui-bfc{zoom:1}.ui-bfc:before{content:'';display:block}.ui-bfc:after{content:'';display:table;clear:both}.ui-bfc__left{float:left}.ui-bfc__right{float:right}.ui-bfc__content{display:table-cell;zoom:1}.ui-bfc__content:before{content:'';display:block}.ui-bfc__content:after{content:'';display:table;clear:both}.ui-bfc__content:after{clear:both;display:block;visibility:hidden;overflow:hidden;height:0!important;line-height:0;font-size:xx-large;content:" x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x "}.ui-flex{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.ui-flex__item{-webkit-box-flex:1;-moz-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;display:block!important;width:0}.ui-mask{position:fixed;height:100%;width:100%;left:0;top:0;right:0;bottom:0;background-color:rgba(0,0,0,.8);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#cc000000', endColorstr='#cc000000', GradientType=0) \9;zoom:1;z-index:9997}@media screen and (min-width:1900px){.mod-simple-follow-page__banner{max-height:700px}.mod-simple-follow-page__logo{top:400px}}@media screen and (min-width:1200px)and (max-width:1900px){.mod-simple-follow-page__banner{max-height:545px}.mod-simple-follow-page__logo{top:300px}}@media screen and (min-width:980px)and (max-width:1200px){.mod-simple-follow-page__banner{max-height:380px}.mod-simple-follow-page__logo{top:140px}}@media screen and (min-width:750px)and (max-width:980px){.mod-simple-follow-page__banner{max-height:508px}.mod-simple-follow-page__logo{top:120px}}@media screen and (max-height:480px)and (orientation:portrait){.mod-simple-follow-page__attention-txt{margin:20px 0}} -------------------------------------------------------------------------------- /login/pcauth.js: -------------------------------------------------------------------------------- 1 | var QRCode; 2 | (function(){function l(a){this.mode=t.MODE_8BIT_BYTE;this.data=a;this.parsedData=[];a=0;for(var d=this.data.length;a>>18,b[1]=128|(c&258048)>>>12,b[2]=128|(c&4032)>>>6,b[3]=128|c&63):2048>>12,b[1]=128|(c&4032)>>>6,b[2]=128|c&63):128>>6,b[1]=128|c&63):b[0]=c;this.parsedData.push(b)}this.parsedData=Array.prototype.concat.apply([],this.parsedData);this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191), 3 | this.parsedData.unshift(187),this.parsedData.unshift(239))}function f(a,d){this.typeNumber=a;this.errorCorrectLevel=d;this.modules=null;this.moduleCount=0;this.dataCache=null;this.dataList=[]}function k(a,d){if(void 0==a.length)throw Error(a.length+"/"+d);for(var b=0;ba||this.moduleCount<=a||0>d||this.moduleCount<=d)throw Error(a+","+d);return this.modules[a][d]},getModuleCount:function(){return this.moduleCount}, 5 | make:function(){this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(a,d){this.moduleCount=4*this.typeNumber+17;this.modules=Array(this.moduleCount);for(var b=0;b=b;b++)if(!(-1>=a+b||this.moduleCount<=a+b))for(var c=-1;7>=c;c++)-1>=d+c||this.moduleCount<=d+c||(0<=b&&6>=b&&(0==c||6==c)||0<=c&&6>=c&&(0==b||6==b)||2<=b&&4>=b&&2<=c&&4>=c?this.modules[a+b][d+c]=!0:this.modules[a+b][d+c]=!1)},getBestMaskPattern:function(){for(var a= 7 | 0,d=0,b=0;8>b;b++){this.makeImpl(!0,b);var c=m.getLostPoint(this);if(0==b||a>c)a=c,d=b}return d},createMovieClip:function(a,d,b){a=a.createEmptyMovieClip(d,b);this.make();for(d=0;d=g;g++)for(var q=-2;2>=q;q++)-2==g||2==g||-2==q||2==q||0==g&&0==q?this.modules[c+g][e+q]=!0:this.modules[c+g][e+q]=!1}},setupTypeNumber:function(a){for(var d=m.getBCHTypeNumber(this.typeNumber),b=0;18>b;b++){var c= 9 | !a&&1==(d>>b&1);this.modules[Math.floor(b/3)][b%3+this.moduleCount-8-3]=c}for(b=0;18>b;b++)c=!a&&1==(d>>b&1),this.modules[b%3+this.moduleCount-8-3][Math.floor(b/3)]=c},setupTypeInfo:function(a,d){for(var b=m.getBCHTypeInfo(this.errorCorrectLevel<<3|d),c=0;15>c;c++){var e=!a&&1==(b>>c&1);6>c?this.modules[c][8]=e:8>c?this.modules[c+1][8]=e:this.modules[this.moduleCount-15+c][8]=e}for(c=0;15>c;c++)e=!a&&1==(b>>c&1),8>c?this.modules[8][this.moduleCount-c-1]=e:9>c?this.modules[8][15-c-1+1]=e:this.modules[8][15- 10 | c-1]=e;this.modules[this.moduleCount-8][8]=!a},mapData:function(a,d){for(var b=-1,c=this.moduleCount-1,e=7,g=0,q=this.moduleCount-1;0h;h++)if(null==this.modules[c][q-h]){var u=!1;g>>e&1));m.getMask(d,c,q-h)&&(u=!u);this.modules[c][q-h]=u;e--; -1==e&&(g++,e=7)}c+=b;if(0>c||this.moduleCount<=c){c-=b;b=-b;break}}}};f.PAD0=236;f.PAD1=17;f.createData=function(a,d,b){d=v.getRSBlocks(a,d);for(var c=new y,e=0;e8*a)throw Error("code length overflow. ("+c.getLengthInBits()+">"+8*a+")");for(c.getLengthInBits()+4<=8*a&&c.put(0,4);0!=c.getLengthInBits()%8;)c.putBit(!1);for(;!(c.getLengthInBits()>=8*a);){c.put(f.PAD0,8);if(c.getLengthInBits()>=8*a)break;c.put(f.PAD1,8)}return f.createBytes(c,d)};f.createBytes=function(a,d){for(var b=0,c=0,e=0,g=Array(d.length),q=Array(d.length),h=0;h< 12 | d.length;h++){var u=d[h].dataCount,f=d[h].totalCount-u,c=Math.max(c,u),e=Math.max(e,f);g[h]=Array(u);for(var n=0;n>>=1;return d},getPatternPosition:function(a){return m.PATTERN_POSITION_TABLE[a-1]},getMask:function(a,d,b){switch(a){case 0:return 0==(d+b)%2;case 1:return 0==d%2;case 2:return 0==b%3;case 3:return 0==(d+b)%3;case 4:return 0==(Math.floor(d/2)+Math.floor(b/3))%2;case 5:return 0==d*b%2+d*b%3;case 6:return 0==(d*b%2+d*b%3)%2;case 7:return 0== 16 | (d*b%3+(d+b)%2)%2;default:throw Error("bad maskPattern:"+a);}},getErrorCorrectPolynomial:function(a){for(var d=new k([1],0),b=0;bd)switch(a){case t.MODE_NUMBER:return 10;case t.MODE_ALPHA_NUM:return 9;case t.MODE_8BIT_BYTE:return 8;case t.MODE_KANJI:return 8;default:throw Error("mode:"+a);}else if(27>d)switch(a){case t.MODE_NUMBER:return 12;case t.MODE_ALPHA_NUM:return 11;case t.MODE_8BIT_BYTE:return 16; 17 | case t.MODE_KANJI:return 10;default:throw Error("mode:"+a);}else{if(!(41>d))throw Error("type:"+d);switch(a){case t.MODE_NUMBER:return 14;case t.MODE_ALPHA_NUM:return 13;case t.MODE_8BIT_BYTE:return 16;case t.MODE_KANJI:return 12;default:throw Error("mode:"+a);}}},getLostPoint:function(a){for(var d=a.getModuleCount(),b=0,c=0;c=h;h++)if(!(0>c+h||d<=c+h))for(var f=-1;1>=f;f++)0>e+f||d<=e+f||0==h&&0==f||q!=a.isDark(c+h,e+f)||g++;5a)throw Error("glog("+a+")");return p.LOG_TABLE[a]},gexp:function(a){for(;0>a;)a+=255;for(;256<=a;)a-=255;return p.EXP_TABLE[a]},EXP_TABLE:Array(256),LOG_TABLE:Array(256)},r=0;8>r;r++)p.EXP_TABLE[r]=1<r;r++)p.EXP_TABLE[r]=p.EXP_TABLE[r-4]^p.EXP_TABLE[r-5]^p.EXP_TABLE[r-6]^p.EXP_TABLE[r-8];for(r=0;255>r;r++)p.LOG_TABLE[p.EXP_TABLE[r]]=r;k.prototype={get:function(a){return this.num[a]},getLength:function(){return this.num.length}, 20 | multiply:function(a){for(var d=Array(this.getLength()+a.getLength()-1),b=0;bthis.getLength()-a.getLength())return this;for(var d=p.glog(this.get(0))-p.glog(a.get(0)),b=Array(this.getLength()),c=0;c>>7-a%8&1)},put:function(a,d){for(var b=0;b>>d-b-1&1))},getLengthInBits:function(){return this.length},putBit:function(a){var d= 28 | Math.floor(this.length/8);this.buffer.length<=d&&this.buffer.push(0);a&&(this.buffer[d]|=128>>>this.length%8);this.length++}};var x=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439], 29 | [1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]],r=function(){var a=function(a,b){this._el=a;this._htOption=b};a.prototype.draw=function(a){function b(a,c){var b=document.createElementNS("http://www.w3.org/2000/svg", 30 | a),d;for(d in c)c.hasOwnProperty(d)&&b.setAttribute(d,c[d]);return b}var c=this._htOption,e=this._el,g=a.getModuleCount();this.clear();var f=b("svg",{viewBox:"0 0 "+String(g)+" "+String(g),width:"100%",height:"100%",fill:c.colorLight});f.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink");e.appendChild(f);f.appendChild(b("rect",{fill:c.colorDark,width:"1",height:"1",id:"template"}));for(c=0;c'],k=0;k");for(var l=0;l');h.push("")}h.push("");c.innerHTML=h.join("");a=c.childNodes[0];c=(b.width-a.offsetWidth)/2;b=(b.height-a.offsetHeight)/2;0=this._android){var b=1/window.devicePixelRatio,c=CanvasRenderingContext2D.prototype.drawImage;CanvasRenderingContext2D.prototype.drawImage=function(a,d,e,f,k,n,l,m,r){if("nodeName"in a&&/img/i.test(a.nodeName))for(var p=arguments.length-1;1<=p;p--)arguments[p]*=b;else"undefined"==typeof m&&(arguments[1]*=b,arguments[2]*=b,arguments[3]*=b,arguments[4]*=b);c.apply(this,arguments)}}var e= 35 | function(a,b){this._bIsPainted=!1;this._android=z();this._htOption=b;this._elCanvas=document.createElement("canvas");this._elCanvas.width=b.width;this._elCanvas.height=b.height;a.appendChild(this._elCanvas);this._el=a;this._oContext=this._elCanvas.getContext("2d");this._bIsPainted=!1;this._elImage=document.createElement("img");this._elImage.alt="Scan me!";this._elImage.style.display="none";this._el.appendChild(this._elImage);this._bSupportDataURI=null};e.prototype.draw=function(a){var b=this._elImage, 36 | c=this._oContext,d=this._htOption,e=a.getModuleCount(),f=d.width/e,k=d.height/e,l=Math.round(f),m=Math.round(k);b.style.display="none";this.clear();for(b=0;bx.length)throw Error("Too long data");this._oQRCode=new f(b,this._htOption.correctLevel);this._oQRCode.addData(a);this._oQRCode.make();this._el.title=a;this._oDrawing.draw(this._oQRCode);this.makeImage()};QRCode.prototype.makeImage=function(){"function"==typeof this._oDrawing.makeImage&&(!this._android||3<=this._android)&&this._oDrawing.makeImage()};QRCode.prototype.clear=function(){this._oDrawing.clear()};QRCode.CorrectLevel=w})();var jsonpId=1E4; 40 | (function(){JSAPI={queryCount:0,opt:{target:null,appId:"",shopId:"",extend:"",authUrl:""},auth:function(l){for(var f in l)this.opt[f]=l[f];this.opt.appId?this.opt.shopId?this.opt.authUrl?(l=this.genTicket(),this.genQrCode("http://mp.weixin.qq.com/mp/wifi?q=pc&appid="+this.opt.appId+"&shopid="+this.opt.shopId+"&ticket="+l),this.queryState(l)):alert("authUrl \u4e0d\u80fd\u4e3a\u7a7a"):alert("shopId \u4e0d\u80fd\u4e3a\u7a7a"):alert("appId \u4e0d\u80fd\u4e3a\u7a7a")},genTicket:function(){return this.genHashCode(this.opt.appId+ 41 | this.opt.shopId)+Math.random().toString(36).substr(2)},genHashCode:function(l){for(var f=0,k=0;kf)f&=4294967295;return 0<=f?f:-f},genQrCode:function(l){var f=this.opt.target;f||(f=document.createElement("DIV"),f.innerHTML='
\u8bf7\u7528\u5fae\u4fe1\u626b\u63cf\u4e8c\u7ef4\u7801
', 42 | document.body.appendChild(f),f=document.getElementById("weixin_wifi_auth_qrcode"));/(\d+)/.test(f.style.width);var k=RegExp.$1;if(200>k||400';(new QRCode(f,{width:k,height:k})).makeCode(l)},queryState:function(l){var f=this;this.queryCount++;1==this.queryCount&&(qrcodeQueryTimeout=new Date,qrcodeCheckNetTimeout=setTimeout(function(){document.getElementById("weixin_wifi_error_tips").innerHTML="\u670d\u52a1\u5668\u7e41\u5fd9
\u8bf7\u4e00\u5206\u949f\u540e\u5237\u65b0\u91cd\u8bd5"; 44 | document.getElementById("weixin_wifi_qrcode_timeout").style.display="block"},30001));this.jsonp("https://wifi.weixin.qq.com/cgi-bin/pollpcresult?ticket="+l,function(k){clearTimeout(qrcodeCheckNetTimeout);1==k.success?f.gotoAuth(k.data):12E4<(new Date).getTime()-qrcodeQueryTimeout.getTime()?document.getElementById("weixin_wifi_qrcode_timeout").style.display="block":f.queryState(l)})},gotoAuth:function(l){-1!=this.opt.authUrl.indexOf("?")?window.location=this.opt.authUrl+"&"+l+"&extend="+encodeURIComponent(this.opt.extend): 45 | window.location=this.opt.authUrl+"?"+l+"&extend="+encodeURIComponent(this.opt.extend)},jsonp:function(l,f){jsonpId++;var k="callback"+jsonpId;window[k]=f;l=-1!=l.indexOf("?")?l+("&callback="+k):l+("?callback="+k);k=document.createElement("script");k.setAttribute("src",l);document.getElementsByTagName("head")[0].appendChild(k)}}})(); --------------------------------------------------------------------------------