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生成缩略图的类代码
Oct 02 PHP
PHP的可变变量名的使用方法分享
Feb 05 PHP
PHP和JAVA中的重载(overload)和覆盖(override) 介绍
Mar 01 PHP
php上传apk后自动提取apk包信息的使用(示例下载)
Apr 26 PHP
解析dedecms空间迁移步骤详解
May 15 PHP
PHP中怎样保持SESSION不过期 原理及方案介绍
Aug 08 PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
Apr 10 PHP
php查看网页源代码的方法
Mar 13 PHP
Laravel中日期时间处理包Carbon的简单使用
Sep 21 PHP
laravel 解决Validator使用中出现的问题
Oct 25 PHP
php中get_object_vars()在数组的实例用法
Feb 22 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
解析strtr函数的效率问题
2013/06/26 PHP
PHP实现的sqlite数据库连接类
2014/12/12 PHP
PHP多线程之内部多线程实例分析
2015/03/09 PHP
php实现TCP端口检测的方法
2015/04/01 PHP
php按单词截取字符串的方法
2015/04/07 PHP
PHP连接MYSQL数据库实例代码
2016/01/20 PHP
在线编辑器中换行与内容自动提取
2009/04/24 Javascript
Javascript 网页水印(非图片水印)实现代码
2010/03/01 Javascript
单击复制文字兼容各浏览器的完美解决方案
2013/07/04 Javascript
5秒后跳转到另一个页面的js代码
2013/10/12 Javascript
Android中的jQuery:AQuery简介
2014/05/06 Javascript
js+cookies实现悬浮购物车的方法
2015/05/25 Javascript
javascript三种代码注释方法
2016/06/02 Javascript
AngularJS入门教程之Cookies读写操作示例
2016/11/02 Javascript
如何提高Dom访问速度
2017/01/05 Javascript
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
2017/06/13 jQuery
Node.JS循环删除非空文件夹及子目录下的所有文件
2018/03/12 Javascript
vue-cli的工程模板与构建工具详解
2018/09/27 Javascript
Python使用time模块实现指定时间触发器示例
2017/05/18 Python
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
python字符串常用方法
2018/06/14 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
Python 实现Windows开机运行某软件的方法
2018/10/14 Python
python实现在图片上画特定大小角度矩形框
2018/10/24 Python
10个python爬虫入门实例(小结)
2020/11/01 Python
pandas按条件筛选数据的实现
2021/02/20 Python
LINUX下线程,GDI类的解释
2016/12/14 面试题
医院护士专业个人的求职信
2013/12/09 职场文书
2014自主招生自荐信策略
2014/01/27 职场文书
2014年幼儿园工作总结
2014/11/10 职场文书
六一儿童节主持开场白
2015/05/28 职场文书
工作感想范文
2015/08/07 职场文书
春节随笔
2015/08/15 职场文书
团支部书记竞选稿
2015/11/21 职场文书
Opencv中cv2.floodFill算法的使用
2021/06/18 Python
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android