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

article/2025/9/11 4:57:34

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

文章目录

    • 1.写小程序消息模版第一步:配置消息推送
    • 2.消息模板
    • 3.发送模板消息

1.写小程序消息模版第一步:配置消息推送

1.1 登录微信公众平台,选择左侧侧边栏==>设置==>开发设置==>消息推送==> 启用
这里写图片描述
1.2 配置消息推送

url:小程序使用URL与小程序接口同;例如:https://www.1314520.com/api/checkSiginature

Token(令牌): 自己定义Token值;要与后端代码中Token同

EncodingAESKey:随机生成就好,自定义也可

消息加密方式:简易兼容模式

数据格式:JOSN与XML根据个人习惯

后端php 验证代码如下:

private function checkSignature()
{$signature = $_GET["signature"];$timestamp = $_GET["timestamp"];$nonce = $_GET["nonce"];$token = TOKEN;$tmpArr = array($token, $timestamp, $nonce);sort($tmpArr, SORT_STRING);$tmpStr = implode( $tmpArr );$tmpStr = sha1( $tmpStr );if($tmpStr == $signature){return $_GET['echostr']}else{return false}
}

这里写图片描述

2.消息模板

2.1.申请新消息模板

消息模板只有在我的模板中才可以使用,首先我们可以根据自己需求在模板库中查找适合自己的,如果没有,就申请新的模板,选择模板时要注意,至少选择两个参数

这里写图片描述
2.2.选用已存在的模板
这里写图片描述

3.发送模板消息

模板消息不能根据自己的想法任意发送,使用一个触发性事件;有两种情况触发
1.表单提交(获取formid)
2.支付(获取prepay_id)

3.1 获取模板ID
(1)通过模版消息管理接口获取模版ID(详见模版消息管理)
(2)在微信公众平台手动配置获取模版ID(模块2.2,点击我的模板==>点击详情==>点击复制或手动复制写入代码中)
3.2 获取formId 或 prepay_id

页面的 组件,属性report-submit=true时,可以声明为需发模板消息,此时点击按钮提交表单可以获取formId,用于发送模板消息。或者当用户完成支付行为,可以获取prepay_id用于发送模板消息。
注意:因为我们是在开发者工具中测试,所以得到的formId值为the formId is a mock one。在真机中我们可以得到一个具体的值,利用该值结合其他参数就可以发送模板消息啦,所以测试真实场景务必在真机中测试

