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开发模式(简写版)
Mar 15 PHP
PHP开发规范手册之PHP代码规范详解
Jan 13 PHP
PHP session_start()问题解疑(详细介绍)
Jul 05 PHP
php获取网页标题和内容函数(不包含html标签)
Feb 03 PHP
yii框架配置默认controller和action示例
Apr 30 PHP
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
May 08 PHP
php使用ob_start()实现图片存入变量的方法
Nov 14 PHP
图文详解PHP环境搭建教程
Jul 16 PHP
PHP中如何判断exec函数执行成功?
Aug 04 PHP
PHP 接入微信扫码支付总结(总结篇)
Nov 03 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
Dec 05 PHP
深入浅析PHP的session反序列化漏洞问题
Jun 15 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
第八节--访问方式
2006/11/16 PHP
深入array multisort排序原理的详解
2013/06/18 PHP
php相对当前文件include其它文件的方法
2015/03/13 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
2015/04/17 PHP
php定期拉取数据对比方法实例
2019/09/22 PHP
Javascript中Event属性搜集整理
2013/09/17 Javascript
showModalDialog在谷歌浏览器下会返回Null的解决方法
2013/11/27 Javascript
JQuery实现table行折叠效果以JSON做数据源
2014/05/26 Javascript
在Ubuntu上安装最新版本的Node.js
2014/07/14 Javascript
jQuery实现的一个自定义Placeholder属性插件
2014/08/11 Javascript
使用pjax实现无刷新更改页面url
2015/02/05 Javascript
jQuery插件jFade实现鼠标经过的图片高亮其它变暗
2015/03/14 Javascript
JavaScript正则表达式中的ignoreCase属性使用详解
2015/06/16 Javascript
JS+CSS实现表格高亮的方法
2015/08/05 Javascript
JS实现可调整倒计时间代码分享
2015/08/18 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
2016/05/11 Javascript
JavaScript编写Chrome扩展实现与浏览器的交互及时间通知
2016/05/16 Javascript
jQuery+ajax实现局部刷新的两种方法
2017/06/08 jQuery
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
js利用iframe实现选项卡效果
2020/08/09 Javascript
vue 动态创建组件的两种方法
2020/12/31 Vue.js
python读取文本中数据并转化为DataFrame的实例
2018/04/10 Python
Python通过属性手段实现只允许调用一次的示例讲解
2018/04/21 Python
解决python Jupyter不能导入外部包问题
2020/04/15 Python
Pycharm同步远程服务器调试的方法步骤
2020/11/04 Python
python海龟绘图之画国旗实例代码
2020/11/11 Python
python空元组在all中返回结果详解
2020/12/15 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
2021/01/27 Python
浅析HTML5 meta viewport参数
2020/10/28 HTML / CSS
英国第一独立滑雪板商店:The Snowboard Asylum
2020/01/16 全球购物
泰国第一在线超市:Tops
2021/02/13 全球购物
班级学习计划书
2014/04/27 职场文书
平安建设工作方案
2014/06/02 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
学校清洁工岗位职责
2015/04/15 职场文书