【微信小程序】模板消息推送(测试成功)。

article/2025/9/11 2:50:28

note:
这几天想做微信小程序消息推送的功能,然后在网上找了好多教程,都没解决问题,官方文档写的教程由不够详细,所以走了好多弯路。
现在问题解决了,记录一下。
我在网上找的好多教程都不详细,虽然是贴代码出来了,但是好多都不说清楚是哪个文件的代码,真的很无语。

实现消息推送,需要先配置服务器域名、消息服务器推送配置。
请看我上一篇博客。
【微信小程序】消息推送服务器配置及服务器域名配置(记录坑)
https://blog.csdn.net/qq1445654576/article/details/89296942

配置好服务器域名后在开发工具中把 不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书选项勾上
在这里插入图片描述

今天上午参考了这篇文章,终于实现了模板消息推送的功能。开心。
https://www.cnblogs.com/Smiled/p/8204467.html

下面是我写的:
首先看效果吧
在这里插入图片描述

首先的要添加消息模板,这里我随便选一个为例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样就选好消息模板了。

这里贴代码:
在这里插入图片描述
template-message.wxml

<form name='pushMsgFm' report-submit="true" bindsubmit='template_Msg'>  <button form-type="submit" type='primary'>发送模板消息</button>  
</form>

template-message.js

