• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php微信公众平台开发类实例_php技巧

php 搞代码 3年前 (2022-01-26) 25次浏览 已收录 0个评论

本文实例讲述了php微信公众平台开发类。分享给大家供大家参考。具体分析如下:

ThinkWechat.php类文件如下:

auth($token) || exit;    if(!empty($_GET['echostr'])){      exit($_GET['echostr']);    } else {      try      {        $xml = file_get_contents("php://input");        $xml = new SimpleXMLElement($xml);        $xml || exit;        foreach ($xml as $key => $value) {          $this->data[$key] = strval($value);        }      }catch(Exception $e){      }    }  }  /**   * 获取微信推送的数据   * @return array 转换为数组后的数据   */  public function request(){    return $this->data;  }  /**   * * 响应微信发送的信息(自动回复)   * @param string $to   接收用户名   * @param string $from  发送者用户名   * @param array $content 回复信息,文本信息为string类型   * @param string $type  消息类型   * @param string $flag  是否新标刚接受到的信息   * @return string     XML字符串   */  public function response($con<mark>6来源gaodaimacom搞#^代%!码网</mark><strong>搞gaodaima代码</strong>tent, $type = 'text', $flag = 0){    /* 基础数据 */    $this->data = array(      'ToUserName'  => $this->data['FromUserName'],      'FromUserName' => $this->data['ToUserName'],      'CreateTime'  => time(),      'MsgType'   => $type,    );    /* 添加类型数据 */    $this->$type($content);    /* 添加状态 */    $this->data['FuncFlag'] = $flag;    /* 转换数据为XML */    $xml = new SimpleXMLElement('');    $this->data2xml($xml, $this->data);    exit($xml->asXML());  }  /**   * 回复文本信息   * @param string $content 要回复的信息   */  private function text($content){    $this->data['Content'] = $content;  }  /**   * 回复音乐信息   * @param string $content 要回复的音乐   */  private function music($music){    list(      $music['Title'],       $music['Description'],       $music['MusicUrl'],       $music['HQMusicUrl']    ) = $music;    $this->data['Music'] = $music;  }  /**   * 回复图文信息   * @param string $news 要回复的图文内容   */  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; } //最多只允许10调新闻    }    $this->data['ArticleCount'] = count($articles);    $this->data['Articles'] = $articles;  }  /**   * 数据XML编码   * @param object $xml XML对象   * @param mixed $data 数据   * @param string $item 数字索引时的节点名称   * @return string   */  private function data2xml($xml, $data, $item = 'item') {    foreach ($data as $key => $value) {      /* 指定默认的数字key */      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));        }      }    }  }  /**   * 对数据进行签名认证,确保是微信发送的数据   * @param string $token 微信开放平台设置的TOKEN   * @return boolean    true-签名正确,false-签名错误   */  private function auth($token){    if(empty($_GET['signature'])) return;    /* 获取数据 */    $data = array($_GET['timestamp'], $_GET['nonce'], $token);    $sign = $_GET['signature'];    /* 对数据进行字典排序 */    sort($data,SORT_STRING);    /* 生成签名 */    $signature = sha1(implode($data));    return $signature === $sign;  }}

希望本文所述对大家的php程序设计有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php微信公众平台开发类实例_php技巧
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址