微信小程序分享实现拉新绑定(用户关系绑定)

2023-11-15

分享人此时已经是登陆状态,所以在分享的时候直接从本地存储中拿到用户的userId并拼接到分享链接上,其他用户在点击链接打开详情页之后会判断当前链接参数中有无uid有的话则直接存入本地中用作新用户登录注册时候请求接口的判断,最后在砍价记录列表的接口中通过isnewUser字段来判断是否显示新用户标识

新用户第一次砍价则显示新用户标识
在这里插入图片描述

流程:

我分享的时候将uid作为参数携带出去,让别人点击我的分享链接,点击进入详情页面后通过截取到分享链接上面的uid然后将其存入本地,当用户点击砍价的时候检测到他未登录注册小程序,然后到登陆页面进行登录,登陆时判断本地是否有uid有的话就给auth/mpLogin这个登录接口传递过去,没有则正常请求,用户第一次砍价完成后我这边砍价记录中会显示他是新用户,他那边自己看记录也会显示新用户标识,第二次分享给他其他商品链接进行砍价时则就没有新用户标识了

再次砍价则不显示新用户标识
在这里插入图片描述

核心代码

//邀请好友按钮
<button open-type="share" v-bind:data-bargainGood="{goodsname, spdetailImg,origin_price,refer_price,already_grade_amount}" class="share">
							<view class="discount">邀请帮砍<image
									src="https://ebk-picture.oss-cn-hangzhou.aliyuncs.com/mini-wx/images/bargain/share.png"
									mode=""></image>
							</view>
						</button>
onLoad(options) {
				console.log(options);
			if (options.uid) {
				this.paramsUid = options.uid;
				uni.setStorageSync('pid',this.paramsUid)
			}
			this.token = uni.getStorageSync('token').token

		},
//分享链接函数		
onShareAppMessage(e) {
			console.log(e)
			var {goodsname,goodsId, spdetailImg,origin_price,refer_price,already_grade_amount}=this
				// console.log(e.target.dataset,'onShareAppMessage');	
			let userId = uni.getStorageSync('userInfo').uid
			 refer_price = '原价'+refer_price/100+'元';
			 already_grade_amount = '现价'+(parseInt(origin_price) - parseInt(already_grade_amount))/100+'元'
			// let already_grade_amount = '当前'+e.target.dataset.bargaingood.already_grade_amount/100+'元'
			return {
				title:`${refer_price}, ${already_grade_amount},${goodsname}`,
				imageUrl:this.spImgList[0],
				path:'pages/bargain/bargainspDetail?uid='+userId+'&goodsId='+goodsId
				}
		},


