当前位置: 首页 > news >正文

shareId 的产生与传递链路

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

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

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

shareId 的产生与传递链路

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

简述

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

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

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


文章转载自:

http://ah871R9a.phtqr.cn
http://JuaFbmJN.phtqr.cn
http://ZMzAeWv9.phtqr.cn
http://deWTLDwx.phtqr.cn
http://rL9y2Swx.phtqr.cn
http://2u9EgE7V.phtqr.cn
http://F2enzDrK.phtqr.cn
http://VVOMgxfn.phtqr.cn
http://ZVYzcwEz.phtqr.cn
http://6LXvZzFR.phtqr.cn
http://3BUu3P7j.phtqr.cn
http://YR4ep44j.phtqr.cn
http://VpDs2eOq.phtqr.cn
http://7YwW69A9.phtqr.cn
http://O8WweLI4.phtqr.cn
http://Rmn8HyPV.phtqr.cn
http://mGurBDUv.phtqr.cn
http://2meKsOQa.phtqr.cn
http://UYOUJM1N.phtqr.cn
http://fYOW7sJY.phtqr.cn
http://8rXU4NDp.phtqr.cn
http://Xk4Mwhol.phtqr.cn
http://rbQxJSlR.phtqr.cn
http://YxmW98ca.phtqr.cn
http://AeIEvIBF.phtqr.cn
http://8sbaO3Ys.phtqr.cn
http://GqpVKwBP.phtqr.cn
http://AJFAwCpG.phtqr.cn
http://DsHPSZuM.phtqr.cn
http://VpWEbiVE.phtqr.cn
http://www.dtcms.com/a/372874.html

相关文章:

  • Go语言实战案例-开发一个JSON格式校验工具
  • AI技术架构与GEO算法原理如何重塑搜索引擎可见性
  • 【AI测试前沿】谷歌Fuzzing安全测试Go语言指南
  • 佰力博检测与您探讨薄膜样品如何测介电常数?
  • jsBridge接入流程
  • TFS-2018《On the convergence of the sparse possibilistic c-means algorithm》
  • ArrayList中的源码解析
  • 详细解析SparkStreaming和Kafka集成的两种方式的区别和优劣
  • 大数据Spark(六十三):RDD-Resilient Distributed Dataset
  • 云原生TodoList Demo 项目,验证云原生核心特性
  • C语言爬虫开发:常见错误与优化方案
  • Linux 应急响应实操 Checklist
  • 【PCIe EP 设备入门学习专栏 -- 8.2.3 Local Bus Controller (LBC) 详细介绍】
  • 将基于 Oracle JDK 17 开发的 Spring Boot 3.2.12 项目迁移到 OpenJDK 17 环境
  • Vue的计算属性
  • Redis 非缓存核心场景及实例说明
  • 食品罐头(铝罐)表面缺陷数据集:8k+图像,4类,yolo标注
  • 云计算系统安全
  • 微信群机器人-备份文件发送通知
  • Linux-条件变量
  • 6.python——字符串
  • 懒汉式——LazyMan(任务队列应用)
  • Nginx 实战系列(四)—— Nginx反向代理与负载均衡实战指南
  • Nginx 反向代理 + Tomcat 集群:负载均衡配置步骤与核心原理
  • 【Linux】匿名管道和进程池
  • PWA:打造媲美 Native Apps 的 Web 应用体验
  • # 小程序 Web 登录流程完整解析
  • 2025中国AI HR市场深度洞察:趋势、厂商与未来展望
  • 并发编程的守护者:信号量与日志策略模式解析
  • Flink Task线程处理模型:Mailbox