整合ThinkPHP功能系列之微信公众号模板消息发送
时间:2022-06-04
本文章向大家介绍整合ThinkPHP功能系列之微信公众号模板消息发送,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
所有服务号都可以在功能、添加功能插件处看到申请模板消息功能的入口,但只有认证后的服务号才可以申请模板消息的使用权限并获得该权限
这里不说申请。。。对于模板ID的获取请自行去获取,这里只说在ThinkPHP框架下对微信模板消息发送进行封装
代码封装好的我上传到了Github上,自己去查看一下,地址:thinkphp-syz,这里说一下主要的
/**
* 获取微信access token
* @return mixed
*/
public function getAccessToken()
{
$accessToken = S('ACCESS_TOKEN');
if(is_null($accessToken)) {
self::$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$this->_appid}&secret={$this->_key}";
$tokenJson = self::curlRequest(self::$url);
$tokenArr = json_decode($tokenJson,true);
if(isset($tokenArr['errcode'])) {
return false;
}
// 缓存$tokenArr['access_token']数据7200秒
S('ACCESS_TOKEN',$tokenArr['access_token'],$tokenArr['expires_in']);
$accessToken = $tokenArr['access_token'];
}
return $accessToken;
}
这里获取了微信的access_token,access_token是公众号的全局唯一接口调用凭据,公众号调用模板消息接口时需要使用access_token
access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效,然而请求次数也有所限制,所以我们需要使用缓存来操作
这里最好使用Redis去操作发送模板消息或者请求获取access_token接口
将微信模板消息ID的参数信息放到config里面,具体的自行配置吧,目录在 ApplicationCommonConfwechat.php
中
'TEMPLETEID' => array(
'1' => '', //推荐成功通知
'2' => '', //收益提示
'3' => '', //订单发货通知
'4' => '', //订单支付成功
'5' => '', //手机绑定成功通知
),
配置完成以后就开始调用吧
/**
* 微信模板消息发送接口示例demo
*/
public function sendWeChatTemplete()
{
vendor('Weixin.WeChatTemplete');
$openid = ''; //用户的openid
$templateId = C('TEMPLETEID.5'); //微信模板ID
// 详细内容
// {{first.DATA}}
// 手机号:{{keyword1.DATA}}
// 时间:{{keyword2.DATA}}
// {{remark.DATA}}
// 内容示例
// 您好,欢迎注册沈唁志!
// 手机号:13800000000
// 时间:2016-05-03 12:00:00
// 沈唁博客(qq52o.me)是关注PHP开发等技术的个人博客,同时是个人程序人生的点滴记录和时光储备。
// (点击跳转到首页)
$data= array(
'first'=> array('value'=>'您好,欢迎注册沈唁志!'),//推荐人昵称
'keyword1'=> array('value'=>'13800000000'), //手机号
'keyword2'=> array('value'=>date("Y-m-d H:i:s",time())), //时间 格式 '2016-05-03 12:00:00'
'remark'=> array('value'=>'沈唁博客(qq52o.me)是关注PHP开发等技术的个人博客,同时是个人程序人生的点滴记录和时光储备。'),
);
$url = 'https://qq52o.me/'; //点击模板详情跳转地址 默认为null
$appid = C('WECHAT.appid');
$key = C('WECHAT.appKey');
$wct = new WeChatTemplete($appid,$key); //初始化类
$result = $wct->sendTemplate($openid, $templateId, $data, $url); //执行发送
p($result);
}
这里没有封装跳转小程序的,只有跳转网页,url这个跳转默认为空,如果需要跳转的话就传$url的参数即可
有问题还是多看看官方文档吧
- WordPress给文章添加百度是否已收录查询和显示功能(自定义栏目优化版)
- PHP制作百度站内搜索绿色通道的网页列表数据文件
- 分享几个可用的二维码API,以及给博客添加文章二维码图片的方法
- AI即开即用,这是悄然推出的“腾讯最新AI技术”小程序
- Android Linker 与 SO 加壳技术
- Go语言操作mysql数据库简单例子
- go语言的sql包原理与用法分析
- WordPress免插件生成完整站点地图(sitemap.xml)的php代码
- Go语言常用字符串处理方法实例汇总
- 硬盘故障时如何强制关机:Input/output error
- 举例讲解Go语言中函数的闭包使用
- 实现WordPress提交评论的时删除该页面的WP-Super-Cache缓存的方法
- php自动生成百度开放适配PC页-手机页pattern对应关系sitemap.xml
- Linux系统最大文件打开数优化,解决Too many open files报错
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- (25)Bash数值运算与运算符
- (27)正则表达式
- (28)字符截取命令cut、printf
- (29)字符截取命令awk
- RTSP协议视频平台EasyNVR流媒体服务器音频播放完毕后,视频为什么也会卡住?
- Redis | Redis 有序集合相关命令
- TypeScript 4.0正式发布!现在是开始使用它的最佳时机
- 微服务开源框架TARS 之 基础组件
- Gitlab-ci:从零开始的前端自动化部署
- 从 1 到 0 构建博客项目(导读)
- 应该在JavaScript中使用Class吗
- Go语言小书 | 关于编译和语法
- Go语言小书 | 小试牛刀,从hello world开始
- 3分钟短文 | Laravel 中间件传递数据到控制器
- 3分钟短文 | Laravel 表单验证数组的数据