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 相关文章推荐
使用php4加速网络传输
Oct 09 PHP
新手学PHP之数据库操作详解及乱码解决!
Jan 02 PHP
PHP中for循环语句的几种变型
Mar 16 PHP
php Undefined index和Undefined variable的解决方法
Mar 27 PHP
php _autoload自动加载类与机制分析
Feb 10 PHP
PHP中source #N问题的解决方法
Jan 27 PHP
smarty中英文多编码字符截取乱码问题解决方法
Oct 28 PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
Dec 10 PHP
Smarty变量用法详解
May 11 PHP
php的socket编程详解
Nov 20 PHP
laravel框架中视图的基本使用方法分析
Nov 23 PHP
PHP高并发和大流量解决方案整理
Mar 09 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实现mysql同步的实现方法
2009/10/21 PHP
PHP5中使用DOM控制XML实现代码
2010/05/07 PHP
PHP图片验证码制作实现分享(全)
2012/05/10 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
2014/04/29 PHP
php获取Google机器人访问足迹的方法
2015/04/15 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
ExtJS4 组件化编程,动态加载,面向对象,Direct
2011/05/12 Javascript
jquery插件之定时查询待处理任务数量
2014/05/01 Javascript
jquery使用$(element).is()来判断获取的tagName
2014/08/24 Javascript
轻松创建nodejs服务器(9):实现非阻塞操作
2014/12/18 NodeJs
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
2016/12/19 Javascript
使用AngularJS2中的指令实现按钮的切换效果
2017/03/27 Javascript
vue项目中axios请求网络接口封装的示例代码
2018/12/18 Javascript
js实现提交前对列表数据的增删改查
2020/01/16 Javascript
vue输入框使用模糊搜索功能的实现代码
2020/05/26 Javascript
vue实现前端分页完整代码
2020/06/17 Javascript
python中sleep函数用法实例分析
2015/04/29 Python
python 计算两个日期相差多少个月实例代码
2017/05/24 Python
Python用imghdr模块识别图片格式实例解析
2018/01/11 Python
python分治法求二维数组局部峰值方法
2018/04/03 Python
Window10下python3.7 安装与卸载教程图解
2019/09/30 Python
Django使用list对单个或者多个字段求values值实例
2020/03/31 Python
Django后端按照日期查询的方法教程
2021/02/28 Python
html5指南-4.使用Geolocation实现定位功能
2013/01/07 HTML / CSS
大学生期末自我鉴定
2014/02/01 职场文书
公司向个人借款协议书范本
2014/10/09 职场文书
学生检讨书范文
2014/10/30 职场文书
抄袭同学作业检讨书1000字
2014/11/20 职场文书
2014年实习期工作总结
2014/11/27 职场文书
简历自我评价优缺点
2015/03/11 职场文书
幼儿园中班教育随笔
2015/08/14 职场文书
调研报告的主要写法
2019/04/18 职场文书
Python爬虫数据的分类及json数据使用小结
2021/03/29 Python
教你如何使用Python Tkinter库制作记事本
2021/06/10 Python
python实现局部图像放大
2021/11/17 Python