NatShell 蓝海卓越 返回首页
马上咨询

行业动态与技术知识

Portal计费系统对接微信扫码登录的实操

微信扫码登录Portal,是近几年公共WiFi最顺手的一种认证方式。用户连上WiFi,手机弹出Portal页,扫一下二维码就上线,不用输手机号、不用等验证码。对商场、医院、政务大厅这类流动人群场所,扫码登录把认证门槛降到了最低。但真正把它跑通,要在公众号配置、OAuth授权、账号绑定几个环节上把细节做对,否则扫码之后卡在某个环节,比输验证码还烦。

公众号和服务号的配置前提

扫码登录依赖微信的网页授权能力,前提是有一个认证过的服务号,并且在微信后台配好授权回调域名。这个域名必须和Portal系统的访问地址一致,否则微信会拒绝授权。很多项目上线卡住,就是因为回调域名填了内网IP或者漏了备案,微信侧直接报错。Portal系统部署前,要把域名备案和HTTPS证书这两件事提前办妥,它们是扫码登录的地基。

还有个常见坑是测试号和正式号混用。开发阶段用测试公众号调通了,上线切到正式服务号,发现接口权限不一样,扫码后拿不到用户信息。服务号的网页授权接口需要单独申请开通,不是默认就有,这个要在项目排期里留出申请时间,别等到上线前才发现。

OAuth授权拿到什么、怎么用

用户扫完码,微信跳转到授权页,用户点同意,Portal系统拿到一个code,用它换取access_token,再换到用户的openid。openid是同一个公众号下用户的唯一标识,Portal计费系统用它作为计费账号的关联键。这里要注意,openid是跟公众号绑定的,换一个公众号openid就变了;如果要跨应用识别同一个人,得用unionid,而unionid需要公众号绑定到同一个微信开放平台账号。

拿到openid之后,Portal系统内部要建一张映射表,把openid和计费会话关联起来。这样用户下次扫码,系统能识别是老用户,直接恢复或者新建会话。映射表要不要落实名,取决于合规要求。纯扫码只拿到openid,没有手机号,严格说实名强度弱于短信认证,这点要根据场所性质权衡。

合规取用户信息要节制

微信授权有snsapi_base和snsapi_userinfo两种scope。前者只拿openid,静默授权不弹窗,体验最好;后者能拿昵称头像,但会弹授权页让用户确认。Portal登录为了顺畅,多数用snsapi_base就够了,真要昵称头像再单独申请。过度索取用户信息,既增加授权阻力,也带来个人信息保护的合规负担,公共场所没必要。

扫码之后的会话保持

扫码成功只是第一步,会话怎么保持才是体验关键。用户锁屏再开,Portal应该靠token续期恢复会话,而不是让用户再扫一次。token的有效期和免费时长要配套,别出现扫码上了网,五分钟就被踢重新扫的尴尬。Portal系统要支持扫码会话的静默续期,这部分和前面说的token机制是同一套逻辑。

微信扫码登录Portal,技术上不复杂,复杂在把公众号配置、授权流程、账号绑定、会话保持这几环串成一条顺畅的链路。哪环断了用户都感知得到。上线前用真机走一遍完整流程,比看文档确认十遍都管用。扫码登录的爽,是建立在这条链路每个节点都稳的基础上的。

扫码失败要有兜底,多号要能认人

微信接口偶发抖动时,扫码后拿不到openid,Portal必须能降级到短信或者账号密码登录,不能让顾客卡死在登录页。兜底通道要在上线前反复测,尤其要模拟微信侧超时,确认Portal真的会切到备用认证而不是一直转圈。很多项目只验证了正常路径,真到现场才暴露兜底缺失。

连锁品牌可能运营多个公众号,想识别同一个人,得把这些公众号绑定到同一个微信开放平台,用unionid而不是openid做关联键。Portal系统要支持按unionid维护用户,否则顾客在A店扫过码,到B店又要重新认,体验上像两家完全不同的商场。这部分要在项目规划阶段就定清楚,后期再改代价很大。

Portal扫码页要有清晰的用户指引。不少顾客看到二维码不知道扫,或者用系统相机扫了没反应,以为WiFi坏了。页面上放一句明确的提示如微信扫一扫,扫码成功率能高一大截。iOS设备对captive portal的处理和安卓不同,弹出的登录页有时不会自动唤起微信,要做针对性兼容,否则iPhone用户扫码体验会打折。

还有个边角情况是用户微信没登录或者版本过低,扫码后授权页打不开。Portal要检测这种异常并给出替代方案,而不是停在报错页。扫码登录的顺畅,七成靠配置,三成靠这些异常分支的处理,上线前把这些分支都走一遍,体验才真的无缝。

扫码登录拿到的openid回传到会员系统之后,要做去重和合并。同一个顾客可能换手机、清缓存,产生多个openid,如果不合并,会员画像会出现一堆僵尸账号,营销触达也准不了。Portal侧在绑定环节就应该支持按手机号或者unionid做账号归一,把重复身份并到同一个人身上。这部分逻辑要在上线前和业务系统对齐,后期再清洗数据成本高得多。

在线咨询 电话咨询
在线咨询 电话咨询