加入收藏 | 设为首页 | 会员中心 | 我要投稿 济宁站长网 (https://www.0537zz.cn/)- 行业智能、边缘计算、专有云、AI硬件、5G!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php实现发送微信模板消息的方法分享

发布时间:2022-08-02 13:04:38 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了php实现发送微信模板消息的方法,实例分析了php操作curl及自定义模板消息的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了php实现发送微信模板消息的方法。分享给大家供大家参考。具体如下: 该方法基于thinkphp实现
  这篇文章主要介绍了php实现发送微信模板消息的方法,实例分析了php操作curl及自定义模板消息的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下

  本文实例讲述了php实现发送微信模板消息的方法。分享给大家供大家参考。具体如下:
 
  该方法基于thinkphp实现实现,具体OrderPush.class.php文件如下:
 
  代码如下:<?php
 
  namespace Org/Weixin;
 
  /**
 
  * Created by PhpStorm.
 
  * User: StandOpen
 
  * Date: 15-1-7
 
  * Time: 9:41
 
  */
 
  class OrderPush
 
  {
 
  protected $appid;
 
  protected $secrect;
 
  protected $accessToken;
 
  function __construct($appid, $secrect)
 
  {
 
  $this->appid = $appid;
 
  $this->secrect = $secrect;
 
  $this->accessToken = $this->getToken($appid, $secrect);
 
  }
 
  /**
 
  * 发送post请求
 
  * @param string $url
 
  * @param string $param
 
  * @return bool|mixed
 
  */
 
  function request_post($url = '', $param = '')
 
  {
 
  if (empty($url) || empty($param)) {
 
  return false;
 
  }
 
  $postUrl = $url;
 
  $curlPost = $param;
 
  $ch = curl_init(); //初始化curl
 
  curl_setopt($ch, CURLOPT_URL, $postUrl); //抓取指定网页
 
  curl_setopt($ch, CURLOPT_HEADER, 0); //设置header
 
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //要求结果为字符串且输出到屏幕上
 
  curl_setopt($ch, CURLOPT_POST, 1); //post提交方式
 
  curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
 
  $data = curl_exec($ch); //运行curl
 
  curl_close($ch);
 
  return $data;
 
  }
 
  /**
 
  * 发送get请求
 
  * @param string $url
 
  * @return bool|mixed
 
  */
 
  function request_get($url = '')
 
  {
 
  if (empty($url)) {
 
  return false;
 
  }
 
  $ch = curl_init();
 
  curl_setopt($ch, CURLOPT_URL, $url);
 
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 
  $data = curl_exec($ch);
 
  curl_close($ch);
 
  return $data;
 
  }
 
  /**
 
  * @param $appid
 
  * @param $appsecret
 
  * @return mixed
 
  * 获取token
 
  */
 
  protected function getToken($appid, $appsecret)
 
  {
 
  if (S($appid)) {
 
  $access_token = S($appid);
 
  } else {
 
  $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . $appid . "&secret=" . $appsecret;
 
  $token = $this->request_get($url);
 
  $token = json_decode(stripslashes($token));
 
  $arr = json_decode(json_encode($token), true);
 
  $access_token = $arr['access_token'];
 
  S($appid, $access_token, 720);
 
  }
 
  return $access_token;
 
  }
 
  /**
 
  * 发送自定义的模板消息
 
  * @param $touser
 
  * @param $template_id
 
  * @param $url
 
  * @param $data
 
  * @param string $topcolor
 
  * @return bool
 
  */
 
  public function doSend($touser, $template_id, $url, $data, $topcolor = '#7B68EE')
 
  {
 
  /*
 
  * data=>array(
 
  'first'=>array('value'=>urlencode("您好,您已购买成功"),'color'=>"#743A3A"),
 
  'name'=>array('value'=>urlencode("商品信息:微时代电影票"),'color'=>'#EEEEEE'),
 
  'remark'=>array('value'=>urlencode('永久有效!密码为:1231313'),'color'=>'#FFFFFF'),
 
  )
 
  */
 
  $template = array(
 
  'touser' => $touser,
 
  'template_id' => $template_id,
 
  'url' => $url,
 
  'topcolor' => $topcolor,
 
  'data' => $data
 
  );
 
  $json_template = json_encode($template);
 
  $url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" . $this->accessToken;
 
  $dataRes = $this->request_post($url, urldecode($json_template));
 
  if ($dataRes['errcode'] == 0) {
 
  return true;
 
  } else {
 
  return false;
 
  }
 
  }
 
  }
 
  希望本文所述对大家的php程序设计有所帮助。
 

(编辑:济宁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读