php微信 消息推送 配置,PHP微信公众号模板消息推送
1,进入微信公众平台查看模板,如果在功能下面看不到模板消息的话,点击添加功能插件,开通消息模板;
2,添加号模板之后记录好模板消息id;
3,发送模板消息的方法
/**
* 发送模板消息
*/
protected function send_notice($json_template){
//获取access_token
if (Session::get('access_token')){
$access_token2=Session::get('access_token');
}else{
$appid = 'xxxxxxx';//微信公众号的appid
$appsecret = 'xxxxxxxxxxxxxxxxxxxxxx';//微信公众号的appsecret
$jsontoken=$this->curl_post("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appid}&secret=${appsecret}");
$access_token1=json_decode($jsontoken,true);
$access_token2=$access_token1['access_token'];
Session::set('access_token', $access_token2);
//setcookie('access_token',$access_token2,7200);
}
//模板消息
//$url = "https://api.weixin.qq.com/cgi- bin/message/template/send?access_token=".$access_token2;
$url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=${access_token2}";
$res = $this->curl_post($url,urldecode($json_template));
return $res;
/*if ($res['errcode']==0){
return '发送成功';
}else{
return '发送失败';
}*/
}
复制代码
4,将模板消息json格式化
/**
* 将模板消息json格式化
*/
protected function json_tempalte($first,$keyword1,$keyword2,$openid,$tempalate_id){
//模板消息
$template=array(
'touser'=>$openid, //用户openid
'template_id'=>$tempalate_id, //在公众号下配置的模板id
'url'=>"", //点击模板消息会跳转的链接
'topcolor'=>"#7B68EE",
'data'=>array(
'first'=>array('value'=>urlencode($first),'color'=>"#173177"),
'keyword1'=>array('value'=>urlencode($keyword1),'color'=>'#173177'), //keyword需要与配置的模板消息对应
'keyword2'=>array('value'=>urlencode($keyword2),'color'=>'#173177'),
//'keyword3'=>array('value'=>urlencode('测试发布人'),'color'=>'#173177'), //'keyword4'=>array('value'=>urlencode('测试状态'),'color'=>'#173177'), 'remark' =>array('value'=>urlencode('请及时联系客户进行续约或退房'),'color'=>'#173177'), )
);
$json_template=json_encode($template);
return $json_template;
}
复制代码
5,请求的方法
/**
* @param $url
* @param array $data
* @return mixed
* curl请求
*/
protected function curl_post($url , $data=array()){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
// POST数据
curl_setopt($ch, CURLOPT_POST, 1);
// 把post的变量加上
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
复制代码
6,查询要推送的数据调用推送的方法(根据自己的实际情况查询数据),也可放进脚本满足条件的每天进行推送,就完成了。
protected function warn()
{
$err = [];//记录推送失败的记录
$tempalate_id = 'xxxxxxxxxxx';//公众号消息模板
//收房合同
$o_fifteen = ['TIMESTAMPDIFF(DAY,DATE_FORMAT(NOW(), "%Y-%m-%d"),time)' => 15];
$o_thirty = ['TIMESTAMPDIFF(DAY,DATE_FORMAT(NOW(), "%Y-%m-%d"),time)' => 30];
$fif_ocontract = Db::name('table')->where('status',5)->where('salement',257)->where($o_fifteen)->select(); if (!empty($fif_ocontract)) {
foreach ($fif_ocontract as $k => $v) {
$manager = Db::name('table')->where('hid',$v['house_id'])->value('manager');
$staff = Db::name('table')->field('field')->where('id',$manager)->find(); $first = "亲爱的管房人,您有客户的合同即将到期";
$keyword1 = "合同编号";
$keyword2 = "到期时间";
$json_template = $this->json_tempalte($first,$keyword1,$keyword2,$staff['openid'],$tempalate_id);
$res = $this->send_notice( $json_template);
printLn("{$res}");
if ($res['errcode']!=0){
$err[] = '【'.$v['id'].'】合同到期推送失败';
}
}
}
if (!empty($err)) $this->_error('合同到期提醒推送失败,'.var_export($err,true));
$this->_succ('合同到期提醒推送成功');
}
复制代码
注意:在获取access_token有可能提示:
{"errcode":40013,"errmsg":"invalid appid rid: 5f87c480-202828a3-273742df"}
复制代码
要注意请求的url对appid和appsecret的拼接,不是直接appid而是appid 而是appid而是{appid}
在请求发送模板消息时可能提示:
bin/message/template/send?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
HTTP/1.1 404 Not Found
Connection: close
Date: Thu, 15-Oct-2020 03:50:52 GMT Content-Length: 0
复制代码
也是要注意参数拼接问题,如:不能像url1一样拼接,正确的写法是像url2。
//$url = "https://api.weixin.qq.com/cgi- bin/message/template/send?access_token=".$access_token2;
$ur2 = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=${access_token2}";
复制代码
php微信 消息推送 配置,PHP微信公众号模板消息推送相关推荐
- 微信公众号 - Java推送公众号模板消息给用户
不啰嗦,我们直接开始! 由于没有公众帐号,本文使用微信公众平台接口测试帐号进行调试. 一.申请测试帐号 1.使用微信扫码登录下面网址 微信公众平台 (qq.com) 2.找到appID和appsecr ...
- 公众平台模板消息所在行业_微信公众号模板消息功能怎么快速推送?
公众号平台上模板消息功能仅支持添加模板和更改所在行业,不支持模板消息推送,如果想要实现更多功能效果,可以使用微号帮平台的模板消息群发功能实现,也可以通过公众号平台的接口自己开发实现功能,均可以达到微信 ...
- C#开发微信门户及应用(27)-公众号模板消息管理
原文:C#开发微信门户及应用(27)-公众号模板消息管理 通过模板消息接口,公众号能向关注其账号的用户发送预设模板的消息.模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中, ...
- 基于tp5 微信公众号模板消息
首先引入微信sdk,然后配置appid,appsecret,然后实例化类 发送模板消息前期准备 先通过appid appsecret获取code ,然后通过code获取access_token 通过a ...
- 微信公众号模板消息管理
通过模板消息接口,公众号能向关注其账号的用户发送预设模板的消息.模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等.不支持广告等营销类消 ...
- 微信公众号-模板消息管理
微信公众号-模板消息管理 通过模板消息接口,公众号能向关注其账号的用户发送预设模板的消息.模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通 ...
- 关于微信公众号模板消息的调整,你怎么看?
早上起来,有客户反馈,推送的消息出现了问题. 经过测试,确实收到的消息和以前不一样了. 这就比较奇怪了,最近也没有做什么调整,为啥忽然就出问题了呢. 先自己检测测试了一下,发现发送的内容中的头尾部分没 ...
- 公众号获取用户手机号_微信公众号模板消息软件怎么指定用户发送?
使用公众平台模板消息功能,仅支持添加模板和更改所在行业,如果想要实现更多功能效果,可以通过微号帮平台的模板消息群发功能实现,也可以自己根据公众平台的开发接口编程实现功能,均能实现微信公众号模板消息指定 ...
- asp群发微信公众号模板消息代码
刚刚做的一个项目需要用到asp群发微信公众号的模板消息, 以前没做过,想了一会用了下面这种方法实现的模板消息群发推送,效果很好. asp群发微信公众号模板消息代码
- 【微信公众号模板消息First,Remark字段不显示】
微信公众号模板消息First,Remark字段不显示 问题 结论 问题 一.今天我们项目组上线一个新版本,其中涉及到了公众号模板消息发送,这是我上个月自测的效果图: 二.然后今天5月5号上线后产品进行 ...
最新文章
- Angular应用提高打包速度
- Error in plot.new(): figure margins too large
- Ubuntu Linux 安装 .7z 解压和压缩文件
- ni软件管理器_Multisim 12.0软件安装包+安装教程
- Python笔记之读取yaml文件
- 比较器matlab,用于比较 MATLAB 对象的公共属性的比较器 - MATLAB
- MathWorks 中国
- php能做什么程序,PHP 能做什么?
- Ubuntu Apache 不同端口监听不同站点
- Linux操作系统[下载安装][命令][工具使用]
- 【高德地图】------- JavaScript实现高德地图经纬度获取地址位置
- 学习matlab(十四)——GUI
- CentOS7安装显卡驱动
- 2019腾讯算法广告大赛冠军方案复现遇到的问题 python
- No MyBatis mapper was found in ‘[xx.mapper]‘ package. Please check your configuration.特殊处理
- Python物流运输管理系统源代码,基于Django实现,实现了运单录入、发车出库、到货签收、客户签收等基本功能,含测试账号
- Vulnhub--bulldog
- C++:数组、链表与哈希表
- 使用mpx开发外卖小程序完整教程(附源码)
- 浅谈网络世界中的Power Law现象(一) 什么是Power Law
- linux 虚拟ip 双机,keepalived配置虚拟ip(vip)实现双机热备以及自动切换主备
热门文章
- C语言100ms周期运行时间不够,DEH-系统调研报告.docx
- 2.16 自定义快速访问工具栏以提升工作效率 [原创Excel教程]
- 教室多媒体计算机主频,多媒体教室配置和列表.doc
- logit和logistic模型
- SpringBoot电影网站源码(含数据库)
- yansongda/pay 支付遇到的坑
- flash cs6快捷键
- 如何使用 LumaQQ 核心 API
- java判断简体和繁体字_java获取系统语言(区分简体中文和繁体中文)
- ARKit玩起来 - AR卡通秀-史小川-专题视频课程