有可能下载最新的demo下载不到这个原版的精简demo了. 这里为大家提供一下.以下代码为原始未改动代码
|
01
02
03
04
05
06
07
08
09
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
86
87
88
89
|
<?php
/**
* wechat php test
*/
//define your token
define("TOKEN", "weixin");
$wechatObj= newwechatCallbackapiTest();
$wechatObj->valid();
classwechatCallbackapiTest
{
publicfunctionvalid()
{
$echoStr= $_GET["echostr"];
//valid signature , option
if($this->checkSignature()){
echo$echoStr;
exit;
}
}
publicfunctionresponseMsg()
{
//get post data, May be due to the different environments
$postStr= $GLOBALS["HTTP_RAW_POST_DATA"];
//extract post data
if(!empty($postStr)){
/* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,
the best way is to check the validity of xml by yourself */
libxml_disable_entity_loader(true);
$postObj= simplexml_load_string($postStr, ‘SimpleXMLElement‘, LIBXML_NOCDATA);
$fromUsername= $postObj->FromUserName;
$toUsername= $postObj->ToUserName;
$keyword= trim($postObj->Content);
$time= time();
$textTpl= "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>";
if(!empty( $keyword))
{
$msgType= "text";
$contentStr= "Welcome to wechat world!";
$resultStr= sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo$resultStr;
}else{
echo"Input something...";
}
}else{
echo"";
exit;
}
}
privatefunctioncheckSignature()
{
// you must define TOKEN by yourself
if(!defined("TOKEN")) {
thrownewException(‘TOKEN is not defined!‘);
}
$signature= $_GET["signature"];
$timestamp= $_GET["timestamp"];
$nonce= $_GET["nonce"];
$token= TOKEN;
$tmpArr= array($token, $timestamp, $nonce);
// use SORT_STRING rule
sort($tmpArr, SORT_STRING);
$tmpStr= implode( $tmpArr);
$tmpStr= sha1( $tmpStr);
if( $tmpStr== $signature){
returntrue;
}else{
returnfalse;
}
}
}
?>
|

分享到