<form bindsubmit="formSubmit" report-submit='true'><view class="section"><view class="section__title">input</view><input name="input" placeholder="please input here" /><view>{{san}}</view></view><view class="btn-area"><button formType="submit">Submit</button></view>
</form>
  formSubmit: function (e) {//获取formIdconsole.log(e.detail.formId);},

3.3 调用接口下发模板消息
这里写图片描述
解释官方文档参数:
1.touser 用户在登录小程序获取,用户在小程序的唯一标示------openid
2.template_id 所需下发的模板消息ID(模块3.1获取的模板ID)
3.page 点击模板卡片后跳转的页面
4.form_id 表单提交场景下,为 submit 事件带上的 formId;支付场景下,为本次支付的 prepay_id(模块3.2获取)
5.data 模板内容,不填下发为空,对应模板消息参数
6.color 模板内容颜色(非必填)
7.emphasis_keyword 模板需要放大的关键词,不填则默认无放大(非必填)
以php代码为例,啥都不说。。。。放码过来:

获取小程序token

    private function getToken(){$appid = '小程序appid';$secret = '小程序secret';$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$secret}";return $data = $this->curlGet($url);}

通过post请求发送消息模板

    private function getHttpArray($url,$post_data) {$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   //没有这个会自动输出,不用print_r();也会在后面多个1curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);$output = curl_exec($ch);curl_close($ch);$out = json_decode($output);return $out;}

通过get请求发送消息模板

    private function curlGet($url) {//1.初始化Curl$curl = curl_init();//设置curl传输选项curl_setopt($curl, CURLOPT_URL, $url);//访问ip地址curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//设置为FALSE 禁止 cURL 验证对等证书curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//设置为1或true时,获取的信息以字符串返回$data = curl_exec($curl); //返回值curl_close($curl);$out = json_decode($data,true);return $out;}

发送模板消息

 public function smallWXmessage(){
$data = <<<END
{"touser": "OPENID","template_id": "TEMPLATE_ID","page": "index","form_id": "FORMID","data": {"keyword1": {"value": "339208499"},"keyword2": {"value": "2015年01月05日 12:30"},"keyword3": {"value": "粤海喜来登酒店"} ,"keyword4": {"value": "广州市天河区天河路208号"}},"emphasis_keyword": "keyword1.DATA"
}
END;$access = json_decode($this->getToken(),true);  //获取token$access_token= $access['access_token'];$url = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=" . $access_token;$data = $this->getHttpArray($url,$data);  //post请求urlreturn $data;}

php中<<<END END定义字符串要注意,
1.以<<<END开始标记开始,以END结束标记结束,结束标记必须**顶头写**,不能有缩进和空格,且在结束标记末尾要有分号 。
2.开始标记和开始标记相同;但是不只限于END;比如常用大写的EOT、EOD、EOF来表示
3.位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。

好了,我们去请求一下试试,哇,哇,成功了,舒服。。。。。。看图
这里写图片描述

好;我们现在已经成功发送了一个小程序消息,
但是我想无线发送小程序模板消息可不可以呢?
答案:在巨大的限制下是可以实现的
限制1: 小程序发送消息必须由表单提交事件获取formid或者支付prepay_id才能推送
限制2: formid、prepay_id的有效期都是7天,也就是说超过7天后,formid失效无法再发送。
限制3: 一个formid有效期内只能发送一条模板消息给用户,一个prepay_id有效期内只能发送三条模板消息给用户
实现方式:当用户使用小程序时,产生的formid、prepay_id我们根据用户id进行存储,如果用户活跃的情况下,我们可以实现无线发送小程序模板消息

希望能帮助每一个愿意在程序世界遨游的道友,喜欢的小伙伴可收藏,感谢您的观赏
不对的地方还希望多多批评和指出


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

相关文章

微信小程序模板消息推送

时序图 ​​​​​​​ 首先&#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;如何让你…

我做的小程序,昨天赚了 2.06 元广告费

我做的小程序&#xff0c;昨天赚了 2.06 元广告费 先看一下广告上线三天的收益&#xff0c;虽然不多&#xff0c;但很快乐hhh。 2020 年 6月接触了小程序云开发&#xff0c; 那时候还不太会写太复杂的小程序界面&#xff0c;于是就找了几个开源的框架改了改。 因为当时所处的行…

小程序流量主运营

个人和小微企业可通过小程序流量主进行变现&#xff0c;如果你擅长推广&#xff0c;有较多的粉丝那么小程序变现无疑是一种很好的收入渠道。小程序流量主的开通渠道门槛并不高——满1000人即可开通流量主。 那么我们运营什么样的小程序开通流量主进行流量变现呢&#xff1f;以…

Uni-app 小程序 APP 的广告变现之路:插屏广告

插屏广告 插屏广告组件是由客户端原生的图片、文本、视频控件组成的&#xff1b;一般来说&#xff0c;插屏广告可以实现比传统信息流广告和banner广告展现更大的广告尺寸&#xff0c;同样能够满足您对大量曝光和用户转化的需求。 平台差异说明 AppH5微信小程序支付宝小程序百…

小程序进入首页时弹出广告

项目需求&#xff0c;判断用户是否开通会员&#xff0c;没开通会员的话每次进入小程序弹出一个引导开通会员的弹窗&#xff0c;已经开通会员的不在弹 先看下效果图 wxml代码 <!-- 广告展示 --><view class"mask" hidden"{{showAd}}"><view…

uniapp 小程序 加载显示激励视频广告

uniapp激励广告文档&#xff1a;uni-app官网https://uniapp.dcloud.io/api/a-d/rewarded-video微信官网激励广告文档&#xff1a;激励视频广告 | 微信开放文档微信开发者平台文档https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/ad/rewarded-video-a…

微信 小游戏/小程序 广告组件被驳回 审核不通过

最近做微信小游戏开发&#xff0c;接入广告时遇到一些问题&#xff0c;被驳回了好几次。 相信大家接过微信小游戏或者小程序广告都晓得&#xff0c;接入很简单&#xff0c;不论是banner广告还是激励视频广告只要在合适的位置合适的时机去展示广告&#xff0c;都会顺利审核通过…

微信小程序添加激励式广告

目录 微信小程序创建项目配置底部导航栏 微信小程序滚动播放内容 微信小程序功能中心模块开发 微信小程序个人中心页面开发 微信小程序获取电话号码 微信小程序显示列表数据 微信小程序显示分页列表 微信小程序添加插屏广告 微信小程序添加激励式广告 最终效果可扫码查看 遇…

微信小程序添加插屏广告

目录 微信小程序创建项目配置底部导航栏 微信小程序滚动播放内容 微信小程序功能中心模块开发 微信小程序个人中心页面开发 微信小程序获取电话号码 微信小程序显示列表数据 微信小程序显示分页列表 微信小程序添加插屏广告 微信小程序添加激励式广告 最终效果可扫码查看 遇…

小程序banner广告和激励广告

小程序banner广告和激励广告 1、小程序banner广告 1.1、先要在小程序公众后台获取广告位ID 代码片 <view class"empty"><ad unit-id"广告id"></ad></view>注意事项&#xff1a; Banner 广告不允许直接设置样式属性&#xff0c;…

小程序也能接广告了,微信小程序广告位投放指南!

小程序也能接广告了&#xff0c;微信小程序广告位投放指南! 3月15日消息&#xff0c;据爆料&#xff0c;微信已经开始秘密测试在小程序中投放广告&#xff0c;并且流传出了一份《微信小程序广告位投放指引》&#xff0c;意味着微信小程序已经准备开启广告投放权限。面向10亿用户…

做了个小程序,广告收益2.60元广告费

呜呜呜&#xff0c;做了个小程序&#xff0c;广告收益好少啊&#xff01; 第一天投放&#xff0c;曝光了一千多&#xff0c;只有两块的收益ecmp好低&#xff01;&#xff01;&#xff01; 这收入实在太低了&#xff0c;一千多的曝光量才两块哎 用的banner和视频广告两个 视频…

小程序流量主申请,如何增加小程序广告的点击率?

小程序开发者千千万&#xff0c;真正赚$的却没有多少&#xff0c;尤其是像我这种个人业余开发者。不过&#xff0c;有想法不去实现一把总会觉得心有不甘&#xff0c;送大家一句话&#xff1a;为道者&#xff0c;虽千万人吾往矣&#xff01; 相信大多数小程序开发者和我一样&am…

小程序设置激励广告

1、申请好广告&#xff0c;获取广告代码 2、在要放广告的wxml页面&#xff0c;放入点击弹出激励广告按钮 <view wx:if"{{isshow 0}}" bindtap"adshow" style"text-align: center;background-color: #F8F8F8;height: 70rpx;margin-top: 34rpx;lin…

微信小程序——添加广告

微信小程序——添加广告 要想在微信小程序中加入广告&#xff0c;首先要在微信小程序后台开通流量主 流量主需要满足&#xff1a;1、累计独立访问&#xff08;uv)不低于1000&#xff1b;2、有严重违规的小程序不与开通。 广告主要有&#xff1a;banner广告、激励视频广告、卡…