您的当前位置:首页>全部文章>文章详情

【前端】微信小程序推送订阅消息

CrazyPanda发表于:2024-03-21 19:00:10浏览:352次TAG:

业务需要,商城类小程序,要在用户下单支付成功后,推送消息通知用户。首先想到的是小程序模板消息,微信公众号模板消息已经用过很多了,小程序模板消息确是第一次做。

前端框架:uniapp


1. 小程序模板消息 

    参考https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/template-message.html

image.png

小程序模板消息在2020年已经改版了,现在推送模板消息都会推送到服务通知里面,如下图

image.png

但是其是指还是模板消息。

2. 创建模板消息

登录微信小程序管理平台,找到模板消息,根据微信小程序的类型,选择自己需要的模板消息,并设置所需的字段

image.png

模板消息创建成功后就可以开始使用了。

3. 用户订阅模板消息

这是小程序模板消息和公众号模板消息另一个不一样的地方,公众号模板消息可以直接推送给用户,小程序确需要用户订阅后才能推送成功。

参考文档https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html#%E8%AE%A2%E9%98%85%E6%B6%88%E6%81%AF%E8%AF%AD%E9%9F%B3%E6%8F%90%E9%86%92

我们需要用到wx.requestSubscribeMessage接口

接口使用参考https://developers.weixin.qq.com/miniprogram/dev/api/open-api/subscribe-message/wx.requestSubscribeMessage.html

在小程序中这样调用:

wx.requestSubscribeMessage({
  tmplIds: [''],
  success (res) { }})

其中tmplIds就需要传我们在第2 步创建好的模板ID。

注意:

image.png

这个方法不是随便调用的,从2.8.2版本开始,必须要用户点击或者支付回调后才能正常调起这个方法

我是在支付成功后调用该方法:

//订阅消息
		onMessageAuth() {
			const app = this;
			var isAccept = app.onMpAppSetting();
			if (!isAccept)
			{
				//未授权
				wx.requestSubscribeMessage({
					tmplIds:[app.orderTmpId],
					success(res){
						// console.log('&&&&&&&&&&&&&');
						// console.log(res)
						CashierApi.orderNotice({order_id:app.orderId})
					},
					fail (res){
						// console.log('*****************************')
						// console.log(res)
					},
					complete(res){
						// console.log(res)
						
						//支付成功后跳转
						app.onSuccessNav()
					}
				})
			}
			else
			{
				//已授权
				//支付成功后跳转
				app.onSuccessNav()
			}
		},

调起效果如下

image.png

用户订阅分为一次订阅和永久订阅,这个方法调起都是一次性的,永久订阅需要用户自己勾选总是保持已上选择才可以。

这个设置可以在小程序设置里面关闭和打开

image.pngimage.pngimage.png

用户关闭后,就不能再就收通知消息。

如果用户同一订阅,并勾选了“总是保持已上选择”,则无法再次调起支付方法。


因此在调起订阅方法前,我做了一个判断,根据wx.getSetting()方法,获取用户小程序设置信息,可以判断是否已订阅对应的模板消息,如果没订阅,则调起订阅方法让用户订阅,如果已经订阅,就无需调用订阅方法了

https://developers.weixin.qq.com/miniprogram/dev/api/open-api/setting/wx.getSetting.html

其中需要加上subscriptionsSetting:true才能返回订阅消息配置

wx.getSetting({
  success (res) {
    console.log(res.authSetting)
    // res.authSetting = {
    //   "scope.userInfo": true,
    //   "scope.userLocation": true
    // }
  }})
wx.getSetting({
  withSubscriptions: true,
  success (res) {
    console.log(res.authSetting)
    // res.authSetting = {
    //   "scope.userInfo": true,
    //   "scope.userLocation": true
    // }
    console.log(res.subscriptionsSetting)
    // res.subscriptionsSetting = {
    //   mainSwitch: true, // 订阅消息总开关
    //   itemSettings: {   // 每一项开关
    //     SYS_MSG_TYPE_INTERACTIVE: 'accept', // 小游戏系统订阅消息
    //     SYS_MSG_TYPE_RANK: 'accept'
    //     zun-LzcQyW-edafCVvzPkK4de2Rllr1fFpw2A_x0oXE: 'reject', // 普通一次性订阅消息
    //     ke_OZC_66gZxALLcsuI7ilCJSP2OJ2vWo2ooUPpkWrw: 'ban',
    //   }
    // }
  }})

其中如果是一次订阅,返回结果是

模板ID:'reject'

如果是永久订阅,返回结果是

模板ID:'accept'

4.下发模板消息

服务端下发模板消息(订阅消息),可参考https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/mp-message-management/subscribe-message/sendMessage.html,可指定跳转页面以及参数,此处不在赘述。

模板消息效果

image.png

点击模板消息可以跳转到已上线小程序对应页面,带参数的在对应页面做好接收参数的配置即可


已上就是本次前端微信小程序对接模板消息的全部内容。

猜你喜欢

