小程序实现订阅功能和测试发送订阅信息

news/2024/7/20 2:03:48 标签: 小程序, 微信小程序

现在一次性订阅是只能用户点一次才能发送一次,而针对长期模板只有规定的几种类目政务、民生、交通等等的才可以,所以说感觉这功能其实已经不是很适合使用了,只适合一些特别的场景才可以使用。

地址:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/subscribe-message/wx.requestSubscribeMessage.html

在这里插入图片描述

一、先去小程序管理后台,添加订阅模板

在这里插入图片描述

二、页面让用户点击订阅(wx.requestSubscribeMessage

在这里插入图片描述

<button slot="right-icon" type="primary" @click="alarmSubScrube" size="mini">{{alarmStatus ? '已订阅':'立即订阅'}}</button>

方法

alarmSubScrube(e){
    wx.requestSubscribeMessage({
      tmplIds: ['模板ID'],
      success (res) { 
          console.log(res);
          if (res['模板ID'] == 'accept') {
              this.alarmStatus = true
            wx.showToast({
              title: '订阅成功',
              icon: 'success',
              duration: 2000
            })
          } else if (res['模板ID'] == 'reject') {
              this.alarmStatus = false
            wx.showToast({
              title: '用户取消订阅',
              icon: 'error',
              duration: 2000
            })
          } else if (res['模板ID'] == 'ban') {
              this.alarmStatus = false
            wx.showToast({
              title: '订阅已被封禁',
              icon: 'error',
              duration: 2000
            })
          } else if (res['模板ID'] == 'filter') {
              this.alarmStatus = false
            wx.showToast({
              title: '订阅模板错误',
              icon: 'error',
              duration: 2000
            })
          }else {
              this.alarmStatus = false
            wx.showToast({
              title: '订阅失败',
              icon: 'error',
              duration: 2000
            })
          }
      },
      fail (err) {
          this.alarmStatus = false
          wx.showToast({
            title: err.errCode + err.errMsg,
            icon: 'error',
            duration: 2000
          })

      }
    })
},

三、发送订阅信息(使用postman来测试)

地址:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/mp-message-management/subscribe-message/sendMessage.html

在这里插入图片描述

(1)从参数可以看到,我们要先拿到access_token

接口:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential

在管理后台获取小程序的appID和secret密钥

在这里插入图片描述

(2)获取用户的openID

在页面调用wx.login

实际业务逻辑应该是用户在页面出发wx.loin的时候获取到的code,然后后端请求获取到openID,存在用户信息上

(3)发送订阅信息

接口:https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=上面获取到的token

参数

{
	"touser": "用户openID",
	"page": "pages/warnInfo/warnInfo?id=9ec7c41c16db4a0eb29396bc6db79e77", //点击通知进入的页面
	"lang": "zh_CN",
	"data": {
        //这些字段都是有字符要求的,请仔细看文档
		"character_string6": {
			"value": "SH079600022031"
		},
		"thing1": {
			"value": "测试"
		},
		"thing2": {
			"value": "扬尘噪声黄色报警"
		},
		"time3": {
			"value": "2023-10-19 01:00"
		},
		"thing4": {
			"value": "监测到pm.25达到82.0 ug/㎡"
		}
	},
	"template_id": "模板ID",
	"miniprogramState": "trial" //developer为开发版;trial为体验版;formal为正式版;默认为正式版
}

在这里插入图片描述

(4)错误码

在这里插入图片描述

(5)效果

在这里插入图片描述

以上就可以实现用户点击订阅,然后我们用postman调试了,但是实际上这些调用应该是在服务端调用,防止信息泄露。


http://www.niftyadmin.cn/n/5475779.html

相关文章

Python爬虫:为什么你爬取不到网页数据

目录 前言 一、网络请求被拒绝 二、数据是通过JavaScript加载的 三、需要进行登录 四、网站反爬虫策略 五、网站结构变更 总结 前言 作为一名开发者&#xff0c;使用Python编写爬虫程序是一项常见的任务。爬虫程序的目的是收集互联网上的数据&#xff0c;并将其保存或使…

AcWing 1388. 游戏(每日一题)

原题链接&#xff1a;1388. 游戏 - AcWing题库 玩家一和玩家二共同玩一个小游戏。 给定一个包含 N 个正整数的序列。 由玩家一开始&#xff0c;双方交替行动。 每次行动可以在数列的两端之中任选一个数字将其取走&#xff0c;并给自己增加相应数字的分数。&#xff08;双方…

数据同步工具datax安装配置与示例

文章目录 前言一、部署步骤1、jdk环境2、python环境步骤一&#xff1a;安装方式一&#xff1a;官网下载安装包方式二&#xff1a;brew命令安装 步骤二&#xff1a;配置环境变量步骤三&#xff1a;验证 3、maven环境&#xff08;可选&#xff09; 二、下载安装datax1、下载datax…

为什么要在 Golang 中使用指针

1、性能优化&#xff1a;指针允许你在不复制数据的情况下访问和修改变量。当你有一个大型的数据结构时&#xff0c;如果直接传递这个数据结构&#xff0c;会产生一个完整的副本&#xff0c;这会增加内存的使用和CPU的计算时间。使用指针&#xff0c;你可以只传递数据的地址&…

YOLO算法改进Backbone系列之:PVT

摘要&#xff1a;尽管基于CNNs的backbone在多种视觉任务中取得重大进展&#xff0c;但本文提出了一个用于密集预测任务的、无CNN的的简单backbone——Pyramid Vision Transformer&#xff08;PVT&#xff09;。相比于ViT专门用于图像分类的设计&#xff0c;PVT将金字塔结构引入…

Springboot引入swagger

讲在前面&#xff1a;在spring引入swagger时&#xff0c;由于使用的JDK、Spring、swagger 的版本不匹配&#xff0c;导致启动报错&#xff0c;一直存在版本依赖问题。所以在此声明清楚使用版本。JDK 1.8、Spring boot 2.6.13、 Swagger 2.9.2。 引入maven依赖 <dependency&…

欧拉回路算法

1 基本概念 1.1 欧拉路径和欧拉回路 欧拉回路&#xff1a; 在一个图中&#xff0c;由i点出发&#xff0c;将每个边遍历一次最终回到出发点i的一条路径。具有欧拉回路的图称为欧拉图。 无向图 存在欧拉回路的充要条件是所有的点的度数均为偶数 因为每个点的度数为偶数&#xf…

第十四届蓝桥杯c++组B组做题笔记

A题&#xff1a;日期统计&#xff1a; 【问题描述】 小蓝现在有一个长度为 100 的数组&#xff0c;数组中的每个元素的值都在 0 到 9 的范围之内。数组中的元素从左至右如下所示&#xff1a; 5 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 …