验证token、回复图文\文本、推送消息的实用微信类php代码

yipeiwu_com6年前PHP代码库

本文实例为大家分享了用于验证token,回复图文、文本,向用户推送消息等功能的微信类,具体代码如下

<?php
class Wechat{
  private $data = array();
  public function __construct($token){
    $this -> auth($token, $wxuser) || exit;
    if(IS_GET){
      echo($_GET['echostr']);
      exit;
    }else{
      $xml = file_get_contents("php://input");
  
      $xml = new SimpleXMLElement($xml);
  //file_put_contents('/var/log/test.txt', $xml,FILE_APPEND);
      $xml || exit;
      foreach ($xml as $key => $value){
        $this -> data[$key] = strval($value);
      }
    }
  }
  public function request(){
    return $this -> data;
  }
  public function response($content, $type = 'text', $flag = 0){
    $this -> data = array('ToUserName' => $this -> data['FromUserName'], 'FromUserName' => $this -> data['ToUserName'], 'CreateTime' => NOW_TIME, 'MsgType' => $type);
    $this -> $type($content);
    $this -> data['FuncFlag'] = $flag;
    $xml = new SimpleXMLElement('<xml></xml>');
    $this -> data2xml($xml, $this -> data);
    exit($xml -> asXML());
  }
  private function text($content){
    $this -> data['Content'] = $content;
  }
  private function music($music){
    list($music['Title'], $music['Description'], $music['MusicUrl'], $music['HQMusicUrl']) = $music;
    $this -> data['Music'] = $music;
  }
  private function news($news){
    $articles = array();
    foreach ($news as $key => $value){
      list($articles[$key]['Title'], $articles[$key]['Description'], $articles[$key]['PicUrl'], $articles[$key]['Url']) = $value;
      if($key >= 9){
        break;
      }
    }
    $this -> data['ArticleCount'] = count($articles);
    $this -> data['Articles'] = $articles;
  }
  private function transfer_customer_service($content){
    $this -> data['Content'] = '';
  }
  private function data2xml($xml, $data, $item = 'item'){
    foreach ($data as $key => $value){
      is_numeric($key) && $key = $item;
      if(is_array($value) || is_object($value)){
        $child = $xml -> addChild($key);
        $this -> data2xml($child, $value, $item);
      }else{
        if(is_numeric($value)){
          $child = $xml -> addChild($key, $value);
        }else{
          $child = $xml -> addChild($key);
          $node = dom_import_simplexml($child);
          $node -> appendChild($node -> ownerDocument -> createCDATASection($value));
        }
      }
    }
  }
  private function auth($token){
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode($tmpArr);
    $tmpStr = sha1($tmpStr);
    if(trim($tmpStr) == trim($signature)){
      return true;
    }else{
      return false;
    }
    return true;
  }
}
?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【宜配屋www.yipeiwu.com】。

相关文章

PHP数组及条件,循环语句学习

PHP数组及条件,循环语句学习

1. 数组 实例1: 1).效果图预览: 2).代码截图: 以下是一个二维数组, 实际用的比较多. $mess = array('title'=>'留言标题1','conte...

PHP简单创建日历的方法

PHP简单创建日历的方法

本文实例讲述了PHP简单创建日历的方法。分享给大家供大家参考,具体如下: <?php function build_calendar($month,$year) {...

php遍历所有文件及文件夹的方法深入解析

 1.方法一:复制代码 代码如下:<? $dir="D:"; static $dir_list =0; static $file_list =0; function li...

PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图

PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图

JpGraph简介 JpGraph是开源的PHP统计图表生成库,基于PHP的GD2图形库构建,把生成统计图的相关操作封装,隐藏了部分复杂的操作,使在PHP页面上输出统计图表变得更加容易。...

PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)

本文实例讲述了PHP实现仿百度文库,豆丁在线文档效果。分享给大家供大家参考,具体如下: 由于项目要实现类似百度文库的功能,又是我一个人做的项目,所以就想到找免费的现成的来使用。在网上找到...