科普:微信点餐

今天看广东卫视《今日关注》栏目时,遇到一个消费者普遍关心且充满疑惑的问题,刚好我能从软件开发与系统设计的视角来做一番拆解:

微信点餐真的需要用户强制关注公众号、注册会员、提供手机号码甚至开放地理位置信息吗?

先说结论:从纯粹的软件工程与技术实现角度来说,这些通通都不是必需的。

桌上贴的二维码加上微信自身的底层协议,完全可以做到行云流水的“扫码即点、付款即走”,全程不需要弹任何打扰用户的授权框。

但既然技术上完全能做到零门槛,为什么几乎所有餐饮商家与点餐系统开发商,还是千方百计地设置层层阻碍,非要获取你的手机号和关注呢?我们不妨从系统底层架构与商业闭环两个维度来层层拆解。


一、技术还原:完成一次点餐,系统底层到底需要什么?

在微信生态(公众号网页 / 小程序)下,开发一个点餐系统,核心数据链路其实非常精简:

1
2
3
4
5
6
7
[餐桌二维码 (含桌号 table_id)] 
│
▼ 微信扫一扫
[静默获取 OpenID (无感知鉴权)]
│
▼
[生成临时购物车 (table_id + OpenID)] ──> [调起微信支付] ──> [厨房出单]

1. 识别“你在哪桌”:餐桌二维码参数

商家贴在桌角上的二维码本身就带有参数(如 https://menu.order.com/?table_id=A08)。扫码的那一瞬间,前端系统就已经精准捕获了你所在的物理桌号。

2. 识别“你是谁”:微信静默授权(snsapi_base)

微信提供了两种网页授权机制:

  • 静默授权(snsapi_base):用户界面完全没有任何弹窗提示,页面自动重定向并在 URL 参数中拿到临时 code。服务端拿着 code、appid 和 appsecret 向微信后台换取该用户的唯一 OpenID。
  • 非静默授权(snsapi_userinfo):需要用户手动点击绿色按钮,确认授权昵称、头像以及性别地区等资料。

对于点餐系统而言,OpenID 是每个用户在当前公众号/小程序下的全局唯一标识。只要拿到 OpenID,系统就能在数据库里为你建立临时购物车,并作为唯一凭证调起微信支付(JSAPI 或小程序原生支付)。

📌 技术结论:只要拿到 table_id 和 OpenID,点餐与支付的最小闭环就已 100% 成立。强制关注公众号、弹窗索取手机号、要求授权精确地理位置,纯粹是业务流程中人为设定的拦截门槛,绝非技术限制。


二、架构与商业真相:为什么系统设计者非要手机号?

既然技术上不需要,为什么大大小小的餐饮系统依然冒着被用户吐槽的风险,死死卡住“手机号”这一关?

抛开“数据多多益善”的直觉理解,站在企业级 IT 架构与用户体系设计的深水区,主要有以下三层硬核原因:

1. 跨异构平台的“唯一全局主键(Primary Key)”

这是后端架构中最核心的痛点。

一个稍微正规一点的餐饮品牌,其数字化触点绝不仅仅局限在一个微信公众号内:

  • 线上:微信小程序、美团外卖、饿了么、抖音团购、自研 App;
  • 线下:前台收银 POS 机、自助点餐大屏、会员实体卡。

问题在于,各个平台给出的用户标识完全是割裂互不相通的孤岛:

  • 微信生态内部有 OpenID,同一公司名下不同应用有 UnionID;
  • 但美团根本不知道什么是 UnionID,收银台硬件也无法直接读取手机的微信底层身份。

在当今的互联网体系中,唯一能横跨微信、美团、抖音、线下收银台,证明“张三就是张三”的全局唯一主键,只有手机号码。有了手机号,系统才能打通:

“你在美团买的优惠券,在微信扫码点餐时可以核销,在线下前台买单时可以累计统一积分。”

2. 对抗第三方平台绑架,沉淀自主私域资产

微信对企业来说,终究是第三方的外部基础设施。

  • 如果企业所有的用户数据仅仅建立在微信 OpenID 之上,一旦公众号因为违规、误判发生封禁,或者用户随手点了“取消关注”,企业和该客户之间的连接链条瞬间彻底断裂,多年的经营付之一炬。
  • 此外,公众号模板消息的发送有诸多配额与场景限制。而沉淀在企业私有 CRM 数据库里的手机号,是企业完全自主可控的数据资产。即使微信生态出现波动,企业依然可以通过短信通知、专属客服等渠道进行全生命周期的营销与召回。

3. 短信验证码的实名防刷机制

餐饮业面临着恶作剧下单、竞争对手恶意锁台、羊毛党批量刷爆新用户首单优惠券等黑产风险。

绑定并校验手机号码,能够大幅提高恶意攻击者的对抗成本,确保下单主体是真实可追溯的自然人,为后端的防刷风控(Risk Management)提供基础兜底。


三、为什么大型连锁餐饮(肯德基、星巴克等)还需要地理位置?

单体街边小餐馆索要定位确实存在设计过度的问题,但对于大型全国连锁餐饮品牌而言,获取地理位置往往是服务路由与多仓库存调度的核心参数:

  1. 就近门店智能路由:
    • 连锁品牌的每个实体门店拥有独立的库存状态(某款咖啡在 A 门店已售罄,但在 B 门店仍有充足原料);
    • 各门店当前的出餐拥堵排队时间、甚至不同核心商圈的菜品定价都存在差异。
  2. 防错单保护:
    • 如果用户通过公众号主页直接打开点餐入口,由于没有扫桌码,系统必须通过 GPS 坐标自动筛选出离用户最近的门店进行匹配,防止出现“顾客人在广州天河,却误把单子下到了越秀区门店”的乌龙。

四、写在最后:良好系统设计应有的克制与平衡

回顾整个扫码点餐的技术演进,技术原本是为了降低沟通成本、提高翻台率与服务效率而生。

但在商业利益与用户体验的拉扯中,很多产品走入了“一次性竭泽而渔”的误区——把所有索取权力的动作全部前置,甚至“不授权手机号就不给看菜单”。这种把商业诉求凌驾于用户基础体验之上的设计,往往适得其反,引发用户的极度防备与反感。

一个优秀的架构设计与产品流程,应当遵循**渐进式授权(Progressive Profiling)**原则:

  • 主路径极简:扫码进入,基于桌号和静默鉴权立刻呈现菜单,零阻碍完成选餐、下单和用餐;
  • 增值体验后置:在最后的结算或领券阶段,通过合理的价值互换(如提示“绑定手机号可享本单立减 5 元并累积会员积分”),将授权的主动权交还给用户。

只有保持系统设计的克制与边界感,数字化的便利才能真正让人感到舒适与体面。


参考资料与延伸阅读

1. 微信生态开发官方规范

2. 数字化会员系统与渐进式架构


科普:微信点餐
https://bubao.github.io/posts/d429dfce.html
作者
一念
发布于
2021年3月15日
许可协议