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输出控制功能在简繁体转换中的应用
Oct 09 PHP
PHP 中文处理技巧
Apr 25 PHP
浅析PHP原理之变量分离/引用(Variables Separation)
Aug 09 PHP
php三维数组去重(示例代码)
Nov 26 PHP
php中sprintf与printf函数用法区别解析
Feb 17 PHP
PHP.vs.JAVA
Apr 29 PHP
浅谈mysql_query()函数的返回值问题
Sep 05 PHP
php解析mht文件转换成html的实例
Mar 13 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 PHP
PHP进阶学习之类的自动加载机制原理分析
Jun 18 PHP
php模式设计之观察者模式应用实例分析
Sep 25 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
Oct 08 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
一个程序下载的管理程序(四)
2006/10/09 PHP
PHP 清空varnish 缓存的详解(包括指定站点下的)
2013/06/20 PHP
深入PHP许愿墙模块功能分析
2013/06/25 PHP
php实现的操作excel类详解
2016/01/15 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
laravel框架与其他框架的详细对比
2019/10/23 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
jQuery 使用手册(一)
2009/09/23 Javascript
javascript基于HTML5 canvas制作画箭头组件
2014/06/25 Javascript
jQuery Validate表单验证入门学习
2015/12/18 Javascript
解决jquery无法找到其他父级子集问题的方法
2016/05/10 Javascript
基于JS实现textarea中获取动态剩余字数的方法
2016/05/25 Javascript
angularjs 页面自适应高度的方法
2018/01/17 Javascript
NodeJS使用Range请求实现下载功能的方法示例
2018/10/12 NodeJs
js+html实现点名系统功能
2019/11/05 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
2020/03/04 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
three.js 将图片马赛克化的示例代码
2020/07/31 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
使用Python编写基于DHT协议的BT资源爬虫
2016/03/19 Python
python构建深度神经网络(DNN)
2018/03/10 Python
Python多图片合并PDF的方法
2019/01/03 Python
python安装pywin32clipboard的操作方法
2019/01/24 Python
不到20行代码用Python做一个智能聊天机器人
2019/04/19 Python
解决Django连接db遇到的问题
2019/08/29 Python
PyQt5多线程防卡死和多窗口用法的实现
2020/09/15 Python
业务经理的岗位职责
2013/11/16 职场文书
农贸市场管理制度
2014/01/31 职场文书
2014社区三八妇女节活动方案
2014/03/30 职场文书
大学团日活动新闻稿
2014/09/10 职场文书
领导干部作风建设总结
2014/10/23 职场文书
工作调动申请报告
2015/05/18 职场文书
2015年保险公司内勤工作总结
2015/05/23 职场文书
十七岁的单车观后感
2015/06/12 职场文书
爱岗敬业事迹材料
2019/06/20 职场文书
前端与RabbitMQ实时消息推送未读消息小红点实现示例
2022/07/23 Java/Android