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 项目的方法
Jan 02 PHP
据说是雅虎的一份PHP面试题附答案
Jan 07 PHP
PHP程序员最常犯的11个MySQL错误小结
Nov 20 PHP
php存储过程调用实例代码
Feb 03 PHP
php sybase_fetch_array使用方法
Apr 15 PHP
PHP把小数转成整数3种方法
Jun 30 PHP
简单介绍win7下搭建apache+php+mysql开发环境
Aug 06 PHP
PHP中addcslashes与stripcslashes函数用法分析
Jan 07 PHP
php用正则判断是否为数字的方法
Mar 25 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
Nov 25 PHP
LNMP部署laravel以及xhprof安装使用教程
Sep 14 PHP
php面试实现反射注入的详细方法
Sep 30 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
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
php魔术方法与魔术变量、内置方法与内置变量的深入分析
2013/06/03 PHP
PHP strip_tags()去除HTML、XML以及PHP的标签介绍
2014/02/18 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
2015/07/29 PHP
php双层循环(九九乘法表)
2017/10/23 PHP
JavaScript 字符串连接性能优化
2008/12/20 Javascript
jQuery select控制插件
2009/08/17 Javascript
使用jquery动态加载javascript以减少服务器压力
2012/10/29 Javascript
使用简洁的jQuery方法实现隔行换色功能
2014/01/02 Javascript
javascript绘制漂亮的心型线效果完整实例
2016/02/02 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
微信小程序 网络API Websocket详解
2016/11/09 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
React学习笔记之事件处理(二)
2017/07/02 Javascript
在vue项目中,使用axios跨域处理
2018/03/07 Javascript
详解VUE里子组件如何获取父组件动态变化的值
2018/12/26 Javascript
Python字符串处理之count()方法的使用
2015/05/18 Python
Django中对数据查询结果进行排序的方法
2015/07/17 Python
python中 chr unichr ord函数的实例详解
2017/08/06 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
2018/05/11 Python
python 将对象设置为可迭代的两种实现方法
2019/01/21 Python
浅谈Django中的QueryDict元素为数组的坑
2020/03/31 Python
python使用OpenCV模块实现图像的融合示例代码
2020/04/10 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
2020/04/16 Python
基于Python测试程序是否有错误
2020/05/16 Python
python 基于opencv实现高斯平滑
2020/12/18 Python
css3实现圆锥渐变conic-gradient效果
2020/02/12 HTML / CSS
阿巴庭院:Abba Patio
2019/06/18 全球购物
电子商务专业自我鉴定
2013/12/18 职场文书
九月份红领巾广播稿
2014/01/22 职场文书
光盘行动倡议书
2014/02/02 职场文书
健康状况证明模板
2014/10/23 职场文书
抗洪救灾感谢信
2015/01/22 职场文书
边城读书笔记
2015/06/29 职场文书
2016年党员公开承诺书格式范文
2016/03/24 职场文书
超外差式晶体管收音机的组装与统调
2021/04/22 无线电