当前位置:K88软件开发文章中心编程全书微信小程序 → 文章内容

微信Wi-Fi硬件鉴权协议接口说明

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-26 15:47:56

。3. 防止IOS自动弹出portal页为了防止IOS切换ssid时自动弹出portal页,请将IOS的嗅探地址“http://captive.apple.com/hotspot-detect.html”放入白名单。4. 下载物料二维码完成portal server改造后,调用“获取物料二维码”接口,下载该门店二维码,张贴于店内,顾客即可扫码连Wi-Fi。移动端portal页示例Demo请参考示例Demo,进行移动端Portal页面改造(JS代码直接在页面中)请用手机浏览器打开以下链接(可手动输入,也可扫码获得链接地址):https://wifi.weixin.qq.com/operator/demoNew.xhtml如果用微信扫码,请点击有右上角按钮,选择“在浏览器中打开”页面,不要直接在微信浏览器中体验。常见问题1. 部分安卓手机的web浏览器无法自动呼起微信客户端6.2.5以上的Android版微信已经支持手动打开客户端后继续进行连接流程的功能,为保证此流程顺畅进行,开发者需注意以下几点:1.保证微信客户端版本为6.2.5以上的Android版微信;2.参考示例demo中jsapi的写法,在无法自动跳转微信客户端时弹出提示,让用户手动切换到微信;3.在portal页面中调用微信jsapi时,需保证AP设备的ssid和手机mac这2个参数真实有效;4.测试过程请从切换到目标ssid动作开始(例如:原来为3G或4G网络然后手动选择目标ssid,原来为非目标ssid的wifi信号然后手动选择目标ssid,等等)。2. IOS从portal页面跳转到微信后如何保证手机仍保持在目标ssid下?IOS系统为了保证Wi-Fi是可用的,在用户选择完一个ssid后不会马上切换过去,而是会嗅探通过该ssid是否能触达公网上的预设服务,如果能嗅探到才真正显示连接该ssid。在弹portal的AP环境中,这点正好被用来弹出portal页面,如果在portal页面上完成了认证,则在portal右上方的提示会由“取消”变为“完成”,如果在“取消”状态下离开这个界面,那么刚刚选择的ssid将会被断开,回到上一个可用的连接,而如果在“完成”状态下离开这个界面则不会断开。由于通过微信认证时,会由portal界面跳转到微信,所以确保portal右上角的“完成”状态是个前提。开发者需要注意以下几点:1.确保弹出portal后,临时放行手机的所有流量;2.临时放行手机的所有流量后,局部或整体刷新portal页面触发IOS再次进行嗅探;3.IOS嗅探可以正常触达公网上的预设服务后“取消”变为“完成”;4.以上动作完成后,再调用跳转微信的JSAPI,继而跳转微信完成认证连接流程。PC端实现流程请按照以下步骤操作,即可在PC端使用微信连Wi-Fi。第一步:获取门店Wi-Fi信息实现PC连Wi-Fi的第一步,是获得门店Wi-Fi信息,包括:appId,shop_id。有两种获取门店Wi-Fi信息的方法:1. 页面操作获得在微信公众平台开通微信连Wi-Fi插件,在【设备管理】->【添加设备】里,添加“新增微信方式连网+连网后近场服务”->”Portal型设备”;添加成功后即可获得门店Wi-Fi参数信息。已添加设备也可在【设备详情】->【查看设备改造信息】中,获得门店Wi-Fi参数信息。2. 通过接口获得调用“获取WiFi门店列表”接口获得shop_id,即设备要添加到的门店的ID。第二步:改造PC端portal页若连网设备为PC,在portal页中引用下述微信JSAPI,让原有的Wi-Fi portal页具备呼起微信的能力:<script type="text/javascript"    src="https://wifi.weixin.qq.com/resources/js/wechatticket/pcauth.js" ></script>调用JSAPI生成二维码,具体示例代码如下: <script type="text/javascript">    JSAPI.auth({    target : document.getElementById('qrcode_zone'),        appId : 'wx23fb4aaf04b8491e',        shopId : 6747662,        extend : 'wechatpc',        authUrl : 'http://wximg.qq.com/tmt/wifi-landing-pc/dist/html/index-success.html'    });</script>参数说明参数是否必须说明target是二维码图片放置位置appId是商家微信公众平台账号shopId是即shop_id,设备所在门店的ID(微信公众平台门店)extend是extend里面可以放开发者需要的相关参数集合,最终将透传给运营商认证URL。extend参数只支持英文和数字,且长度不得超过300个字符。authUrl是认证服务端URL,微信客户端将把用户微信身份信息向此URL提交并获得认证放行第三步:支持PC端白名单放行AP/AC须对PC做白名单放行,以支持portal页面引用jsapi,以及轮询微信后台并获取openid和tid。请对微信连Wi-Fi的URL做白名单支持,URL为:https://wifi.weixin.qq.com/以支持:1.引用jsapi:https://wifi.weixin.qq.com/resources/js/wechatticket/pcauth.js2.轮询微信后台获取openid和tid:https://wifi.weixin.qq.com/cgi-bin/pollpcresult第四步:支持移动端临时放行上网请求请参考移动端实现流程的第三步,支持移动端临时放行上网请求。第五步:接受微信身份认证放行请参考移动端实现流程的第四步,接受微信身份认证并放行。PC端portal页示例Demo请参考示例Demo,进行PC端Portal页面改造(JS代码直接在页面中):https://wifi.weixin.qq.com/operator/demoForPc.xhtml离线认证方式Wi-Fi环境无法做到临时放行用户流量用于与微信后台通信,可采用离线认证方式实现。请按照以下步骤操作,即可在移动端使用微信连Wi-Fi。模块时序图  若无法看清图中文字,可先通过“图片另存为”将图片保存到本地,再放大查看第一步:获取门店Wi-Fi信息请参考移动端实现流程的第一步,获取门店的Wi-Fi信息。第二步:改造移动端portal页在portal页中引用离线呼起微信的链接,让原有的Wi-Fi的portal页具备呼起微信客户端的能力。链接格式具体如下: function callWechatBrowser(){var appId = getParam('appId');var shopId = getParam('shopId');var authUrl = getParam('authUrl');var extend = getParam('extend');var timestamp = getParam('timestamp');var sign = getParam('sign');var weixinUrl = 'weixin://connectToFreeWifi/?apKey=_p33beta&appId='+appId+'&shopId='+shopId+'&authUrl='+authUrl+'&extend='+extend+'×tamp='+timestamp+'&sign='+sign;window.location=weixinUrl;}参数说明参数是否必须说明appId是商家微信公众平台账号shopId是即shop_id,设备所在门店的ID(微信公众平台门店)authUrl是认证服务端URL,微信客户端将把用户微信身份信息向此URL提交并获得认证放行。authUrl的值是经过Url编码的,如:http%3A%2F%2F192.168.1.1%2Fauth.html%3Ft%3Dabc%26s%3D123extend是extend里面可以放开发

上一页  [1] [2] [3]  下一页


微信Wi-Fi硬件鉴权协议接口说明