Page({/*** 页面的初始数据*/data: {openid: "", //(这个不要改)这里为空值,待获取到openid时,会给它重新赋值.openid在app.js中获取token: "",//要推送的内容push_content_data: [//keyword1{value: "17软件工程A班",color: "#4a4a4a"},//keyword2{"value": "软件工程导论","color": "#9b9b9b"},//keyword3{"value": "P48 第5题","color": "#9b9b9b"},//keyword4{"value": "2019-04-17 10:00:00","color": "#9b9b9b"},//keyword5{"value": "今天你交作业了吗? 别忘了,当初为何出发","color": "#9b9b9b"}]},//发送模板消息template_Msg: function(e) {wx.showLoading({ //期间为了显示效果可以添加一个过渡的弹出框提示“加载中”  title: '加载中',icon: 'loading',});//获取access_tokenwx.request({url: "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + getApp().globalData.appId + "&secret=" + getApp().globalData.secret,success: (res) => {console.log(res);this.setData({token: res.data.access_token //将access_token存到data的token里});console.log("access_token:" + this.data.token);}});var fId = e.detail.formId; //获取formIdconsole.log("formId:" + fId);var access_token_url = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=' + this.data.token;var push_content = {"keyword1": this.data.push_content_data[0],"keyword2": this.data.push_content_data[1],"keyword3": this.data.push_content_data[2],"keyword4": this.data.push_content_data[3],"keyword5": this.data.push_content_data[4]};console.log(push_content)wx.request({url: access_token_url,//注意不要用value代替datadata: {touser: this.data.openid,template_id: 'w9btZxaxU6kt7PymBh5Z_SS86-TC-DmWyppNxlQTCxk', //换成你申请的模板消息id,  page: '/pages/template-message/template-message',form_id: fId,data: push_content,color: '#ccc',emphasis_keyword: 'keyword3.DATA'},method: 'POST',success: function(res) {wx.hideLoading();console.log("发送成功");console.log(res);},fail: function(err) {// fail  console.log("push err")console.log(err);}});},/*** 生命周期函数--监听页面加载*/onLoad: function(options) {var that = this;wx.login({success: (res) => {if (res.code) {wx.request({url: "https://api.weixin.qq.com/sns/jscode2session",data: {appid: getApp().globalData.appId, //从app.js中获得你的appidsecret: getApp().globalData.secret, //从app.js中获得你的secretjs_code: res.code,grant_type: "authorization_code"},success: (res) => {console.log(res);that.setData({openid: res.data.openid //存储openid})}})}}})} //onLoad
}) //Pages

app.js

//app.js
App({globalData: {userInfo: null,appId: "wxabcd1234",	//这里换成你的appidsecret: "dsks4fdf2r63f5se2rerf23re"   //换成你的密钥},onLaunch: function () {// 展示本地存储能力var logs = wx.getStorageSync('logs') || []logs.unshift(Date.now())wx.setStorageSync('logs', logs)// 登录wx.login({success: res => {// 发送 res.code 到后台换取 openId, sessionKey, unionId}})// 获取用户信息wx.getSetting({success: res => {if (res.authSetting['scope.userInfo']) {// 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框wx.getUserInfo({success: res => {// 可以将 res 发送给后台解码出 unionIdthis.globalData.userInfo = res.userInfo// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回// 所以此处加入 callback 以防止这种情况if (this.userInfoReadyCallback) {this.userInfoReadyCallback(res)}}})}}})},onLoad: function (options) {var that = this;wx.login({success: (res) => {if (res.code) {//获取openidwx.request({url: "https://api.weixin.qq.com/sns/jscode2session",data: {appid: getApp().globalData.appId,secret: getApp().globalData.secret,js_code: res.code,grant_type: "authorization_code"},success: (res) => {console.log(res);that.setData({openid: res.data.openid//将openid存起来}) }})}}})}
})

总结:
需要准备的东西
1.AppID(小程序ID)

在微信小程序后台获取

2.AppSecret(小程序密钥)

在微信小程序后台获取

3.formId

var fId = e.detail.formId; //获取formId

4.openid

只有用户登录时才能获取到。
这个在app.js中获取,而且只能在手机里才能获取到,编译器里获取不到
//获取openidwx.request({url: "https://api.weixin.qq.com/sns/jscode2session",data: {appid: getApp().globalData.appId,secret: getApp().globalData.secret,js_code: res.code,grant_type: "authorization_code"},success: (res) => {console.log(res);that.setData({openid: res.data.openid//将openid存起来}) }})

5.access_token

通过api获取
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
    //获取access_tokenwx.request({//APPID替换成你的appid, APPSECRET换成你的AppSecreturl: "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET",success: (res) => {console.log(res);this.setData({token: res.data.access_token //将access_token存到data的token里});console.log("access_token:" + this.data.token);}});

6.template_id
在这里插入图片描述


http://chatgpt.dhexx.cn/article/SD9W91fF.shtml

相关文章

微信小程序模板订阅消息推送

尚未接触这块之前&#xff0c;以为是比较麻烦的&#xff0c;经研究并实现后&#xff0c;大致可以分为三个阶段&#xff1a; 申请模板&#xff08;明确推送卡片的格式及内容&#xff09;前端订阅&#xff08;打开可推送开关&#xff0c;允许推送&#xff09;后端推送&#xff0…

微信小程序——发送模板消息

步骤一&#xff1a;获取模板ID 1、通过模版消息管理接口获取模版ID&#xff08;详见模版消息管理&#xff09; 2、在微信公众平台手动配置获取模版ID 登录 https://mp.weixin.qq.com 获取模板&#xff0c;如果没有合适的模板&#xff0c;可以申请添加新模板&#xff0c;审核通…

微信小程序的模板消息与小程序订阅消息

小程序订阅消息功能介绍消息能力是小程序能力中的重要组成&#xff0c;我们为开发者提供了订阅消息能力&#xff0c;以便实现服务的闭环和更优的体验。 订阅消息推送位置&#xff1a;服务通知订阅消息下发条件&#xff1a;用户自主订阅订阅消息卡片跳转能力&#xff1a;点击查…

《微信小程序——发送模板消息》详细步骤

第一步&#xff1a;获取access_token 第一步详情&#xff1a;因为access_token在微信公众号还是小程序&#xff0c;在一个月之内都有获取次数的限制&#xff0c;并且一个access_token只有2小时的有效期&#xff1b;所以每当我们获取一次access_token,就要反复利用&#xff1b;…

微信小程序给公众号发送模板消息

参考文献&#xff1a;小程序如何向公众号推送消息_fbbqt的博客-CSDN博客_小程序给公众号发信息小程序如何向公众号推送消息https://blog.csdn.net/fbbqt/article/details/122167097 前置条件&#xff1a; 微信公众号:AppId和APPSecret(必须认证) 微信小程序:AppId和APPSecret…

微信小程序模板消息实现(PHP+小程序)

参考官方文档和部分资料&#xff0c;总结小程序模板消息推送以及相关注意事项&#xff0c;楼主踩过的坑&#xff0c;特来与大家分享。 一、开发准备&#xff1a; 1. 在微信公众平台 - 小程序的模板中心申请消息模板 二、实现原理&#xff1a; 文档示例&#xff1a;小程序 接…

微信小程序订阅模板消息

1.登录管理员后台&#xff0c;订阅消息&#xff0c;选择模板或者申请模板 2. 开发管理&#xff0c;开发设置&#xff0c;开启消息推送&#xff0c;并验证服务器 3. 开发获取获取模板列表接口&#xff0c;和 测试消息发送接口 4. 前端根据接口配置授权弹窗页&#xff0c;获取用…

微信小程序|如何设置模板消息提醒

管理员如何设置模板消息提醒&#xff0c;管理员如何查看。回复用户咨询信息 使用管理员模板消息提醒&#xff0c;首先配置模板消息 第一步&#xff0c;设置模板消息&#xff0c;配送员通过微信模板消息接收配送信息&#xff0c;需要在平台——微信公众号——模板消息设置&#…

小程序之模板消息

使用模板消息 获取模板 id 登录https://mp.weixin.qq.com获取模板&#xff0c;如果没有合适的模板&#xff0c;可以申请添加新模板&#xff0c;审核通过后可使用&#xff0c;详见模板审核说明 页面的 <form/> 组件&#xff0c;属性report-submit为true时&#xff0c;可…

微信小程序模板消息的两种实现方式

最近在做微信小程序&#xff0c;为了让用户能更加方便的获取到小程序内部的通知&#xff0c;便想着用模板消息来解决此类问题。首先介绍一下两种方法 第一种是传统的按照微信开发文档来实现模板消息的获取&#xff0c;首先要明确的是你要有一个第三方的服务器&#xff0c;因为…

微信小程序实例:创建下发模板消息实例

鉴于目前网络上都还找不到小程序下发模板消息的相关资源&#xff0c;在多次阅读了官方文档今天终于把小程序的模版消息给测通了&#xff0c;接下来介绍在不使用服务器的情况下&#xff0c;前端开发人员在本地怎么测试模板消息的发送。 1、在微信公众平台-小程序的模板中心先申请…

小程序配置模板消息

1.登录微信公众号平台&#xff0c;需要有权限的工作人员进行扫码登录。 2.登录进去点击订阅消息。 3.点击添加按钮&#xff0c;可以在搜索框进行搜索想要的模板类型&#xff0c;然后点击选用即可。 4.选择提醒模板消息的参数&#xff0c;需要跟客户沟通需要什么参数就配什么参…

小程序 发送模板消息的功能实现

☹. 背景 - 小程序开发的过程中&#xff0c;绝大多数会满足微信支付 - 那么&#xff0c;作为友好交互的体现&#xff0c;自然就会考虑到支付后的消息通知咯 - 所以&#xff0c;我的小程序项目也要求完成这个效果&#xff0c;so.分享一下自己的实现步骤&#xff0c;以方便道友们…

微信小程序-----消息模版(最全解释)

最近小程序在码界里嫌弃腥风血雨&#xff0c;每一个码奴都感觉世界给自己又多开一个扇窗&#xff0c;本菜鸟也眼红不已&#xff0c;就尝试着写了一个小程序&#xff0c;今天跟大家分享一下自己在写消息模版时候遇到的坑&#xff0c;希望能帮助每一位路过踩坑的道友&#xff1b;…

微信小程序模板消息推送

时序图 ​​​​​​​ 首先&#xff0c;我们需要知道一件事情&#xff0c;小程序的模板推送分为“一次性订阅”和“长期订阅” 一次性订阅&#xff1a;用户订阅小程序后&#xff0c;程序只能对指定OpenId进行一次推送模板消息&#xff0c;无法多次推送 长期订阅&#xff1a…

小程序发送模板消息给用户 —— 一次性模板实现“长期订阅”

大家好&#xff01;我是我玩亚索我会C&#xff0c;在写小程序时&#xff0c;我们会有向用户发送消息的需求&#xff0c;比如发送提醒通知&#xff0c;或者是一些重要通知来形成一个服务的闭环。这就要用到微信的发送消息功能了&#xff0c;下面我使用Java语言来详细演示下如何使…

小程序发送模板消息详细步骤

小程序发送通模板消息详细步骤 步骤一&#xff1a;获取模板id步骤二&#xff1a;页面的form组件&#xff0c;属性report-submit为true时&#xff0c;可以声明为需发模板消息&#xff0c;此时点击按钮提交表单可以获取formId&#xff0c;用于发送模板消息。或者当用户完成支付行…

小程序模板消息

一,制定小程序订阅消息模板 示例图片 (图1) 首先我们来讲一下如何获取制定微信小程序的订阅消息模板, 如图1所示我们首先要登录到微信公众平台,如图 而后进入到图1所示的订阅消息这个页面, 如果你是首次进入的话那么需要开通, 这里比较简单就不用讲解了, 如果说进入之后…

微信小程序能实现盈利的7大流量主广告组件及其分成模式概览

前段时间涉足了微信小程序流量主广告的接入&#xff0c;所以就学习和了解了一下相关的介绍与接入场景。因此做一下笔记记录。 概览 微信小程序流量主广告组件有Banner 广告、激励视频广告、插屏广告、小程序视频广告、视频前贴广告、Grid 广告、原生模板广告等。 基础介绍 什…

小程序无限插屏广告实现方法

大家好啊&#xff0c;最近突然想到一个问题&#xff0c;自己做为一个程序员&#xff0c;每天发的公众号文章和程序根本没半毛钱关系&#xff0c;靠分享一些破解软件浑浑度日&#xff0c;再这样下去恐怕要废。所以今天给自己技术群的狗子们分享一个小知识点&#xff0c;如何让你…