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

article/2025/9/11 4:31:32

第一步:获取access_token

第一步详情:因为access_token在微信公众号还是小程序,在一个月之内都有获取次数的限制,并且一个access_token只有2小时的有效期;所以每当我们获取一次access_token,就要反复利用;我这里的方法是将获得access_token存进一个数据表;然后每次先去表中查access_token;判断是否有效,过期则重新在去获取一次,在存到数据表中,更新时间。

下面是我存access_token数据表的结构:

 

 

//微信小程序获取access_token
function getTokens(){$appid='你们自己的';$appsecret='你们自己的';$mysql = new Mysql();$info = $mysql->fetchRow("select access_token_time,access_token from wx_account where appid='{$appid}' and appsecret='{$appsecret}'");$now=time();if($now-$info['access_token_time']<7000){$token = $info['access_token'];return $token;}else{$token_access = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";$tokening=curl_get($token_access);$tokens = json_decode($tokening["output"],true);$token =$tokens["access_token"];$arr = array('access_token_time'=>time(),'access_token'=>$token);$where = "appid='{$appid}' and appsecret='{$appsecret}'";$res = $mysql->update($arr,$where,'wx_account');unset($mysql);if($res){return $token;}}
}

 

第二步:获取formId

第二步详情:获取小程序端的formid,微信小程序在对表单form进行操作的时候,会产生formid,这个需要自己去获取formid;这个formid是小程序发送模板消息必要参数之一,并且一个formid有效期只有7天,只能够使用一次。下面是我获取formId的存进数据库的数据表:(注意一个在获取formId的同时,也要获取当前的openid);每次使用完formid,这个formid就不能在使用。

第三步:判断获取formId是否过期

第三步详情:formid有一个有效期7天,所以我们要判断你使用的formid是否在有效期内。根据当前时间和createTime字段进行判断。下面是方法,我使用递归的方法,如果在有效期内,返回这个formid;如果不在这个有效期内,则递归调用自身,直至有能够使用的formid。

//判断form_id是否过期
function form($openid)
{$mysql = new Mysql();$formId = $mysql->fetchRow("select * from zacg_formId where openid='{$openid}'and status=0 ");if(empty($formId)){return false;}$create_time = $formId['createTime'];$now_time = time();$cha_time = $now_time-($create_time+60*60*24*7);if($cha_time>0){$data = array('status'=> '2');$res=$mysql->update($data,"openid='{$openid}' and formId='{$formId["formId"]}'","zacg_formId");if($res){unset($mysql);return form($openid);}}else{unset($mysql);return $formId['formId'];}
}

第四步:传递模板数据

第四步详情:发送模板消息,模板的内容需要我们自己去配凑起来,首先要去你的微信公众平台申请一个模板消息,申请成功之后,微信会给你发送一个模板id;例如下图:

 

//传递模板数据
function data($keyword,$openid,$template_id,$page,$form_id)
{$data = array("touser" => $openid,//推送的人的openid"template_id" => $template_id,//模板id"page" => $page,//跳转路径"form_id" => $form_id,//form_id"data" => $keyword);$result = sendpassMessage($data);if($result['output']['errcode']==0){return true;}else{return false;}
}

第五步:发送模板消息

//发送小程序模板消息
function sendpassMessage($data)
{$token = getTokens();$template = $data;          //数组形式的模板内容$json_template = json_encode($template);$url = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=".$token;$res = curl_post($url,urldecode($json_template));      //以post方式 向用户发送数据return $res;
}

第六步:接口(群发,循环数据库用户的openid,查找多个formid,然后群发模板消息,可在第四步之前获取数据,进行数据传递)

$keyword1= $activityInfo['title'];//活动主题
$keyword2= $activityInfo['address'];//会议地点
$keyword3= $activityInfo['limitNumber'];//参会人数
$keyword4= date("Y-m-d H:i:s",$activityInfo['startTime']) .'-'. date("Y-m-d H:i:s",$activityInfo['endTime']);//会议时间
$keyword5= "报名截止时间为". date("Y-m-d H:i:s",$activityInfo['deadline']);//温馨提示
$openidArr = $mysql->fetchRows("select openid from zacg_user where companyId={$companyId} and role in ({$role})");
foreach($openidArr as $k=>$v)
{$openid = "{$v['openid']}";$template_id = "UwvpxmzzqMBCoHd76ED4cr1GK94ps9584UJC70lXjRY";$page = "pages/activityList/activityDetails/activityDetails?id=".$activityInfo['id'];$form_id = form($openid);$formStatus = array('status'=>'1');$keyword = array('keyword1'=>array("value" => $keyword1),//活动主题'keyword2'=>array("value" => $keyword2),//会议地点'keyword3'=>array("value" => $keyword3),//参会人数'keyword4'=>array("value" => $keyword4),//会议时间'keyword5'=>array("value" => $keyword5),//温馨提示
);
$result = data($keyword,$openid,$template_id,$page,$form_id);$mysql->update($formStatus,"formId='{$form_id}'","zacg_formId");//1表示已经使用
}

注意:以上代码中的sql语句是我所在公司的框架中的写法,需要的换成你们自己的写法即可。

http://www.ahhfit.top/news/1044.html

 


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

相关文章

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

参考文献&#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;如何让你…

我做的小程序,昨天赚了 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…