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微信公众号模板消息推送相关推荐

  1. 微信公众号 - Java推送公众号模板消息给用户

    不啰嗦,我们直接开始! 由于没有公众帐号,本文使用微信公众平台接口测试帐号进行调试. 一.申请测试帐号 1.使用微信扫码登录下面网址 微信公众平台 (qq.com) 2.找到appID和appsecr ...

  2. 公众平台模板消息所在行业_微信公众号模板消息功能怎么快速推送?

    公众号平台上模板消息功能仅支持添加模板和更改所在行业,不支持模板消息推送,如果想要实现更多功能效果,可以使用微号帮平台的模板消息群发功能实现,也可以通过公众号平台的接口自己开发实现功能,均可以达到微信 ...

  3. C#开发微信门户及应用(27)-公众号模板消息管理

    原文:C#开发微信门户及应用(27)-公众号模板消息管理 通过模板消息接口,公众号能向关注其账号的用户发送预设模板的消息.模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中, ...

  4. 基于tp5 微信公众号模板消息

    首先引入微信sdk,然后配置appid,appsecret,然后实例化类 发送模板消息前期准备 先通过appid appsecret获取code ,然后通过code获取access_token 通过a ...

  5. 微信公众号模板消息管理

    通过模板消息接口,公众号能向关注其账号的用户发送预设模板的消息.模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等.不支持广告等营销类消 ...

  6. 微信公众号-模板消息管理

    微信公众号-模板消息管理 通过模板消息接口,公众号能向关注其账号的用户发送预设模板的消息.模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通 ...

  7. 关于微信公众号模板消息的调整,你怎么看?

    早上起来,有客户反馈,推送的消息出现了问题. 经过测试,确实收到的消息和以前不一样了. 这就比较奇怪了,最近也没有做什么调整,为啥忽然就出问题了呢. 先自己检测测试了一下,发现发送的内容中的头尾部分没 ...

  8. 公众号获取用户手机号_微信公众号模板消息软件怎么指定用户发送?

    使用公众平台模板消息功能,仅支持添加模板和更改所在行业,如果想要实现更多功能效果,可以通过微号帮平台的模板消息群发功能实现,也可以自己根据公众平台的开发接口编程实现功能,均能实现微信公众号模板消息指定 ...

  9. asp群发微信公众号模板消息代码

    刚刚做的一个项目需要用到asp群发微信公众号的模板消息, 以前没做过,想了一会用了下面这种方法实现的模板消息群发推送,效果很好. asp群发微信公众号模板消息代码

  10. 【微信公众号模板消息First,Remark字段不显示】

    微信公众号模板消息First,Remark字段不显示 问题 结论 问题 一.今天我们项目组上线一个新版本,其中涉及到了公众号模板消息发送,这是我上个月自测的效果图: 二.然后今天5月5号上线后产品进行 ...

最新文章

  1. Angular应用提高打包速度
  2. Error in plot.new(): figure margins too large
  3. Ubuntu Linux 安装 .7z 解压和压缩文件
  4. ni软件管理器_Multisim 12.0软件安装包+安装教程
  5. Python笔记之读取yaml文件
  6. 比较器matlab,用于比较 MATLAB 对象的公共属性的比较器 - MATLAB - MathWorks 中国
  7. php能做什么程序,PHP 能做什么?
  8. Ubuntu Apache 不同端口监听不同站点
  9. Linux操作系统[下载安装][命令][工具使用]
  10. 【高德地图】------- JavaScript实现高德地图经纬度获取地址位置
  11. 学习matlab(十四)——GUI
  12. CentOS7安装显卡驱动
  13. 2019腾讯算法广告大赛冠军方案复现遇到的问题 python
  14. No MyBatis mapper was found in ‘[xx.mapper]‘ package. Please check your configuration.特殊处理
  15. Python物流运输管理系统源代码,基于Django实现,实现了运单录入、发车出库、到货签收、客户签收等基本功能,含测试账号
  16. Vulnhub--bulldog
  17. C++:数组、链表与哈希表
  18. 使用mpx开发外卖小程序完整教程(附源码)
  19. 浅谈网络世界中的Power Law现象(一) 什么是Power Law
  20. linux 虚拟ip 双机,keepalived配置虚拟ip(vip)实现双机热备以及自动切换主备

热门文章

  1. C语言100ms周期运行时间不够,DEH-系统调研报告.docx
  2. 2.16 自定义快速访问工具栏以提升工作效率 [原创Excel教程]
  3. 教室多媒体计算机主频,多媒体教室配置和列表.doc
  4. logit和logistic模型
  5. SpringBoot电影网站源码(含数据库)
  6. yansongda/pay 支付遇到的坑
  7. flash cs6快捷键
  8. 如何使用 LumaQQ 核心 API
  9. java判断简体和繁体字_java获取系统语言(区分简体中文和繁体中文)
  10. ARKit玩起来 - AR卡通秀-史小川-专题视频课程