//全局app.vue中
get_token() {
				let that = this;
				return new Promise(function (resolve, reject) {
					uni.login({ //获取code
						provider: 'weixin',
						success: (res2) => {
							//return false;
							if(uni.getStorageSync('pid')){
								uni.request({
									url: that.globalData.URL + "auth/mpLogin",
									method: 'POST',
									data: {
										version: '251',
										client: 'wxmp',
										code: res2.code,
										pid:uni.getStorageSync('pid')
									},
									success(res) {
										console.log(res.data, '111111111111111111111111');
										if (res.data.status == 'ok') {
											uni.setStorageSync('token', res.data.data);
											that.globalData.is_user_info = res.data.data.is_user_info;
											that.globalData.is_mobile = res.data.data.is_mobile;
											that.globalData.token = res.data.data.token;
											uni.$emit('uptoken', {
												msg: 'token更新',
												data: res.data.data
											})
										}
										that.getUserInfo()
										resolve()
									}
								})
							}else{
								uni.request({
									url: that.globalData.URL + "auth/mpLogin",
									method: 'POST',
									data: {
										version: '251',
										client: 'wxmp',
										code: res2.code,
									},
									success(res) {
										console.log(res.data, '111111111111111111111111');
										if (res.data.status == 'ok') {
											uni.setStorageSync('token', res.data.data);
											that.globalData.is_user_info = res.data.data.is_user_info;
											that.globalData.is_mobile = res.data.data.is_mobile;
											that.globalData.token = res.data.data.token;
											uni.$emit('uptoken', {
												msg: 'token更新',
												data: res.data.data
											})
										}
										that.getUserInfo()
										resolve()
									}
								})
							}
						},
						fail: () => {
							uni.showToast({
								title: "微信登录授权失败22",
								icon: "none"
							});
							uni.reLaunch({
							  url: '/pages/login/login' // 跳转到新的页面
							});
							reject()
						}
					})
				    // 一段耗时的异步操作
				    // resolve('成功') // 数据处理完成
				    // reject('失败') // 数据处理出错
				  }
				)
			},
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序分享实现拉新绑定(用户关系绑定) 的相关文章

  • 让 NppExec 了解 Notepad++ 中当前文件的路径(对于 Python 脚本)

    很长一段时间以来第一次使用 Windows 并使用了 notepad 并使用 nppexec 插件来运行 python 脚本 但是 我注意到 notepad 没有选择保存脚本的目录 例如 我将 script py 放在 我的文档 中 但是
  • 更改文本文件编码

    如何通过代码更改文本文件编码 我正在使用此代码实际创建文件本身 但如何更改编码 更改为 UTF 8 w o BOM string path E Test Example txt if File Exists path File Create
  • 如何从 C:\cygdrive\c\ 更改 git 路径

    如何将 git 路径从 C cygdrive c 更改为 C 或只是 cygdrive c 我已将 notepad 设置为 git 的编辑器 当我尝试执行交互式变基 git rebase i 时 记事本打开 但由于这个奇怪的路径 包括 C
  • 任何自动保存文档版本的 Notepad++ 插件 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道有什么记事本 插件可以定期保存我正在处理的内容的版本吗 理想情况下 它会保存许多版本 并在标题
  • 使用Notepad++编译Java代码

    我一直在尝试将 Notepad 设置为一个小型 Java 环境 主要是为了学习 Java 因为我在获得一个与 NetBeans 一起使用的简单程序时遇到了一些困难 不幸的是 所有关于设置 Notepad 来调用 Java 代码的建议都不起作
  • 如何设置新语言 IDE

    在工作中 我们使用专有语言 并使用带有简单代码突出显示的 Notepad 进行编程 这真的很烦人 所以我想做的是花一些时间来设置一个文本编辑器或现有的 IDE 来支持我的语言 我在谷歌上搜索了很多 有很多选择 在开始工作之前我想问你什么是最
  • 在 Notepad++ 中格式化代码

    Notepad 中是否有用于格式化代码的键盘快捷键 我主要处理 HTML CSS 和 Python 代码 例如 To
  • VS2015 或 NP++ 中的多行正则表达式

    我需要在多个文件中替换以下模式 this dialogs 当我设置时这工作正常single line在这里标记 https regex101 com r dF2yG3 2 https regex101 com r dF2yG3 2 但是我无
  • 使用 Notepad++ 删除 : 之后少于或等于 5 个字符的行

    问题是这样的 使用 Notepad 删除 之前少于 5 个字符的行 https stackoverflow com questions 50463273 remove lines that is shorter than 5 charact
  • Mercurial 和 Notepad++ 集成

    Notepad 是否有插件可以与 Mercurial 和 TortoiseHg 集成 如果将以下内容添加到我们的配置文件中 您可以使用 Notepad 打开文件 tortoisehg editor
  • Notepad++:块注释不起作用

    I am running Notepad 5 8 5 on Windows 7 editing Perl programs I would like to comment out a block of text lines and late
  • win32com(python)错误

    我正在尝试在记事本中为我正在处理的程序自动执行操作 但我无法弄清楚我收到的错误消息 import os import win32com object win32com client Dispatch Notepad Application
  • 将 Excel 行输出到一系列文本文件

    在 Excel 中 我在 A 列中有一个文章名称列表 在 B 列中有一个免责声明 现在 对于 A 列中的每篇文章 我想创建一个文本文件 A 是文件的标题 B 是文件的标题 免责声明是文件的内容 这可能吗 我的想法是 我有数百个这样的东西 我
  • 如何消除批处理文件动画中的闪烁? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 因此 我一直在批量制作一个假 GUI 以作为我正在做的 YouTube 评论的结尾 它基本上是一堆方框
  • 将多个文件从每个可能的 EOL 转换为 CRLF

    我的文件包含所有可以想象到的 EOL 我想一次性将它们标准化 而不是像我们谈论几千个那样一个接一个地进行 我知道如何手动完成它们 所以请不要解释 我认为所有可能的情况是 从最常见到最不常见 CRLF LF CR CRLF CRCR CRLF
  • 为 .API 文件启用自动完成功能?

    有谁知道如何使用 N 站点上提供的 API 文件在 Notepad 中自动完成工作 在 API 文件夹中具有 XML 自动完成文件的语言中 自动完成功能工作得很好 但对于使用 API 文件的语言 ruby AutoIt 等 完全不起作用 根
  • Notepad++ 下划线标签

    Notepad 似乎在标签下划线 包括打开和关闭 但到目前为止我只找到了它的一个实例 有人知道是什么原因造成的吗 目前的方法 要在 Notepad 中禁用链接下划线 Go to Settings gt 优先 gt 云与链接 gt 可点击的链
  • 通过插件管理器在 Notepad++ 中配置代理设置

    我想在 Notepad 中配置代理设置 以允许通过代理从互联网下载 在从网上搜索如何执行此操作后 我了解到我需要通过 设置 按钮在插件管理器中执行此操作 当我转到插件 gt 插件管理器 gt 显示插件管理器 gt 设置时 我看到下面的对话框
  • Notepad++保存时可以自动上传本地文件到服务器吗?

    我使用 Notepad 及其 NppFTP 插件 我需要保持本地副本最新 因此我编辑本地文件然后将它们上传到服务器 我想知道是否有一种方法可以让 Notepad 在保存文件后立即自动将文件上传到服务器 而无需按另一个按钮 我愿意使用其他 F
  • SimpleCursorAdapter 的替代品?

    我正在查看 Android 开发者网站上的记事本教程 并注意到SimpleCursorAdaptor已弃用 新的构造函数 public SimpleCursorAdapter Context context int layout Curso

