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 sprintf()函数让你的sql操作更安全
Jul 23 PHP
一个PHP的String类代码
Apr 20 PHP
php添加文章时生成静态HTML文章的实现代码
Feb 17 PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
Nov 03 PHP
PHP中余数、取余的妙用
Jun 29 PHP
php实现无限级分类(递归方法)
Aug 06 PHP
详解WordPress开发中get_header()获取头部函数的用法
Jan 08 PHP
微信公众平台DEMO(PHP)
May 04 PHP
thinkPHP分组后模板无法加载问题解决方法
Jul 12 PHP
Linux平台php命令行程序处理管道数据的方法
Nov 10 PHP
laravel 验证错误信息到 blade模板的方法
Sep 29 PHP
如何在PHP中生成随机数
Jun 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
PHP file_get_contents 函数超时的几种解决方法
2009/07/30 PHP
php array_map()数组函数使用说明
2011/07/12 PHP
解析PHP中intval()等int转换时的意外异常情况
2013/06/21 PHP
PHP实现文件下载详解
2014/11/27 PHP
php三种实现多线程类似的方法
2015/10/30 PHP
php获取手机端的号码以及ip地址实例代码
2018/09/12 PHP
JavaScript 一道字符串分解的题目
2011/08/03 Javascript
了解Javascript的模块化开发
2015/03/02 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
2015/03/16 Javascript
JavaScript 面向对象与原型
2015/04/10 Javascript
JavaScript的事件机制详解
2017/01/17 Javascript
Web前端框架Angular4.0.0 正式版发布
2017/03/28 Javascript
Node.js操作redis实现添加查询功能
2017/05/25 Javascript
node.js的exports、module.exports与ES6的export、export default深入详解
2017/10/26 Javascript
基于JS实现父组件的请求服务过程解析
2019/10/14 Javascript
浅谈使用nodejs搭建web服务器的过程
2020/07/20 NodeJs
vue - props 声明数组和对象操作
2020/07/30 Javascript
Vue中computed及watch区别实例解析
2020/08/01 Javascript
Python警察与小偷的实现之一客户端与服务端通信实例
2014/10/09 Python
Python操作Access数据库基本步骤分析
2016/09/19 Python
Python tkinter的grid布局及Text动态显示方法
2018/10/11 Python
Django+JS 实现点击头像即可更改头像的方法示例
2018/12/26 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
2019/10/30 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
2020/07/14 Python
Python 高效编程技巧分享
2020/09/10 Python
Python如何使用ElementTree解析xml
2020/10/12 Python
若干个Java基础面试题
2015/05/19 面试题
宝宝周岁宴答谢词
2014/01/26 职场文书
高一数学教学反思
2014/02/07 职场文书
新员工试用期自我鉴定
2014/04/17 职场文书
2015秋季幼儿园开学寄语
2015/03/25 职场文书
升职自荐信范文
2015/03/27 职场文书
初二数学教学反思
2016/02/17 职场文书
如何设计高效合理的MySQL查询语句
2021/05/26 MySQL
openEuler 搭建java开发环境的详细过程
2022/06/10 Servers
python如何将mat文件转为png
2022/07/15 Python