php教程

超轻量级php框架startmvc

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

更新时间:2020-03-09 14:26:21 作者:startmvc
本文实例为大家分享了用于验证token,回复图文、文本,向用户推送消息等功能的微信类,

本文实例为大家分享了用于验证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;
 }
}
?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

php 微信类 token 回复文本 推送消息