diff --git a/core/extend/com/OAuth.php b/core/extend/com/OAuth.php new file mode 100644 index 00000000..a2a976fd --- /dev/null +++ b/core/extend/com/OAuth.php @@ -0,0 +1,15 @@ +  +// +---------------------------------------------------------------------- +namespace com; + +class OAuth{ + +} \ No newline at end of file diff --git a/core/extend/com/Wechat.php b/core/extend/com/Wechat.php new file mode 100644 index 00000000..969ba4a1 --- /dev/null +++ b/core/extend/com/Wechat.php @@ -0,0 +1,88 @@ + +// +------------------ + +namespace com; +/** + * 通用的树型类,可以生成任何树型结构 + */ +class Wechat { + + public function valid() { + $echoStr = $_GET["echostr"]; + + //valid signature , option + if ($this->checkSignature()) { + echo $echoStr; + exit; + } + } + + public function responseMsg() { + //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 = " + + + %s + + + 0 + "; + 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; + } + } + + private function checkSignature() { + // you must define TOKEN by yourself + if (!defined("TOKEN")) { + throw new Exception('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) { + return true; + } else { + return false; + } + } +} \ No newline at end of file diff --git a/uploads/editor/20160909/7a8c9b9dadd3bdefa8f8ee2873a7270c.jpg b/uploads/editor/20160909/7a8c9b9dadd3bdefa8f8ee2873a7270c.jpg new file mode 100644 index 00000000..721e3135 Binary files /dev/null and b/uploads/editor/20160909/7a8c9b9dadd3bdefa8f8ee2873a7270c.jpg differ diff --git a/uploads/editor/20160909/cfad0417236d14b12159641383473264.jpg b/uploads/editor/20160909/cfad0417236d14b12159641383473264.jpg new file mode 100644 index 00000000..afc8bea6 Binary files /dev/null and b/uploads/editor/20160909/cfad0417236d14b12159641383473264.jpg differ diff --git a/uploads/editor/20161011/6f421bdfe56b7524b25509698c82a372.jpg b/uploads/editor/20161011/6f421bdfe56b7524b25509698c82a372.jpg new file mode 100644 index 00000000..a0bbefa2 Binary files /dev/null and b/uploads/editor/20161011/6f421bdfe56b7524b25509698c82a372.jpg differ diff --git a/uploads/editor/20161011/d442d4453b0d5c16907fb37faf341080.jpg b/uploads/editor/20161011/d442d4453b0d5c16907fb37faf341080.jpg new file mode 100644 index 00000000..a0bbefa2 Binary files /dev/null and b/uploads/editor/20161011/d442d4453b0d5c16907fb37faf341080.jpg differ