随机推荐

  • 关于计算机的小故事案例,小故事分镜头脚本范例两分钟4399奶块电脑

    PublicSubFocusMe ctlNameAsControl WithctlName SelStart 0 SelLength Len ctlName EndWith EndSub Nowaddacalltothissubroutin
  • zigzag扫描的matlab实现

    zigzag扫描的matlab实现 zigzag的扫描方式如下图所示 以 4 4 为例 下图是matlab中数组各位置的索引值 用横纵坐标来分析 2 3 4 5 6 7 8 1 1 1 2 3 1 4 1 4 2 3 4 4 4 2 1 2
  • 局域网、以太网、无线局域网学习笔记

    还有一年选择院校 加油 文章目录 局域网基本概念和体系结构 局域网 局域网拓扑结构 局域网的传输介质 局域网介质访问控制方法 局域网的分类 IEEE 802 MAC子层和LC子层 小结思维导图 以太网 以太网概述 以太网提供无连接 不可靠的
  • 通过按钮动态改变 el-dialog 的宽度

    1 按钮
  • Ubuntu不能进入NTFS分区(error mounting)

    Ubuntu不能进入NTFS分区 error mounting 装了Windows10与Ubuntu双系统后 在Ubuntu系统下想进入Windows的某个NTFS分区 点击时却出现下面错误 也可能在挂载移动硬盘时出现如下错误 Error
  • 金蝶KIS专业版二次开发探索

    1 前言 作为软件服务 有时候我们接受的任务是一个全新的 开发团队内没有人有相关经验的这么一个任务 这时候无论对于我们本身还是对于团队来说 都面临着一个新的挑战 如何在没有做过此类任务情况下凭借一些基本经验完成任务 顺利实现给客户的交付 我
  • 智能合约漏洞——短地址攻击

    基础知识 严格意义来说 短地址 参数攻击并不算智能合约的漏洞 这是一个应用上的接口数据处理问题 在介绍过得ERC20模板智能合约 其中有个transfer函数 其定义如下 function transfer address to uint2
  • WinForm 编程中控件的使用小技巧(splitter实现窗口分区域,改变Button的形状)

    一 Splitter 控件的主要作用就是将窗口分区并可以调节区域大小 比如 我想将窗口分为左右两个区域 并可以调节两个区域所占的比例 操作流程如下 1 新建一个窗口 Form1 2 在Form1中添加一个Panel控件Panel1 并将其D
  • IPv6的基本配置

    p拓扑图 AR1 interface GigabitEthernet0 0 0 ipv6 enable ipv6 address 2000 1 64 ipv6 route static 3000 64 2000 2 静态路由 AR2 int
  • BES2300x笔记(4) -- TWS组对与蓝牙配对(Peer or Pair傻傻分不清)

    哈喽大家好 这是该系列博文的第四篇 篇 lt lt 系列博文索引 快速通道 gt gt 首先上一个链接 TWS耳机火遍华强北 为何干不过苹果AirPods 一 前言 看到有 道友 在评论区留言 对TWS组对 BT配对以及回连流程部分很迷糊
  • PostgreSQL源码结构

    PostgreSQL的使用形态 PostgreSQL采用C S 客户机 服务器 模式结构 应用层通过INET或者Unix Socket利用既定的协议与数据库服务器进行通信 另外 还有一种 Standalone Backend 使用的方式 虽
  • Linux系统下JDK17安装+环境配置

    我们进入到cd usr lib 下然后创建一个jdk17的文件夹 mkdir jdk17 进入到jdk17目录下 下载jdk17包 wget https download oracle com java 17 latest jdk 17 l
  • 1600*C. Slava and tanks(思维)

    解析 如果n为奇数 则偶数位为奇数位少 1 则先轰炸偶数位 再轰炸奇数位 再一次轰炸偶数位 如果n为偶数 则任意顺序 于是无论奇偶 全部按照 偶 奇 偶 轰炸 则总次数为 n n 2 下取整 include
  • 使用python读取excel中的数据,并绘制折线图

    使用python读取excel中的数据 并绘制折线图 做实验的时候采集到一些数据 从文本拷贝到excel 然后从十六进制转换成十进制 图表是分析数据的有利工具 使用python绘制出的图表简明美观 所以我这次尝试一下 python新手 请多
  • WORD表格合并单元格并居中对齐

    捯饬了挺久 一直不能居中 表格的中间 1 合并单元格 然后就一直这样 解决方案
  • c语言输入一行未知个数数字存入数组

    转载https www cnblogs com wd1001 p 4826855 html 一直有个疑问输入一行数字存入数组时若不知道数字的个数怎么办 最容易想到的办法就是接收字符然后转化为数字 但这样太过麻烦 今天上网查了下 说可以用un
  • Eigen::aligned_allocator

    如果STL容器中的元素是Eigen库数据结构 例如这里定义一个vector容器 元素是Matrix4d 如下所示 vector
  • Apifox接口测试工具详细解析

    最近发现一款接口测试工具 apifox 我我们很难将它描述为一款接口管理工具 或 接口自测试工具 官方给了一个简单的公式 更能说明apifox可以做什么 Apifox Postman Swagger Mock JMeter Apifox的特
  • 怎么加入Microsoft Cloud Partner Program?

    目录 一 Microsoft Cloud Partner Program是什么 二 Microsoft Cloud Partner Program的优势 1 技术支持 2 销售和市场支持
  • 微信小程序分享实现拉新绑定(用户关系绑定)

    分享人此时已经是登陆状态 所以在分享的时候直接从本地存储中拿到用户的userId并拼接到分享链接上 其他用户在点击链接打开详情页之后会判断当前链接参数中有无uid有的话则直接存入本地中用作新用户登录注册时候请求接口的判断 最后在砍价记录列表