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 email邮箱正则
Oct 08 PHP
PHP中使用gettext来支持多语言的方法
May 02 PHP
有关phpmailer的详细介绍及使用方法
Jan 28 PHP
PHP父类调用子类方法的代码例子
Apr 09 PHP
ThinkPHP3.1新特性之字段合法性检测详解
Jun 19 PHP
php判断当前用户已在别处登录的方法
Jan 06 PHP
php多次include后导致全局变量global失效的解决方法
Feb 28 PHP
详解php的socket通信
Aug 11 PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
Dec 10 PHP
thinkPHP5.0框架独立配置与动态配置方法
Mar 17 PHP
PHP实现防盗链的方法分析
Jul 25 PHP
关于PHP数组迭代器的使用方法实例
Nov 17 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作的文本留言本的例子(二)
2006/10/09 PHP
php 获取select下拉列表框的值
2010/05/08 PHP
PHP的加密方式及原理
2012/06/14 PHP
迁移PHP版本到PHP7
2015/02/06 PHP
php技术实现加载字体并保存成图片
2015/07/27 PHP
Laravel 框架控制器 Controller原理与用法实例分析
2020/04/14 PHP
Jquery颜色选择器ColorPicker实现代码
2012/11/14 Javascript
JavaScript 模式之工厂模式(Factory)应用介绍
2012/11/15 Javascript
node.js中的console.error方法使用说明
2014/12/10 Javascript
使用JavaScript刷新网页的方法
2015/06/04 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
2016/03/11 Javascript
深入浅析JS的数组遍历方法(推荐)
2016/06/15 Javascript
一个简单不报错的summernote 图片上传案例
2016/07/11 Javascript
Node.js中看JavaScript的引用
2017/04/22 Javascript
React学习笔记之列表渲染示例详解
2017/08/22 Javascript
vue 数组和对象不能直接赋值情况和解决方法(推荐)
2017/10/25 Javascript
JavaScript常见鼠标事件与用法分析
2019/01/03 Javascript
javascript实现点击星星小游戏
2019/12/24 Javascript
jQuery实现小火箭返回顶部特效
2020/02/03 jQuery
解决pycharm双击但是无法打开的情况
2020/10/31 Javascript
python数组过滤实现方法
2015/07/27 Python
python调用百度REST API实现语音识别
2018/08/30 Python
python机器人运动范围问题的解答
2019/04/29 Python
利用python计算windows全盘文件md5值的脚本
2019/07/27 Python
使用python的turtle函数绘制一个滑稽表情
2020/02/28 Python
keras自定义损失函数并且模型加载的写法介绍
2020/06/15 Python
html5实现微信打飞机游戏
2014/03/27 HTML / CSS
写给女朋友的检讨书
2014/01/28 职场文书
求职信模板标准格式范文
2014/02/23 职场文书
产品设计开发计划书
2014/05/07 职场文书
党员廉洁自律承诺书
2014/05/26 职场文书
乡镇平安建设汇报材料
2014/08/25 职场文书
贯彻落实“八项规定”思想汇报
2014/09/13 职场文书
党委书记个人对照检查材料
2014/09/15 职场文书
保管员岗位职责
2015/02/14 职场文书
使用vue判断当前环境是安卓还是IOS
2022/04/12 Vue.js