本文实例为大家分享了用于验证token,回复图文、文本,向用户推送消息等功能的微信类,具体代码如下
php" id="highlighter_187281">
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
<?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;
}
}
?>
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。