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 相关文章推荐
eWebEditor v3.8 商业完整版 (PHP)
Dec 06 PHP
php 高性能书写
Dec 11 PHP
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
Nov 10 PHP
php引用返回与取消引用的详解
Jun 08 PHP
IIS6.0中配置php服务全过程解析
Aug 07 PHP
百度地图API使用方法详解
Aug 25 PHP
php创建桌面快捷方式实现方法
Dec 31 PHP
php面向对象之反射功能与用法分析
Mar 29 PHP
laravel 判断查询数据库返回值的例子
Oct 11 PHP
零基础php编程好学吗
Oct 11 PHP
php实现银联商务公众号+服务窗支付的示例代码
Oct 12 PHP
PHP数组array类常见操作示例
May 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
Codeigniter实现多文件上传并创建多个缩略图
2014/06/12 PHP
php获取四位字母和数字的随机数的实现方法
2015/01/09 PHP
php仿微信红包分配算法的实现方法
2016/05/13 PHP
JQuery toggle使用分析
2009/11/16 Javascript
纯CSS打造的导航菜单(附jquery版)
2010/08/07 Javascript
如何用JavaScript动态呼叫函数(两种方式)
2013/05/03 Javascript
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
判断iframe里的页面是否加载完成
2014/06/06 Javascript
Ajax局部更新导致JS事件重复触发问题的解决方法
2014/10/14 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
Angularjs 制作购物车功能实例代码
2016/09/14 Javascript
Bootstrap的modal拖动效果
2016/12/25 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
js 博客内容进度插件详解
2017/02/19 Javascript
Angularjs 实现移动端在线测评效果(推荐)
2017/04/05 Javascript
运用jQuery写的验证表单(实例讲解)
2017/07/06 jQuery
基于js 字符串indexof与search方法的区别(详解)
2017/12/04 Javascript
vue组件横向树实现代码
2018/08/02 Javascript
详解vue中的父子传值双向绑定及数据更新问题
2019/06/13 Javascript
微信小程序 数据缓存实现方法详解
2019/08/26 Javascript
sharp.js安装过程中遇到的问题总结
2020/04/02 Javascript
Python实现的检测web服务器健康状况的小程序
2014/09/17 Python
深入理解python中的闭包和装饰器
2016/06/12 Python
打包发布Python模块的方法详解
2016/09/18 Python
Python实现读取文件最后n行的方法
2017/02/23 Python
Android 兼容性问题:java.lang.UnsupportedOperationException解决办法
2017/03/19 Python
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
神经网络理论基础及Python实现详解
2017/12/15 Python
华为校园招聘上机笔试题 扑克牌大小(python)
2020/04/22 Python
使用HTML5捕捉音频与视频信息概述及实例
2018/08/22 HTML / CSS
HTML5地理定位_动力节点Java学院整理
2017/07/12 HTML / CSS
Superdry极度干燥美国官网:英国制造的服装品牌
2018/11/13 全球购物
CNC数控操作工岗位职责
2013/11/19 职场文书
十佳大学生事迹材料
2014/01/29 职场文书
《陶罐和铁罐》教学反思
2014/02/19 职场文书
党的群众路线专项整治方案
2014/11/03 职场文书