用户 · 会员

平台 / 商家 / 总店 / 分店:用户怎么拆

两套小程序、两条用户;余额跟用户走。不要用同一个 store_id 把平台顾客和商家小程序用户混在一起。

先记四句话

  1. 平台小程序和商家独立小程序不是同一批人。微信 AppID 不同,openid 不同,yjd_user 各写各的,不会合成一条。
  2. 包主写在 yjd_user.mch_id:平台包 = 0,商家独立包 = 总店 ID(请求里的 _zong_mch_id)。
  3. 进了哪家分店写在 yjd_user.branch_id0 = 还在总店,>0 = 分店 ID。不能用它区分平台用户和总店用户。
  4. 余额跟用户表走(独立小程序):结账、个人中心读 yjd_user.moneyyjd_user_mch_balance平台小程序里顾客在某家入驻店的储值,不是商家自己小程序的钱包。

两套小程序,两条用户

平台包和商家包常常共用同一个 yjd_store.id(例如都是 365)。以前只按 store_id 查用户,商家后台会看到平台顾客。现在登录(含不授权头像、正常打开小程序的静默登录)都会把包主写进 mch_id

flowchart TB
  PMP["平台小程序\n_zong_mch_id=0"]
  MMP["商家独立小程序\n_zong_mch_id=总店"]
  PU["yjd_user\nmch_id=0\nmoney=平台余额"]
  MU["yjd_user\nmch_id=总店\nmoney=本店余额"]
  MB["yjd_user_mch_balance\n平台顾客在入驻店的储值"]
  PMP -->|openid A| PU
  MMP -->|openid B 不同| MU
  PU -.->|仅平台包逛入驻店| MB
平台小程序商家独立小程序
出包siteinfo.mch_id = 0siteinfo.mch_id = 总店
微信 AppID平台 yjd_wechat_app商家自己的 yjd_wechat_app.mchid=总店
用户行mch_id = 0mch_id = 总店
会不会重复不会。同一人进两套小程序是两条记录(openid 不同)
何时建用户授权头像,或静默打开(wx.login → passport/login),都会建号并打 mch_id
同一人可以既是平台用户、又是某商家独立小程序用户。后台各看各的,不要把平台号的 mch_id=0 批量改成商家 ID。

总店 / 分店后台看谁

后台看哪些用户条件
平台运营平台小程序用户user.mch_id = 0
连锁总店这个独立小程序的全部用户(含已进分店的人)user.mch_id = 总店
连锁分店进了这家分店的人branch_id = 分店 且包主=总店
普通独立小程序店本店包用户user.mch_id = 本店
平台入驻店(没有自己的小程序)在本店下过单 / 储值 / 购卡的平台顾客关联表,不按包主

例:总店 23778、分店 23818,都在 store_id=365。商家小程序用户 mch_id=23778;进了分店后再写 branch_id=23818。平台小程序用户仍是 mch_id=0

两套余额,不要混

钱包表 / 字段谁在用结账 / 个人中心
平台用户余额 yjd_user.moneymch_id=0 平台小程序 读这张表
商家自己小程序的余额 yjd_user.moneymch_id=总店 商家独立小程序 读这张表(不是 mch_balance)
入驻店储值 yjd_user_mch_balance 平台小程序顾客在某家入驻店充的钱 平台包逛该店时用商家余额支付

商家后台「会员余额」:独立小程序列出本店包用户的 yjd_user.money;没有独立小程序的入驻店列出 yjd_user_mch_balance

登录怎么打标

  1. 请求必须带 _zong_mch_id(商家包由 siteinfo.mch_id 写入)。
  2. passport/loginstore_id + openid + mch_id 找人;找不到再认领同 openid 且 mch_id=0 的旧号(本小程序早期没打标的记录)。
  3. 静默打开、授权头像,都走同一接口,都会写入 mch_id
  4. 已经登录、但库里还是 mch_id=0 的旧号:下次进商家小程序任意接口会自动补上,不必重新授权。

和进店 / 商品文档怎么配合