vue 微信公众号定时发送模版消息

目录

      • 第一步:公众号设置 网页授权
      • 第二步:引导用户去授权页面并获取code
      • 第三步:通过code换取网页授权access_token&openid
      • 第四步:后端处理绑定用户和发送消息

相关文档链接:
1、微信开发文档
2、订阅号/服务号/企业号区别
3、模版消息接口

1、根据文档说明 要想使用【发送消息-模板消息接口(发送业务通知)】 只能是【微信认证的服务号】;
2、因为发送模版消息需要拿到用户的 openid,所以需要一个前端交互(网页授权文档)来拿到。

第一步:公众号设置 网页授权

公众号设置=》功能设置=》网页授权域名 (这里设置的是当用户同意授权后的回调页面,这个页面需事先经过微信验证)
在这里插入图片描述
在这里插入图片描述

第二步:引导用户去授权页面并获取code

1、授权页面路径:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

2、实际例子:

   let param = {appid: '',// 公众号的唯一标识redirect_uri: encodeURIComponent("https://xxx.com"),//授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理response_type: 'code',//返回类型,请填写codescope: 'snsapi_base',//应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )state: 'xx', //重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节forcePopup:false,//强制此次授权需要用户弹窗确认;默认为false;需要注意的是,若用户命中了特殊场景下的静默授权逻辑,则此参数不生效}let cur = 'https://open.weixin.qq.com/connect/oauth2/authorize'let url = `${cur}?appid=${param.appid}&redirect_uri=${param.redirect_uri}&response_type=${param.response_type}&scope=${param.scope}&state=${param.state}#wechat_redirect`window.location.href = url;

第三步:通过code换取网页授权access_token&openid

  created () {let href = window.location.href;let url = href && href.split('?')[1]let urlArray = url && url.split('&')let params = {}if (urlArray && urlArray.length) {urlArray.forEach(item => {let paramsKey = item.split('=')[0]let paramsValue = item.split('=')[1]params[paramsKey] = paramsValue});}console.log(params.code)// 拿到回调路径上的code,回调路径上还有statethis.formData.code = params.code},methods: {onVerify () {// 请求后端接口根据code 获取access_token&openid// https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code{"access_token":"ACCESS_TOKEN","expires_in":7200,"refresh_token":"REFRESH_TOKEN","openid":"OPENID","scope":"SCOPE","is_snapshotuser": 1,"unionid": "UNIONID"}}},

第四步:后端处理绑定用户和发送消息

1、openid跟用户进行绑定
2、使用消息模版和定时任务给用户发送消息
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/17608.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

英语四级翻译练习笔记③——大学英语四级考试2023年12月真题(第三套)

目录 引言(必看) 四级翻译评分标准分析及真题解析 四级翻译评分标准 四级翻译真题 学生作答 1. 评分 2. 修正翻译中的错误 错误标记: 3. 改正句子 4. 标出错误单词 5. 标准答案 6. 常考万能句子 7.重点单词的中文意思 引言&…

远程抄表及预付费管理系统:智能管理的新篇章

1.系统简述 远程抄表及预付费管理系统是现代能源管理方面的一项重要自主创新,它将传统手动式抄水表方式转变为自动化技术、智能化管理模式,大大提高了高效率并减少了经营成本。该系统搭载了前沿的通讯技术、数据分析技术和财务管理系统核心理念&#xf…

RedHat9 | DNS剖析-配置转发DNS服务器

一、实验环境 1、转发DNS服务器 转发服务器(Forwarding Server)接受查询请求,但不直接提供DNS解析,而是将所有查询请求发送到另外一台DNS服务器,查询到结果后保存在本地缓存中。如果没有指定转发服务器,D…

性能测试(一)—— 性能测试理论+jmeter的使用

1.性能测试介绍 定义:软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是在完成该功能时展示出来的及时性。 由定义可知性能关注的是软件的非功能特性,所以一般来说性能测试介入的时机是在功能测试完…

Python | Leetcode Python题解之第103题二叉树的锯齿形层序遍历

题目: 题解: class Solution:def zigzagLevelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:if not root: return []res, deque [], collections.deque()deque.append(root)while deque:tmp []# 打印奇数层for _ in range(len(deque)…

春秋云境CVE-2020-26048

简介 CuppaCMS是一套内容管理系统(CMS)。 CuppaCMS 2019-11-12之前版本存在安全漏洞,攻击者可利用该漏洞在图像扩展内上传恶意文件,通过使用文件管理器提供的重命名函数的自定义请求,可以将图像扩展修改为PHP&#xf…

SpringBoot之@AutoConfigureBefore、@AutoConfigureAfter、@AutoConfigureOrder注解

前言 SpringBoot通过AutoConfigureOrder、AutoConfigureBefore、AutoConfigureAfter注解,控制自动配置类的实例化顺序。 Spring中控制Bean的实例化顺序 Spring中默认实例化顺序 创建实体类A、B、C Component public class A {public A() {System.out.println(&…

编程中的模块迷宫:区分与正确使用

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、模块混淆的陷阱 二、碳模块与探母模块的区别 三、如何正确使用模块 四、代码示例 五…

CR渲染噪点严重怎么办?常见噪点来源+排查方法

使用Corona渲染器进行渲染时,画面出现噪点是常见现象,尤其是在渲染初期。轻微的高频噪点通常是正常的,但如果经过多次渲染或长时间渲染后噪点依然明显,就可能意味着渲染设置或场景本身存在问题。虽然我们可以利用降噪功能模糊噪点…

NameSilo + Cloudflare 给网站加个域名(附 NameSilo 购买域名优惠码)

网站做好了之后,下一步就是买域名 在国内买域名的话,还需要备案,个人名下备案好像是还有限制,我就去 NameSilo 上面买的 在买之前,对比过几家 比如: godaddy/namecheap/cloudflare 本来是倾向于在 godaddy 上面买的,因为它支持支付宝支付,但是在详细看的时候,发现如果购买一年…

文心一言 VS 讯飞星火 VS chatgpt (269)-- 算法导论20.2 4题

四、修改 proto-vEB 结构,以支持重复关键字。如果要写代码,请用go语言。 文心一言: 在原始的 van Emde Boas 树(vEB tree)结构中,关键字(key)是唯一的,不允许有重复的关…

DL/ML/RL/TL/FL机器学习框架总结

前言 本文总结了DL/深度学习、ML/机器学习、DML/分布式机器学习、AutoML/自动化机器学习、RL/强化学习、MLaaS/机器学习及服务、SR/语音识别领域的机器学习框架,可作为学习、研究、研发的参考资料。 1.DL/深度学习框架 PyTorch PyTorch是一个开源的Python机器学…

git的使用之筛选文件上传到远程服务器仓库

.gitignore 让本地文件有选择上传到远程服务器仓库 下面是linux内核的.gitignore # # NOTE! Dont add files that are generated in specific # subdirectories here. Add them in the ".gitignore" file # in that subdirectory instead. # # NOTE! Please use gi…

Xinstall:开启携带参数注册新时代,提升用户体验与运营效率

在移动互联网时代,App推广和运营面临着诸多挑战。其中,如何精准追踪用户来源、评估推广效果以及优化用户体验,一直是开发者们关注的焦点。而Xinstall作为一家一站式App全渠道统计服务商,通过其独特的携带参数注册功能,…

C语言布尔类型的前世今生

起初,C语言并没有布尔类型,都是使用int类型的变量来表示布尔值(时至今日大家也基本都这样弄)。_Bool是C99标准(1999年的标准)新增的数据类型,用于表示布尔值(即逻辑值true和false&am…

solidworks 3D草图案例2-方块异形切

单位mm 单位mm 长方体 底面是48mm*48mm,高为60mm 3D草图 点击线,根据三视图,绘制角度线, 由于三点确定一个面,因此确定三点就可以了 基准面 点击参考几何体-基准面,依次点击3个点 曲面切除 完成后点击插…

POLARDB:新零售用户MySQL上云最佳选择

什么是云数据库POLARDB? POLARDB是阿里云自主研发的最新一代RDS关系型数据库,是特别针对互联网场景设计的Cloud-Native 云原生数据库。POLARDB for MySQL版本,在提供100%兼容MySQL5.6/8.0的关系型事务处理ACID特性之上,能够提供完…

记录集连接——kettle开发25

一、记录集连接 记录集连接就像数据库的左连接、右连接、内连接、外连接。 需要注意的是,因为我们是对数据流进行操作,因此我们在进行记录集连接操作前,需要先将数据进行排序。 新版的KETTLE,名字都改了,叫Merge joi…

# WIN10/WIN11 找不到【应用商店 Microsoft.WindowsStore】怎么办?

WIN10/WIN11 找不到【应用商店 Microsoft.WindowsStore】怎么办? 解决方法: 1、右键【开始】菜单,点击【Windows PowerShell (管理员)】,输入: Get-AppxPackage -allusers | Select Name, PackageFullName 2、查询…

输入与输出的魔法:探索Python的内置函数

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、从键盘捕获输入:input()函数的力量 二、打印输出:print()函数的…