{"id":29501,"date":"2024-11-25T09:10:11","date_gmt":"2024-11-25T01:10:11","guid":{"rendered":"https:\/\/fwq.ai\/blog\/29501\/"},"modified":"2024-11-25T09:10:11","modified_gmt":"2024-11-25T01:10:11","slug":"php%e5%af%b9%e6%8e%a5%e5%be%ae%e4%bf%a1%e5%85%ac%e4%bc%97%e5%b9%b3%e5%8f%b0%e6%b6%88%e6%81%af%e6%8e%a5%e5%8f%a3%e5%bc%80%e5%8f%91%e6%b5%81%e7%a8%8b%e8%af%a6%e8%a7%a3%e5%8f%8a%e5%ae%9e%e4%be%8b","status":"publish","type":"post","link":"https:\/\/fwq.ai\/blog\/29501\/","title":{"rendered":"PHP\u5bf9\u63a5\u5fae\u4fe1\u516c\u4f17\u5e73\u53f0\u6d88\u606f\u63a5\u53e3\u5f00\u53d1\u6d41\u7a0b\u8be6\u89e3\u53ca\u5b9e\u4f8b"},"content":{"rendered":"<p>\u8fd9\u7bc7\u6587\u7ae0\u4e3b\u8981\u4ecb\u7ecd\u4e86php\u5bf9\u63a5\u5fae\u4fe1\u516c\u4f17\u5e73\u53f0\u6d88\u606f\u63a5\u53e3\u5f00\u53d1\u6d41\u7a0b,\u5982\u4f55\u4f7f\u7528php\u7248\u63a5\u53e3\u64cd\u4f5c\u516c\u4f17\u5e73\u53f0\u6d88\u606f,\u9700\u8981\u7684\u670b\u53cb\u53ef\u4ee5\u53c2\u8003\u4e0b<\/p>\n<p><strong>\u4e00\u3001\u5199\u597d\u63a5\u53e3\u7a0b\u5e8f<\/strong><\/p>\n<p>\u5728\u4f60\u7684\u670d\u52a1\u5668\u4e0a\u4e0a\u4f20\u597d\u4e00\u4e2a\u63a5\u53e3\u7a0b\u5e8f\u6587\u4ef6\u5185\u5bb9\u5982\u4e0b\uff1a<\/p>\n<p>\u4ee3\u7801\u5982\u4e0b:<\/p>\n<pre>&lt;?php define(\"TOKEN\", \"weixin\");\/\/\u81ea\u5df1\u5b9a\u4e49\u7684token \u5c31\u662f\u4e2a\u901a\u4fe1\u7684\u79c1\u94a5\r\n$wechatObj = new wechatCallbackapiTest();\r\n$wechatObj-&gt;valid();\r\n\/\/$wechatObj-&amp;gt;responseMsg();\r\nclass&nbsp;wechatCallbackapiTest\r\n{\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;valid()\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$echoStr&nbsp;=&nbsp;$_GET[\"echostr\"];\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($this-&amp;gt;checkSignature()){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;$echoStr;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;responseMsg()\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$postStr&nbsp;=&nbsp;$GLOBALS[\"HTTP_RAW_POST_DATA\"];\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!empty($postStr)){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$postObj&nbsp;=&nbsp;simplexml_load_string($postStr,&nbsp;'SimpleXMLElement',&nbsp;LIBXML_NOCDATA);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$fromUsername&nbsp;=&nbsp;$postObj-&amp;gt;FromUserName;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$toUsername&nbsp;=&nbsp;$postObj-&amp;gt;ToUserName;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$keyword&nbsp;=&nbsp;trim($postObj-&amp;gt;Content);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$time&nbsp;=&nbsp;time();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$textTpl&nbsp;=&nbsp;\"&lt;xml&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tousername&gt;&lt;\/tousername&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;fromusername&gt;&lt;\/fromusername&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;createtime&gt;%s&lt;\/createtime&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;msgtype&gt;&lt;\/msgtype&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;content&gt;&lt;\/content&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;funcflag&gt;0&lt;funcflag&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/funcflag&gt;&lt;\/funcflag&gt;&lt;\/xml&gt;\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!empty(&nbsp;$keyword&nbsp;))\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$msgType&nbsp;=&nbsp;\"text\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$contentStr&nbsp;=&nbsp;'\u4f60\u597d\u554a\uff0c\u5c4c\u4e1d';\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$resultStr&nbsp;=&nbsp;sprintf($textTpl,&nbsp;$fromUsername,&nbsp;$toUsername,&nbsp;$time,&nbsp;$msgType,&nbsp;$contentStr);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;$resultStr;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;'\u548b\u4e0d\u8bf4\u54c8\u5462';\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;'\u548b\u4e0d\u8bf4\u54c8\u5462';\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;function&nbsp;checkSignature()\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$signature&nbsp;=&nbsp;$_GET[\"signature\"];\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$timestamp&nbsp;=&nbsp;$_GET[\"timestamp\"];\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$nonce&nbsp;=&nbsp;$_GET[\"nonce\"];\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$token&nbsp;=TOKEN;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$tmpArr&nbsp;=&nbsp;array($token,&nbsp;$timestamp,&nbsp;$nonce);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sort($tmpArr);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$tmpStr&nbsp;=&nbsp;implode(&nbsp;$tmpArr&nbsp;);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$tmpStr&nbsp;=&nbsp;sha1(&nbsp;$tmpStr&nbsp;);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;$tmpStr&nbsp;==&nbsp;$signature&nbsp;){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n}\r\n?&amp;gt;<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p><strong>\u4e8c\u3001\u914d\u7f6e\u5fae\u4fe1\u516c\u4f17\u5e73\u53f0\u56de\u590d\u63a5\u53e3<\/strong><\/p>\n<p>\u8bbe\u7f6e\u56de\u590d\u63a5\u53e3\uff0c\u586b\u597dURL\u548cToken\uff08url\u586b\u4e0a\u9762\u7684http:\/\/www.yourdomain.com\/weixin.php\uff0ctoken\u5fc5\u987b\u8ddf\u4e0a\u9762\u7a0b\u5e8f\u91cc\u9762\u5b9a\u4e49\u7684Token\u4e00\u81f4\uff09<\/p>\n<p><span>\u7acb\u5373\u5b66\u4e60<\/span>\u201c\u201d\uff1b<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/013\/693324e485dab7f7a4dfb52d1968229d-0.jpg\" style=\"max-width:90%\" class=\"aligncenter\" title=\"PHP\u5bf9\u63a5\u5fae\u4fe1\u516c\u4f17\u5e73\u53f0\u6d88\u606f\u63a5\u53e3\u5f00\u53d1\u6d41\u7a0b\u8be6\u89e3\u53ca\u5b9e\u4f8b\u63d2\u56fe\" alt=\"PHP\u5bf9\u63a5\u5fae\u4fe1\u516c\u4f17\u5e73\u53f0\u6d88\u606f\u63a5\u53e3\u5f00\u53d1\u6d41\u7a0b\u8be6\u89e3\u53ca\u5b9e\u4f8b\u63d2\u56fe\" \/><br \/><strong>\u4e09\u3001\u9a8c\u8bc1\u63a5\u53e3<\/strong><\/p>\n<p>\u7528\u81ea\u5df1\u7684\u4e2a\u4eba\u5fae\u4fe1\u5173\u6ce8\u4e0b\u4f60\u7684\u516c\u4f17\u8d26\u53f7\uff0c\u7ed9\u8fd9\u4e2a\u8d26\u53f7\u53d1\u4e00\u6761\u6d88\u606f\u8fc7\u53bb\uff0c\u6536\u5230\u539f\u6837\u7684\u6d88\u606f\u8fd4\u56de\uff0c\u5373\u9a8c\u8bc1\u6210\u529f\u4e86\u3002<\/p>\n<p><strong>\u56db\u3001\u5f00\u59cb\u81ea\u5b9a\u4e49\u56de\u590d<\/strong><\/p>\n<p>\u6ce8\u91ca\u6389$wechatObj-&gt;valid(); \u8fd9\u884c\uff0c\u540c\u65f6\u53bb\u6389\/\/$wechatObj-&gt;responseMsg();\u8fd9\u884c\u7684\u6ce8\u91ca\u3002<br \/>\u4f60\u53ef\u4ee5\u4fee\u6539responseMsg\u51fd\u6570\u91cc\u9762\u7684\u4ee3\u7801\uff0c\u6839\u636e\u7528\u6237\u7684\u6d88\u606f\u7c7b\u578b\uff08&#8217;text&#8217;,&#8217;image&#8217;,&#8217;location&#8217;\uff09\u548c\u6d88\u606f\u5185\u5bb9\u6765\u56de\u590d\u7528\u6237\u4e0d\u540c\u7684\u5185\u5bb9\u3002<br \/>\u6d88\u606f\u63a5\u53e3\u5c31\u53ef\u4ee5\u4f7f\u7528\u4e86\uff0c\u53d1\u4e2a\u6d88\u606f\u8bd5\u8bd5\u770b\u5427\uff1f<\/p>\n<p><strong>1.\u5c01\u88c5weixin.class.php<\/strong><\/p>\n<p>\u7531\u4e8e\u5fae\u4fe1\u516c\u4f17\u5e73\u53f0\u7684\u901a\u4fe1\u4f7f\u7528\u7684\u662f\u7279\u5b9a\u683c\u5f0f\u7684XML\u6570\u636e\uff0c\u6bcf\u6b21\u63a5\u53d7\u548c\u56de\u590d\u90fd\u8981\u53bb\u505a\u4e00\u5927\u5806\u7684\u6570\u636e\u5904\u7406\u3002<br \/>\u6211\u4eec\u5c31\u8003\u8651\u5728\u8fd9\u4e2a\u57fa\u7840\u4e0a\u505a\u4e00\u6b21\u5c01\u88c5\uff0cweixin.class.php\uff0c\u4ee3\u7801\u5982\u4e0b\uff1a<\/p>\n<p>&nbsp;\u4ee3\u7801\u5982\u4e0b:<\/p>\n<pre>&lt;?php class Weixin\r\n{\r\n    public $token = &#039;&#039;;\/\/token\r\n    public $debug =  false;\/\/\u662f\u5426debug\u7684\u72b6\u6001\u6807\u793a\uff0c\u65b9\u4fbf\u6211\u4eec\u5728\u8c03\u8bd5\u7684\u65f6\u5019\u8bb0\u5f55\u4e00\u4e9b\u4e2d\u95f4\u6570\u636e\r\n    public $setFlag = false;\r\n    public $msgtype = &#039;text&#039;;   \/\/(&#039;text&#039;,&#039;image&#039;,&#039;location&#039;)\r\n    public $msg = array();\r\n    public function __construct($token,$debug)\r\n    {\r\n        $this-&gt;token&nbsp;=&nbsp;$token;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;debug&nbsp;=&nbsp;$debug;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u83b7\u5f97\u7528\u6237\u53d1\u8fc7\u6765\u7684\u6d88\u606f\uff08\u6d88\u606f\u5185\u5bb9\u548c\u6d88\u606f\u7c7b\u578b&nbsp;&nbsp;\uff09\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;getMsg()\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$postStr&nbsp;=&nbsp;$GLOBALS[\"HTTP_RAW_POST_DATA\"];\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($this-&amp;gt;debug)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;write_log($postStr);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!empty($postStr))&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;msg&nbsp;=&nbsp;(array)simplexml_load_string($postStr,&nbsp;'SimpleXMLElement',&nbsp;LIBXML_NOCDATA);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;msgtype&nbsp;=&nbsp;strtolower($this-&amp;gt;msg['MsgType']);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\u3000\u3000\/\/\u56de\u590d\u6587\u672c\u6d88\u606f\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;makeText($text='')\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$CreateTime&nbsp;=&nbsp;time();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$FuncFlag&nbsp;=&nbsp;$this-&amp;gt;setFlag&nbsp;?&nbsp;1&nbsp;:&nbsp;0;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$textTpl&nbsp;=&nbsp;\"&lt;xml&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tousername&gt;msg['FromUserName']}]]&amp;gt;&lt;\/tousername&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;fromusername&gt;msg['ToUserName']}]]&amp;gt;&lt;\/fromusername&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;createtime&gt;{$CreateTime}&lt;\/createtime&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;msgtype&gt;&lt;\/msgtype&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;content&gt;&lt;\/content&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;funcflag&gt;%s&lt;\/funcflag&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/xml&gt;\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;sprintf($textTpl,$text,$FuncFlag);\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u6839\u636e\u6570\u7ec4\u53c2\u6570\u56de\u590d\u56fe\u6587\u6d88\u606f\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;makeNews($newsData=array())\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$CreateTime&nbsp;=&nbsp;time();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$FuncFlag&nbsp;=&nbsp;$this-&amp;gt;setFlag&nbsp;?&nbsp;1&nbsp;:&nbsp;0;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$newTplHeader&nbsp;=&nbsp;\"&lt;xml&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tousername&gt;msg['FromUserName']}]]&amp;gt;&lt;\/tousername&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;fromusername&gt;msg['ToUserName']}]]&amp;gt;&lt;\/fromusername&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;createtime&gt;{$CreateTime}&lt;\/createtime&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;msgtype&gt;&lt;\/msgtype&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;content&gt;&lt;\/content&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;articlecount&gt;%s&lt;\/articlecount&gt;&lt;articles&gt;\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$newTplItem&nbsp;=&nbsp;\"&lt;item&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;&lt;\/title&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;description&gt;&lt;\/description&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;picurl&gt;&lt;\/picurl&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;url&gt;&lt;\/url&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/item&gt;\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$newTplFoot&nbsp;=&nbsp;\"&lt;\/articles&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;funcflag&gt;%s&lt;\/funcflag&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/xml&gt;\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$Content&nbsp;=&nbsp;'';\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$itemsCount&nbsp;=&nbsp;count($newsData['items']);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$itemsCount&nbsp;=&nbsp;$itemsCount&nbsp;&nbsp;$item)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($keydebug)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;write_log($data);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;$data;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;valid()\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($this-&amp;gt;checkSignature())&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;$_SERVER['REQUEST_METHOD']=='GET'&nbsp;)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;$_GET['echostr'];\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write_log('\u8ba4\u8bc1\u5931\u8d25');\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;function&nbsp;checkSignature()\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$signature&nbsp;=&nbsp;$_GET[\"signature\"];\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$timestamp&nbsp;=&nbsp;$_GET[\"timestamp\"];\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$nonce&nbsp;=&nbsp;$_GET[\"nonce\"];\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$tmpArr&nbsp;=&nbsp;array($this-&amp;gt;token,&nbsp;$timestamp,&nbsp;$nonce);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sort($tmpArr);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$tmpStr&nbsp;=&nbsp;implode(&nbsp;$tmpArr&nbsp;);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$tmpStr&nbsp;=&nbsp;sha1(&nbsp;$tmpStr&nbsp;);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;$tmpStr&nbsp;==&nbsp;$signature&nbsp;){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;function&nbsp;write_log($log){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u8fd9\u91cc\u662f\u4f60\u8bb0\u5f55\u8c03\u8bd5\u4fe1\u606f\u7684\u5730\u65b9&nbsp;&nbsp;\u8bf7\u81ea\u884c\u5b8c\u5584&nbsp;&nbsp;&nbsp;\u4ee5\u4fbf\u4e2d\u95f4\u8c03\u8bd5\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n}\r\n?&amp;gt;<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p><strong>2.\u8c03\u7528weixin.class.php<\/strong><\/p>\n<p>\u628a\u4f60\u7684\u5fae\u4fe1\u516c\u4f17\u5e73\u53f0\u4e3b\u63a5\u53e3\u6587\u4ef6\u4e2d\uff0c\u4fee\u6539\u4ee3\u7801\u4e3a\uff1a<\/p>\n<p>\u4ee3\u7801\u5982\u4e0b:<\/p>\n<pre>&lt;?php include_once(&#039;weixin.class.php&#039;);\/\/\u5f15\u7528\u521a\u5b9a\u4e49\u7684\u5fae\u4fe1\u6d88\u606f\u5904\u7406\u7c7b\r\ndefine(\"TOKEN\", \"mmhelper\");\r\ndefine(&#039;DEBUG&#039;, true);\r\n$weixin = new Weixin(TOKEN,DEBUG);\/\/\u5b9e\u4f8b\u5316\r\n$weixin-&gt;getMsg();\r\n$type&nbsp;=&nbsp;$weixin-&amp;gt;msgtype;\/\/\u6d88\u606f\u7c7b\u578b\r\n$username&nbsp;=&nbsp;$weixin-&amp;gt;msg['FromUserName'];\/\/\u54ea\u4e2a\u7528\u6237\u7ed9\u4f60\u53d1\u7684\u6d88\u606f,\u8fd9\u4e2a$username\u662f\u5fae\u4fe1\u52a0\u5bc6\u4e4b\u540e\u7684\uff0c\u4f46\u662f\u6bcf\u4e2a\u7528\u6237\u90fd\u662f\u4e00\u4e00\u5bf9\u5e94\u7684\r\nif&nbsp;($type==='text')&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($weixin-&amp;gt;msg['Content']=='Hello2BizUser')&nbsp;{\/\/\u5fae\u4fe1\u7528\u6237\u7b2c\u4e00\u6b21\u5173\u6ce8\u4f60\u7684\u8d26\u53f7\u7684\u65f6\u5019\uff0c\u4f60\u7684\u516c\u4f17\u8d26\u53f7\u5c31\u4f1a\u53d7\u5230\u4e00\u6761\u5185\u5bb9\u4e3a'Hello2BizUser'\u7684\u6d88\u606f\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$reply&nbsp;=&nbsp;$weixin-&amp;gt;makeText('\u6b22\u8fce\u4f60\u5173\u6ce8\u54e6\uff0c\u5c4c\u4e1d');\r\n&nbsp;&nbsp;&nbsp;&nbsp;}else{\/\/\u8fd9\u91cc\u5c31\u662f\u7528\u6237\u8f93\u5165\u4e86\u6587\u672c\u4fe1\u606f\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$keyword&nbsp;=&nbsp;$weixin-&amp;gt;msg['Content'];&nbsp;&nbsp;&nbsp;\/\/\u7528\u6237\u7684\u6587\u672c\u6d88\u606f\u5185\u5bb9\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;include_once(\"chaxun.php\");\/\/\u6587\u672c\u6d88\u606f&nbsp;\u8c03\u7528\u67e5\u8be2\u7a0b\u5e8f&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$chaxun=&nbsp;new&nbsp;chaxun(DEBUG,$keyword,$username);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$results['items']&nbsp;=$chaxun-&amp;gt;search();\/\/\u67e5\u8be2\u7684\u4ee3\u7801\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$reply&nbsp;=&nbsp;$weixin-&amp;gt;makeNews($results);\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n}elseif&nbsp;($type==='location')&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u7528\u6237\u53d1\u9001\u7684\u662f\u4f4d\u7f6e\u4fe1\u606f&nbsp;&nbsp;\u7a0d\u540e\u7684\u6587\u7ae0\u4e2d\u4f1a\u5904\u7406&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n}elseif&nbsp;($type==='image')&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u7528\u6237\u53d1\u9001\u7684\u662f\u56fe\u7247&nbsp;\u7a0d\u540e\u7684\u6587\u7ae0\u4e2d\u4f1a\u5904\u7406\r\n}elseif&nbsp;($type==='voice')&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u7528\u6237\u53d1\u9001\u7684\u662f\u58f0\u97f3&nbsp;\u7a0d\u540e\u7684\u6587\u7ae0\u4e2d\u4f1a\u5904\u7406\r\n}\r\n$weixin-&amp;gt;reply($reply);\r\n?&amp;gt;<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p><strong>3.\u67e5\u8be2\u4ee3\u7801<\/strong><\/p>\n<p>\u8fd8\u9700\u8981\u5c06\u6570\u636e\u5e93\u91cc\u9762\u7684\u67e5\u8be2\u7ed3\u679c\u683c\u5f0f\u5316\u4e3a\u7279\u5b9a\u7684\u5f62\u5f0f<\/p>\n<p>&nbsp;\u4ee3\u7801\u5982\u4e0b:<\/p>\n<pre>&lt;?php public function search(){\r\n       $record=array();  \/\/\u5b9a\u4e49\u8fd4\u56de\u7ed3\u679c\u7684\u6570\u7ec4\r\n       $list = $this-&gt;search($this-&amp;gt;keyword);\/\/\u666e\u901a\u7684\u6839\u636e\u5173\u952e\u8bcd\u67e5\u8be2\u6570\u636e\u5e93\u7684\u64cd\u4f5c&nbsp;&nbsp;\u4ee3\u7801\u5c31\u4e0d\u7528\u5206\u4eab\u4e86\r\n\u3000\u3000\u3000\u3000if(is_array($list)&amp;amp;&amp;amp;!empty($list)){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach($list&nbsp;as&nbsp;$msg){\r\n&nbsp;&nbsp;&nbsp;&nbsp;\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000$record[]=array(\/\/\u4ee5\u4e0b\u4ee3\u7801\uff0c\u5c06\u6570\u636e\u5e93\u4e2d\u67e5\u8be2\u8fd4\u56de\u7684\u6570\u7ec4\u683c\u5f0f\u5316\u4e3a\u5fae\u4fe1\u8fd4\u56de\u6d88\u606f\u80fd\u63a5\u6536\u7684\u6570\u7ec4\u5f62\u5f0f\uff0c\u5373title\u3001description\u3001picurl\u3001url&nbsp;\u8be6\u89c1\u5fae\u4fe1\u5b98\u65b9\u7684\u6587\u6863\u63cf\u8ff0\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'title'&nbsp;=&amp;gt;$msg['title'],\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'description'&nbsp;=&amp;gt;$msg['discription'],\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'picurl'&nbsp;=&amp;gt;&nbsp;$msg['pic_url'],\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'url'&nbsp;=&amp;gt;$msg['url']\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);\r\n\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000}\r\n\u3000\u3000\u3000\u3000}\r\n\u3000\u3000\u3000\u3000return&nbsp;$record;\r\n}\r\n?&amp;gt;<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u4ee5\u4e0a\u5c31\u662fPHP\u5bf9\u63a5\u5fae\u4fe1\u516c\u4f17\u5e73\u53f0\u6d88\u606f\u63a5\u53e3\u5f00\u53d1\u6d41\u7a0b\u8be6\u89e3\u53ca\u5b9e\u4f8b\u7684\u8be6\u7ec6\u5185\u5bb9\uff0c\u66f4\u591a\u8bf7\u5173\u6ce8\u7c73\u4e91\u5176\u5b83\u76f8\u5173\u6587\u7ae0\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u8fd9\u7bc7\u6587\u7ae0\u4e3b\u8981\u4ecb\u7ecd\u4e86php\u5bf9\u63a5\u5fae\u4fe1\u516c\u4f17\u5e73\u53f0\u6d88\u606f\u63a5\u53e3\u5f00\u53d1\u6d41\u7a0b,\u5982\u4f55\u4f7f\u7528php\u7248\u63a5\u53e3\u64cd\u4f5c\u516c\u4f17\u5e73\u53f0\u6d88\u606f,\u9700\u8981\u7684\u670b\u53cb\u53ef\u4ee5\u53c2\u8003\u4e0b \u4e00\u3001\u5199\u597d\u63a5\u53e3\u7a0b\u5e8f \u5728\u4f60\u7684\u670d\u52a1\u5668\u4e0a\u4e0a\u4f20\u597d\u4e00\u4e2a\u63a5\u53e3\u7a0b\u5e8f\u6587\u4ef6\u5185\u5bb9\u5982\u4e0b\uff1a \u4ee3\u7801\u5982\u4e0b: &lt;?php define(&#8220;TOKEN&#8221;, &#8220;weixin&#8221;);\/\/\u81ea\u5df1\u5b9a\u4e49\u7684token \u5c31\u662f\u4e2a\u901a\u4fe1\u7684\u79c1\u94a5 $wechatObj = new wechatCallbackapiTest(); $wechatObj-&gt;valid(); \/\/$wechatObj-&amp;gt;responseMsg(); class&nbsp;wechatCallbackapiTest { &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;valid() &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$echoStr&nbsp;=&nbsp;$_GET[&#8220;echostr&#8221;]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($this-&amp;gt;checkSignature()){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;$echoStr; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;responseMsg() &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$postStr&nbsp;=&nbsp;$GLOBALS[&#8220;HTTP_RAW_POST_DATA&#8221;]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!empty($postStr)){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$postObj&nbsp;=&nbsp;simplexml_load_string($postStr,&nbsp;&#8216;SimpleXMLElement&#8217;,&nbsp;LIBXML_NOCDATA); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$fromUsername&nbsp;=&nbsp;$postObj-&amp;gt;FromUserName; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$toUsername&nbsp;=&nbsp;$postObj-&amp;gt;ToUserName; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$keyword&nbsp;=&nbsp;trim($postObj-&amp;gt;Content); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$time&nbsp;=&nbsp;time(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$textTpl&nbsp;=&nbsp;&#8220;&lt;xml&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tousername&gt;&lt;\/tousername&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;fromusername&gt;&lt;\/fromusername&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;createtime&gt;%s&lt;\/createtime&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;msgtype&gt;&lt;\/msgtype&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;content&gt;&lt;\/content&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;funcflag&gt;0&lt;funcflag&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/funcflag&gt;&lt;\/funcflag&gt;&lt;\/xml&gt;&#8221;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!empty(&nbsp;$keyword&nbsp;)) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$msgType&nbsp;=&nbsp;&#8220;text&#8221;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$contentStr&nbsp;=&nbsp;&#8216;\u4f60\u597d\u554a\uff0c\u5c4c\u4e1d&#8217;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$resultStr&nbsp;=&nbsp;sprintf($textTpl,&nbsp;$fromUsername,&nbsp;$toUsername,&nbsp;$time,&nbsp;$msgType,&nbsp;$contentStr); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;$resultStr; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;&#8216;\u548b\u4e0d\u8bf4\u54c8\u5462&#8217;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;&#8216;\u548b\u4e0d\u8bf4\u54c8\u5462&#8217;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19],"tags":[],"class_list":["post-29501","post","type-post","status-publish","format-standard","hentry","category-19"],"_links":{"self":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/29501","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/comments?post=29501"}],"version-history":[{"count":0,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/29501\/revisions"}],"wp:attachment":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/media?parent=29501"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/categories?post=29501"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/tags?post=29501"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}