小程序下单积分 120
微信小程序 · 账号与数据
微信登录与 openidwx.login & openid
小程序不用账号密码:登录换来的 openid 是这个人在这个小程序里的身份证;想跨小程序、公众号认出同一个人,要把它们绑到同一个开放平台拿 unionid。
让会员表认出:小程序里的小林和公众号里的小林是同一个人
从三个登录入口里点「微信登录」,花店后端的会员表会就地新增、命中或合并一行;流程条显示 code 怎么换成 openid。
任务:小林在花店小程序下单积了 120 分,又在花店公众号签到积了 80 分。让后端的会员表认出她是同一个人。
公众号签到积分 80
小林也用过这家店
还没有人登录过。表是空的。
登录后这里显示:code → 服务器 → openid。
登录接口把 session_key 一起返回给小程序前端,方便以后在前端解密数据。
会员表按 openid 找人;以后接入公众号时,再存 unionid 合并同一个人。
登录成功后自动读取用户的微信头像和昵称,显示在个人页。
第 1 步:在「花店小程序」入口点「微信登录」,看会员表怎么变。
知识点:面板上刚看到的几件事
只做命名,不再重复操作。
- openid:一个人在「这一个」小程序里的身份证。同一入口反复登录,openid 不变;换一个小程序或公众号,就是另一个 openid。
- code 只能用一次:前端登录拿到的 code 交给服务器换身份,用过就作废;报错里看到 invalid code,先查是不是重复用了。
- unionid:要把几个应用绑到同一个微信开放平台账号下才有;同一个人在这些应用里 unionid 相同,跨应用会员靠它合并。别的公司(另一个开放平台)永远对不上。
- session_key 只留在服务器,不能出现在小程序前端或接口返回里。
- 头像昵称不会随登录自动拿到:要放一个让用户自己填写头像和昵称的入口。
什么时候需要 unionid
先数你有几个微信应用要共用会员。
- 只有一个小程序:用 openid 认人就够,不用折腾开放平台。
- 同时有小程序 + 公众号(或多个小程序、App 微信登录)要通用积分、订单:一开始就把它们绑到同一个开放平台,会员表存 unionid。
- 已经上线、表里全是 openid:先补绑开放平台,再让用户下次登录时补存 unionid,按 unionid 合并,别手工猜。
怎么跟 AI 说、怎么验收
把「认人的范围」说清楚,比说「做个微信登录」有用得多。
- 说清范围:「只有这一个小程序,用 openid 建会员」或「小程序和公众号要通用会员,按 unionid 合并」。
- 点名禁区:「session_key 只存服务器,不返回给前端」「头像昵称让用户自己填」。
- 验收:同一个微信号在两个入口各登录一次,看会员表是 1 条还是 2 条;在接口返回里搜一下有没有 session_key。
正反例:给花店加会员积分
目标一样,只差在有没有说清跨应用认人。
AI 按 unionid 建表,小林从哪个入口进来都是同一个会员,积分合在一起。
AI 只按 openid 建表。等公众号也接进来,同一个人变成两条记录,积分对不上,还得补数据合并。
快速自测
花店又开了第二个小程序「花店礼品卡」,想让礼品卡余额和原来的会员是同一个账户。AI 说「直接用 openid 关联就行」。你怎么判断?
继续查证
术语的技术定义和行为以这些一手或权威资料为准。
下一步学
和本知识点经常一起出现的概念。