PHP微信模板消息操作示例


Posted in PHP onJune 29, 2017

本文实例讲述了PHP微信模板消息操作方法。分享给大家供大家参考,具体如下:

微信SDK:

<?php
class Oauth {
  //获得全局access_token
  public function get_token(){
  //如果已经存在直接返回access_token
    //if($_SESSION['access_token'] && $_SESSION['expire_time']>time()){
      //return $_SESSION['access_token'];
    //}else{
    //1.请求url地址
    $appid = APPID;  //appid
    $appsecret = APPSECRET;//appsecret
    $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret; //请求地址
    //2初始化curl请求
    $ch = curl_init();
    //3.配置请求参数
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
    curl_setopt($ch, CURLOPT_URL, $url);//请求
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //不直接输出数据
    //4.开始请求
    $res = curl_exec($ch); //获取请求结果
    if( curl_errno($ch) ){
      var_dump( curl_error($ch) ); //打印错误信息
    }
    //5.关闭curl
    curl_close( $ch );
    $arr = json_decode($res, true); //将结果转为数组
    //$_SESSION['access_token']=$arr['access_token'];//将access_token存入session中,可以不存,每次都获得新的token
    //$_SESSION['expire_time']=time()+7200;
    return $arr['access_token'];
    //}
  }
  //推送模板信息  参数:发送给谁的openid,客户姓名,客户电话,推荐楼盘(参数自定)
  function sendMessage($openid,$customName,$customPhone,$reportBuilding) {
    //获取全局token
    $token = $this->get_token();
    $url="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=".$token; //模板信息请求地址
    //发送的模板信息(微信要求json格式,这里为数组(方便添加变量)格式,然后转为json)
    $post_data = array(
        "touser"=>$openid, //推送给谁,openid
        "template_id"=>"nKu4eyktzxOslxq0KfPxhGXbiOo873K9mIxKvs23EVU", //微信后台的模板信息id
        "url"=>"http://www.baidu.com", //下面为预约看房模板示例
        "data"=> array(
            "first" => array(
                "value"=>"您有新客户,请及时查看!",
                "color"=>"#173177"
            ),
            "customName"=>array(
                "value"=>$customName, //传的变量
                "color"=>"#173177"
            ),
            "customPhone"=>array(
                "value"=>$customPhone,
                "color"=>"#173177"
            ),
            "reportBuilding"=> array(
                "value"=>$reportBuilding,
                "color"=>"#173177"
            ),
            "reportTime"=> array(
                "value"=>date('Y-m-d H:i:s'),
                "color"=>"#173177"
            ),
            "remark"=> array(
                "value"=>"请及时联系客户哦!",
                "color"=>"#173177"
            ),
        )
    );
    //将上面的数组数据转为json格式
    $post_data = json_encode($post_data);
    //发送数据,post方式
//配置curl请求
    $ch = curl_init();//创建curl请求
    curl_setopt($ch, CURLOPT_URL,$url); //设置发送数据的网址
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //设置有返回值,0,直接显示
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0); //禁用证书验证
    curl_setopt($ch, CURLOPT_POST, 1);//post方法请求
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);//post请求发送的数据包
    //接收执行返回的数据
    $data = curl_exec($ch);
    //关闭句柄
    curl_close($ch);
    $data = json_decode($data,true); //将json数据转成数组
    return $data;
  }
  //获取模板信息-行业信息(参考,示例未使用)
  function getHangye(){
    //用户同意授权后,会传过来一个code
    $token = $this->get_token();
    $url = "https://api.weixin.qq.com/cgi-bin/template/get_industry?access_token=".$token;
    //请求token,get方式
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
    $data = curl_exec($ch);
    curl_close($ch);
    $data = json_decode($data,true); //将json数据转成数组
    //return $data["access_token"];
    return $data;
}
}

PHP代码:

//推送模板信息给置业顾问
$send = new Oauth();//实例化类
$send->sendMessage($zhiyeguwen,$clientName,$tel,$product);//调用方法

完成,微信模板信息不难,有问题互相交流!!!

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php读取html并截取字符串的简单代码
Nov 30 PHP
PHP中数组的三种排序方法分享
May 07 PHP
PHP中如何调用webservice的实例参考
Apr 25 PHP
php实现保存submit内容之后禁止刷新
Mar 19 PHP
ThinkPHP自动完成中使用函数与回调方法实例
Nov 29 PHP
php获取发送给用户的header信息的方法
Mar 16 PHP
PHP的pcntl多进程用法实例
Mar 19 PHP
PHP二维数组排序简单实现方法
Feb 14 PHP
php结合redis高并发下发帖、发微博的实现方法
Dec 15 PHP
PHP实现的AES加密、解密封装类与用法示例
Aug 02 PHP
django中的ajax组件教程详解
Oct 18 PHP
PHP获取访问设备信息的方法示例
Feb 20 PHP
PHP开发的微信现金红包功能示例
Jun 29 #PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
Jun 29 #PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
Jun 28 #PHP
Symfony2针对输入时间进行查询的方法分析
Jun 28 #PHP
Symfony查询方法实例小结
Jun 28 #PHP
关于PHP转换超过2038年日期出错的问题解决
Jun 28 #PHP
YII2自动登录Cookie总是失效的解决方法
Jun 28 #PHP
You might like
php中{}大括号是什么意思
2013/12/01 PHP
php二维数组转成字符串示例
2014/02/17 PHP
PHP中的命名空间相关概念浅析
2015/01/22 PHP
javascript options属性集合操作代码
2009/12/28 Javascript
JS实现模仿微博发布效果实例代码
2013/12/16 Javascript
javascript中的作用域和闭包详解
2016/01/13 Javascript
讲解JavaScript的Backbone.js框架的MVC结构设计理念
2016/02/14 Javascript
JS for...in 遍历语句用法实例分析
2016/08/24 Javascript
如何解决hover在ie6中的兼容性问题
2016/12/15 Javascript
深入剖析Express cookie-parser中间件实现示例
2018/02/01 Javascript
JS实现匀速与减速缓慢运动的动画效果封装示例
2018/08/27 Javascript
laydate时间日历插件使用方法详解
2018/11/14 Javascript
微信小程序 自定义复选框实现代码实例
2019/09/04 Javascript
vue 递归组件的简单使用示例
2021/01/14 Vue.js
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
Python生成随机验证码的两种方法
2015/12/22 Python
详解Python中for循环是如何工作的
2017/06/30 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
2018/05/25 Python
python执行CMD指令,并获取返回的方法
2018/12/19 Python
快速排序的四种python实现(推荐)
2019/04/03 Python
Python3利用print输出带颜色的彩色字体示例代码
2019/04/08 Python
Python对ElasticSearch获取数据及操作
2019/04/24 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
djano一对一、多对多、分页实例代码
2019/08/16 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
2019/09/11 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
2019/12/11 Python
Python实现删除某列中含有空值的行的示例代码
2020/07/20 Python
pytorch下的unsqueeze和squeeze的用法说明
2021/02/06 Python
Python读写Excel表格的方法
2021/03/02 Python
超市营业员岗位职责
2013/12/20 职场文书
电子商务优秀毕业生求职信
2014/07/11 职场文书
初中英语教学反思范文
2016/02/15 职场文书
经典哲理警句:志不真则心不热,心不热则功不贤
2019/11/14 职场文书
使用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull())
2021/05/14 Python
详解Java实现设计模式之责任链模式
2021/06/23 Java/Android
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
2021/07/26 Java/Android