微信小程序订阅消息发送消息,点击消息进入小程序页面

发布于:2025-03-19 ⋅ 阅读:(9) ⋅ 点赞:(0)

1、在小程序官网订阅消息选用或创建消息模板获取模板ID可多个

如图:

2、微信小程序前端页面发送请求订阅权限

请求模板id的权限可以是一个可以是多个,用户同意订阅,获取code传递给后端——后端拿到code生成唯一的openid用于发送订阅消息

注意:这里用户拒绝了订阅消息我也传递了code但是并不能发送给用户消息(避免打扰),后续客户如果手动开启订阅消息即可接收不需重新获取code

前端请求权限部分代码:

wx.requestSubscribeMessage({
					tmplIds: [
						'模板id1',
						'模板id2',
						'模板id3'
						],
					success: (res) => {
					  if (res['模板id'] == 'accept') {
						console.log('用户同意订阅');
						this.getCode(); // 同意后获取code
					  } else {
						console.log('用户拒绝订阅');
						this.getCode();//同样把code给到后端避免后面开启通知拿不code
					  }
					},
					fail: (err) => {
					  console.error('订阅失败:', err);
					}
				});
//获取code调用接口传给后端后端生成openid
getCode() {
			    wx.login({
			      success: (loginRes) => {
			        console.log('获取code:', loginRes.code);
			        // 将code发送到后端处理
					const params = {
						code:loginRes.code,
						userId:uni.getStorageSync('user_id'),
					}
					// 将code发送到后端处理
					this.$http.get(this.sendCode, {params:params}).then(res => {
						console.log('codegei后端后',res);
					})
			      },
			      fail: (err) => {
			        console.error('登录失败:', err);
			      }
			    });
			},

后端发送订阅消息及跳转路径

// 示例代码(云函数或服务端调用)
const result = await cloud.openapi.subscribeMessage.send({
  touser: '用户openid',
  templateId: '模板ID',
  page: 'pages/login/login', // 这里填写登录页面的路径
  data: {
    // 模板参数...
  }
});

注意:

1、在 app.json 的 pages 字段中,需包含登录页的路径配置(如 "pages/login/login"),否则跳转会失败

2、若需要带参数跳转:若需传递参数(如来源标识),可在路径中添加,例如 pages/login/login?from=notification

3、消息是由后端发送。

最后真机测试,发送通知消息。

 


网站公告

今日签到

点亮在社区的每一天
去签到