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操作SVN版本服务器类代码
Nov 27 PHP
PHP 面向对象详解
Sep 13 PHP
php选择排序法实现数组排序实例分析
Feb 16 PHP
PHP加密解密类实例分析
Apr 20 PHP
PHP异常处理Exception类
Dec 11 PHP
WordPress开发中用于标题显示的相关函数使用解析
Jan 07 PHP
php版微信公众号接口实现发红包的方法
Oct 14 PHP
php实现购物车产品删除功能(2)
Jul 23 PHP
PHP回调函数与匿名函数实例详解
Aug 16 PHP
thinkPHP5框架路由常用知识点汇总
Sep 15 PHP
解决tp5在nginx下修改配置访问的问题
Oct 16 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 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
discuz论坛 用户登录 后台程序代码
2008/11/27 PHP
Cakephp 执行主要流程
2010/03/24 PHP
使用bcompiler对PHP文件进行加密的代码
2010/08/29 PHP
PHP采集类Snoopy抓取图片实例
2014/06/19 PHP
document.getElementById的简写方式(获取id对象的简略写法)
2010/09/10 Javascript
JQuery.Ajax之错误调试帮助信息介绍
2013/07/04 Javascript
jQuery过滤选择器:not()方法使用介绍
2014/04/20 Javascript
Node.js实现批量去除BOM文件头
2014/12/20 Javascript
在Mac OS下使用Node.js的简单教程
2015/06/24 Javascript
JavaScript常用判断写法大全(推荐)
2016/05/30 Javascript
Node.js如何自动审核团队的代码
2016/07/20 Javascript
jQuery事件处理的特征(事件命名机制)
2016/08/23 Javascript
JS作用域闭包、预解释和this关键字综合实例解析
2016/12/16 Javascript
JavaScript中三个等号和两个等号你了解多少
2017/07/04 Javascript
jquery使用iscorll实现上拉、下拉加载刷新
2017/10/26 jQuery
vue技术分享之你可能不知道的7个秘密
2018/04/09 Javascript
vue项目中使用scss的方法步骤
2019/05/16 Javascript
Vue模板语法中数据绑定的实例代码
2019/05/17 Javascript
小程序实现悬浮搜索框
2019/07/12 Javascript
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
p5.js临摹旋转爱心
2019/10/23 Javascript
解决Python传递中文参数的问题
2015/08/04 Python
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
python模拟鼠标点击和键盘输入的操作
2019/08/04 Python
Python对接 xray 和微信实现自动告警
2019/09/17 Python
Python中关于logging模块的学习笔记
2020/06/03 Python
Python dict的常用方法示例代码
2020/06/23 Python
canvas简单连线动画的实现代码
2020/02/04 HTML / CSS
美国轮胎网站:Priority Tire
2018/11/28 全球购物
系统管理员的职责包括那些?管理的对象是什么?
2016/09/20 面试题
在求职信中如何凸显个人优势
2013/10/30 职场文书
英语专业求职信
2014/07/08 职场文书
项目建议书
2015/02/04 职场文书
停电调休通知
2015/04/16 职场文书
三八节祝酒词
2015/08/11 职场文书
纯html+css实现打字效果
2021/08/02 HTML / CSS