【HTML】箩筐地图的使用,设置考勤范围
接上篇【PHP】html使用高德地图设置考勤范围,项目换掉了高德地图,替换成了箩筐地图,继续实现考勤打卡范围设置。需求:系统需要考勤功能,并在WEB端设置考勤范围,用于员工手机端在此范围内打卡签到,WEB端需要设置考勤地点以及考勤范围。 上篇高德地图已经实现了此功能,现在要换成箩筐地图实现此功能 基本思路:绘制地图->根据地址获取坐标->根据坐标绘制圆形范围->根据半径自适应显示圆形范围1 箩筐地图箩筐地图开放平台https://testlbs.luokuang.com/ 同样
发表于:2024-02-07 浏览:868 TAG:
【前端】常用CMS网站框架介绍
内容管理系统(Content Management System)简称为CMS,CMS系统是网站建设走向成功的重要组成部分。目前网络上的内容管理系统比较繁杂,想要找一个优秀而又非常适合的管理系统也是一件很不容易的事情。国内和国外的CMS程序都比较多,如国外的WordPress在站长圈名气很大。这里,尹华峰SEO技术博客主要介绍十款国内常见的优秀内容管理系统,很多还是开源程序,方便各位站长二次开发满足不同的需求。一、织梦CMS织梦CMS就是dedecms,很多站长称呼它为得得cms,是目前国内安装
发表于:2024-04-24 浏览:337 TAG:
【Html】H5跳转支付宝小程序的两种方式
H5跳转支付宝小程序的两种方式,第一种方式还可以打开支付宝生活号网页,只是换成appid换成网页应用appid,page参数换成url参数,url对应的是自己页面的链接
发表于:2024-03-28 浏览:357 TAG:
【前端】微信小程序推送订阅消息
业务需要,商城类小程序,要在用户下单支付成功后,推送消息通知用户。首先想到的是小程序模板消息,微信公众号模板消息已经用过很多了,小程序模板消息确是第一次做。小程序模板消息     参考https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/template-message.html 小程序模板消息在2020年已经改版了,现在推送模板消息都会推送到服务通知里面,
发表于:2024-03-21 浏览:353 TAG:
【前端】如何使用Redis和TypeScript开发高性能计算功能
如何使用Redis和TypeScript开发高性能计算功能概述:Redis是一个开源的内存数据结构存储系统,具有高性能和可扩展性的特点。TypeScript是JavaScript的超集,提供了类型系统和更好的开发工具支持。结合Redis和TypeScript,我们可以开发出高效的计算功能来处理大数据集,并充分利用Redis的内存存储和计算能力。本文将介绍如何利用Redis和TypeScript开发高性能计算功能,包括数据存储、数据处理和结果缓存等方面。我们将使用Redis的常用数据结构和命令,并
发表于:2024-04-06 浏览:361 TAG:
【前端】微信小程序跳转公众号的三种方式
 最近因为项目需要,要在小程序页面添加按钮,点击跳转公众号对应页面,目前没有直接点击按钮从小程序跳转到公众号页面的方法,但也有变相的实现方法,最后采用小程序webview内嵌公众号页面的方法来实现相关功能,在此记录一下:相关参考:小程序跳转公众号的三种方法 | 微信开放社区 (qq.com)开放能力 / official-account (qq.com)方法: 1:  公众号组件<official-account></official-account>
发表于:2024-03-20 浏览:313 TAG:
【前端】vite和webpack的区别是什么
区别:1、webpack服务器启动速度比vite慢;由于vite启动的时候不需要打包,也就无需分析模块依赖、编译,所以启动速度非常快。2、vite热更新比webpack快;vite在hrm方面,当某个模块内容改变时,让浏览器去重新请求该模块即可。3、vite用esbuild预构建依赖,而webpack基于node。4、vite的生态不及webpack,加载器、插件不够丰富。本教程操作环境:windows7系统、vue3版,DELL G3电脑。写在开头最近的vite比较火,而且发布了2.0版本,v
发表于:2024-04-18 浏览:359 TAG:
【前端】PHP、Vue和React:如何选择最适合的前端框架?
PHP、Vue和React:如何选择最适合的前端框架?随着互联网技术的不断发展,前端框架在Web开发中起着至关重要的作用。PHP、Vue和React作为三种具有代表性的前端框架,每一种都具有其独特的特点和优势。在选择使用哪种前端框架时,开发人员需要根据项目需求、团队技能和个人偏好做出明智的决策。本文将通过比较PHP、Vue和React这三种前端框架的特点和使用场景,帮助读者更好地选择最适合自己的前端框架。PHPPHP作为一种服务器端脚本语言,被广泛应用于Web开发中。尽管PHP主要用于后端开发,
发表于:2024-03-16 浏览:378 TAG:
【前端】vite+vue3+ts 项目安装 Ant Design of Vue方法
安装 Ant Design of Vue 和@ant-design/icons-vue图标库npm add ant-design-vue @ant-design/icons-vue安装插件 unplugin-vue-components 配合vite可以自动帮我们引入组件npm add unplugin-vue-components -D配置 vite.config.tsimport {&nbs
发表于:2024-02-23 浏览:316 TAG:
【前端】Nodejs基于Windows安装教程
一、安装环境在进行 Node.js 环境的安装之前,您需要先安装并配置好以下环境:操作系统:Windows命令行工具:Node.js 是通过命令行工具进行使用和管理的,因此您需要选择一个适合您的命令行工具。在 Windows 上,您可以选择使用命令提示符(cmd)或 PowerShell。文本编辑器:Node.js 应用程序通常是使用文本编辑器编写的,因此您需要选择一个适合您的文本编辑器。常用的文本编辑器包括 Visual Studio Code、Sublime Text、Atom 等。网络连接
发表于:2024-07-15 浏览:234 TAG: