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

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

CrazyPanda发表于:2024-03-21 19:00:10浏览:339次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

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


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

猜你喜欢

【前端】2023年最流行的10款前端UI框架排名
        上次我们发布了《2022年最流行的11款PHP框架》,争议很大!今天我们来继续探讨一下:2023年最流行的10款前端UI框架排名。一:前端UI框架是什么?前端UI框架是一种基于HTML、CSS、JavaScript等前端技术的开发工具集,提供了一系列的UI组件、样式、布局等基础功能,使得前端开发人员可以更加高效地开发出具有良好用户体验的Web应用。二:为什么要使用前端UI框架?前端UI框架可以大大减少前端开发人员的工作量,提高开发效
发表于:2023-12-06 浏览:393 TAG:
【前端】JavaScript判断数组对象是否含有某个值的方法(6种)
【JavaScript基础语法】web前端判断数组对象是否含有某个值的方法(6种)知识回调场景复现实现方式(6种)利用循环遍历数组元素利用some,filter方法利用array.indexOf方法利用array.includes方法利用array.find方法利用set中has方法本期小结知识回调文章内容文章链接vue3 antd table表格的增删改查(一)input输入框根据关键字搜索【后台管理系统纯前端filter过滤】https://blog.csdn.net/XSL_HR/arti
发表于:2024-02-23 浏览:340 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 浏览:351 TAG:
【前端】微信小程序跳转公众号的三种方式
 最近因为项目需要,要在小程序页面添加按钮,点击跳转公众号对应页面,目前没有直接点击按钮从小程序跳转到公众号页面的方法,但也有变相的实现方法,最后采用小程序webview内嵌公众号页面的方法来实现相关功能,在此记录一下:相关参考:小程序跳转公众号的三种方法 | 微信开放社区 (qq.com)开放能力 / official-account (qq.com)方法: 1:  公众号组件<official-account></official-account>
发表于:2024-03-20 浏览:303 TAG:
【前端】全栈软件开发工程师需要具备哪些技能
全栈软件开发工程师需要具备前端、后端和数据库等多方面的技能,以便能够在整个应用开发周期中承担各种任务。以下是典型的全栈软件开发工程师的技能栈:一、前端技能:1.HTML/CSS/JavaScript:构建网页的基本技能,负责页面结构、样式和交互。2.前端框架:掌握至少一种前端框架,如 React.js、Vue.js、Angular,用于构建可维护的、高性能的前端应用。3.前端工具:使用构建工具(Webpack、Parcel)、包管理工具(npm、Yarn)、代码规范工具(ESLint、Prett
发表于:2023-12-07 浏览:332 TAG:
【前端】使用canvas做一个可绘制矩形的画布(带有移动,缩放,删除)
使用canvas做一个可绘制矩形的画布(带有移动,缩放,删除)
发表于:2024-04-07 浏览:345 TAG:
【前端】常用CMS网站框架介绍
内容管理系统(Content Management System)简称为CMS,CMS系统是网站建设走向成功的重要组成部分。目前网络上的内容管理系统比较繁杂,想要找一个优秀而又非常适合的管理系统也是一件很不容易的事情。国内和国外的CMS程序都比较多,如国外的WordPress在站长圈名气很大。这里,尹华峰SEO技术博客主要介绍十款国内常见的优秀内容管理系统,很多还是开源程序,方便各位站长二次开发满足不同的需求。一、织梦CMS织梦CMS就是dedecms,很多站长称呼它为得得cms,是目前国内安装
发表于:2024-04-24 浏览:331 TAG:
【前端】前端网络安全
今天思考下前端源码安全的东西(不是前端安全,只是针对于源码部分)。在我看来,源码安全有两点,一是防止抄袭,二是防止被攻破。实际上讲,前端的代码大多是没有什么可抄袭性,安全更是形同虚设的(任何前端输入都是不能相信的)。但如果还是想防止源码被查看,HTML、CSS并不能做什么,最终都会用露出来(最简单用Chrome开发者工具就可以看到),所以只能针对JS做文件的压缩合并和混淆。关于抄袭其实就前端来讲,代码没有什么好抄袭的,大多人都是抄UI设计(这个是躲不了),还有一些富前端的控件和算法,重要之处还是
发表于:2024-03-17 浏览:324 TAG:
【前端】Nodejs基于Windows安装教程
一、安装环境在进行 Node.js 环境的安装之前,您需要先安装并配置好以下环境:操作系统:Windows命令行工具:Node.js 是通过命令行工具进行使用和管理的,因此您需要选择一个适合您的命令行工具。在 Windows 上,您可以选择使用命令提示符(cmd)或 PowerShell。文本编辑器:Node.js 应用程序通常是使用文本编辑器编写的,因此您需要选择一个适合您的文本编辑器。常用的文本编辑器包括 Visual Studio Code、Sublime Text、Atom 等。网络连接
发表于:2024-07-15 浏览:227 TAG:
【前端】Ant Design of Vue安装
关于 ant-design-vue #众所周知,Ant Design 作为一门设计语言面世,经历过多年的迭代和积累,它对 UI 的设计思想已经成为一套事实标准,受到众多前端开发者及企业的追捧和喜爱,也是 React 开发者手中的神兵利器。希望 ant-design-vue 能够让 Vue 开发者也享受到 Ant Design 的优秀设计。ant-design-vue 是 Ant Design 的 Vue 实现,组件的风格与 Ant Design 保持同步,组件的 html 结构和 cs
发表于:2024-04-15 浏览:300 TAG: