shareId 的产生与传递链路

我先全局搜一下 shareId 的写入与读取位置,确认它是在哪里生成并写入缓存的。随后我会并行查看是否有通过 URL 参数或分享参数注入 shareId 的逻辑。

我先打开 App.vue 查看 onLaunch 里如何从查询参数写入 shareId,以确认来源与条件。

我已在全局检索并查看了 App.vue 与 utils/app.js,确认 shareId 的生成与注入逻辑。下面是结论:

shareId 的产生与传递链路

  • 用户 A 生成分享链接时,系统会把他的 userId 写入分享参数 spm:
96:101:utils/app.js 复制代码
export const getShareUrlParams = (params) => {
  let path = util.urlEncode({
    spm: store.getters.userId, // 推荐人ID
    ...params
  })
  return path;
}
  • 用户 B 通过该链接/入口打开小程序,onLaunch 会从启动参数里读取 spm,并写入本地缓存为 shareId:
15:19:App.vue 复制代码
onLaunch(options) {
  // 小程序主动更新
  this.updateManager()
  if (options.query.spm) {
      uni.setStorageSync('shareId', options.query.spm);
  }
},
  • 随后在登录流程中读取本地的 shareId 上传给后端(若没有则传 0):
56:59:pages/login/auth.vue 复制代码
// 提交到后端
store.dispatch('MpWxAuthLogin', { code: app.code, shareId: (uni.getStorageSync('shareId') ? uni.getStorageSync('shareId') : 0) })

简述

  • shareId 实际上来源于别人分享时携带的 spm,该值等同分享者的 userId。

  • 首次进入时由 onLaunch 把 spm 落到本地 shareId,后续登录等场景从本地读取并上送后端用于归因。

  • 本次结论:定位并核对了 spm -> shareId 的落库与读取链路,确认 shareId 来自分享者 userId,通过启动参数注入并在登录时上传。

相关推荐
2301_7807896623 分钟前
跨平台适配!SDK 游戏盾兼容全终端游戏场景
java·网络·ddos
学长毕设1 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
步行cgn2 小时前
FormHttpMessageConverter 详解:Spring MVC 中表单数据的读写转换器
java·spring·mvc
龙亘川2 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
金銀銅鐵2 小时前
[Java] 用 CLI 展示 EnumMap 增删键值对时的内部变化
java·源码·ai编程
秋天的怀念_David2 小时前
第二十二夜 · 数字迷雾
java·程序人生·算法
Raas1003 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品
niucloud-admin3 小时前
NIUCLOUD PHP SAAS上门家政使用文档:城市管理
java·前端·php
霸道流氓气质4 小时前
智能客服组件:分层意图识别、RAG Advisor 与人工转接状态机的 Vue3 + Spring AI 生产级实战
java·人工智能·spring
captain3764 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis