{"id":31471,"date":"2024-11-25T10:19:32","date_gmt":"2024-11-25T02:19:32","guid":{"rendered":"https:\/\/fwq.ai\/blog\/31471\/"},"modified":"2024-11-25T10:19:32","modified_gmt":"2024-11-25T02:19:32","slug":"%e5%be%ae%e4%bf%a1api%e6%8e%a5%e5%8f%a3","status":"publish","type":"post","link":"https:\/\/fwq.ai\/blog\/31471\/","title":{"rendered":"\u5fae\u4fe1API\u63a5\u53e3"},"content":{"rendered":"<p>\u8fd9\u7bc7\u6587\u7ae0\u4ecb\u7ecd\u7684\u5185\u5bb9\u662f\u5173\u4e8eapi\u63a5\u53e3 \uff0c\u6709\u7740\u4e00\u5b9a\u7684\u53c2\u8003\u4ef7\u503c\uff0c\u73b0\u5728\u5206\u4eab\u7ed9\u5927\u5bb6\uff0c\u6709\u9700\u8981\u7684\u670b\u53cb\u53ef\u4ee5\u53c2\u8003\u4e00\u4e0b<\/p>\n<p>\u672c\u6587\u7ed9\u5927\u5bb6\u4ecb\u7ecd\u7684\u662f\u4e2a\u4eba\u603b\u7ed3\u7684\u4e00\u4e9b\u5fae\u4fe1API\u63a5\u53e3\uff0c\u5305\u62ec\u5fae\u4fe1\u652f\u4ed8\u3001\u5fae\u4fe1\u7ea2\u5305\u3001\u5fae\u4fe1\u5361\u5238\u3001\u5fae\u4fe1\u5c0f\u5e97\u7b49\uff0c\u5341\u5206\u7684\u5168\u9762\uff0c\u6709\u9700\u8981\u7684\u5c0f\u4f19\u4f34\u53ef\u4ee5\u53c2\u8003\u4e0b\u3002<\/p>\n<p>\u5fae\u4fe1\u5165\u53e3\u7ed1\u5b9a\uff0c\u5fae\u4fe1\u4e8b\u4ef6\u5904\u7406\uff0c\u5fae\u4fe1API\u5168\u90e8\u64cd\u4f5c\u5305\u542b\u5728\u8fd9\u4e9b\u6587\u4ef6\u4e2d\u3002<br \/>\u5fae\u4fe1\u652f\u4ed8\u3001\u5fae\u4fe1\u7ea2\u5305\u3001\u5fae\u4fe1\u5361\u5238\u3001\u5fae\u4fe1\u5c0f\u5e97\u3002<\/p>\n<p>1. [\u4ee3\u7801]index.php&nbsp; &nbsp;&nbsp;<\/p>\n<pre>&lt;?php include_once &#039;lib.inc.php&#039;;\r\n \r\n$wcObj = new WeChat(\"YOUKUIYUAN\");\r\n$wcObj-&gt;wcValid();<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>2. [\u4ee3\u7801]\u5fae\u4fe1\u5165\u53e3\u7c7b&nbsp; &nbsp;&nbsp;<\/p>\n<pre>&lt;?php \/**\r\n * Description of wechat\r\n *\r\n * @author Administrator\r\n *\/\r\nclass WeChat extends WxApi{\r\n  public $token = \"\";\r\n  \/\/put your code here\r\n  public function __construct($token = \"\") {\r\n    parent::__construct();\r\n    $this-&gt;token&nbsp;=&nbsp;$token;\r\n&nbsp;&nbsp;}\r\n&nbsp;\r\n&nbsp;&nbsp;public&nbsp;function&nbsp;wcCheckSignature(){\r\n&nbsp;&nbsp;&nbsp;&nbsp;try{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(empty($this-&amp;gt;token))&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;Exception('TOKEN&nbsp;is&nbsp;not&nbsp;defined!');\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$signature&nbsp;=&nbsp;$_GET[\"signature\"];\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$timestamp&nbsp;=&nbsp;$_GET[\"timestamp\"];\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$nonce&nbsp;=&nbsp;$_GET[\"nonce\"];\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$token&nbsp;=&nbsp;$this-&amp;gt;token;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$tmpArr&nbsp;=&nbsp;array($token,&nbsp;$timestamp,&nbsp;$nonce);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;use&nbsp;SORT_STRING&nbsp;rule\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sort($tmpArr,&nbsp;SORT_STRING);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$tmpStr&nbsp;=&nbsp;implode(&nbsp;$tmpArr&nbsp;);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$tmpStr&nbsp;=&nbsp;sha1(&nbsp;$tmpStr&nbsp;);\r\n&nbsp;\r\n&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;return&nbsp;true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(Exception&nbsp;$e)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;'Message:&nbsp;'&nbsp;.$e-&amp;gt;getMessage();\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;public&nbsp;function&nbsp;wcValid(){\r\n&nbsp;&nbsp;&nbsp;&nbsp;$echoStr&nbsp;=&nbsp;isset($_GET[\"echostr\"])&nbsp;&amp;amp;&amp;amp;&nbsp;!empty($_GET[\"echostr\"])&nbsp;?&nbsp;addslashes($_GET[\"echostr\"])&nbsp;:&nbsp;NULL;\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(is_null($echoStr)){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;wcMsg();\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;else{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/valid&nbsp;signature&nbsp;,&nbsp;option\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($this-&amp;gt;wcCheckSignature()){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;$echoStr;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;public&nbsp;function&nbsp;wcMsg(){\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/get&nbsp;post&nbsp;data,&nbsp;May&nbsp;be&nbsp;due&nbsp;to&nbsp;the&nbsp;different&nbsp;environments\r\n&nbsp;&nbsp;&nbsp;&nbsp;$postStr&nbsp;=&nbsp;isset($GLOBALS[\"HTTP_RAW_POST_DATA\"])&nbsp;&amp;amp;&amp;amp;&nbsp;!empty($GLOBALS[\"HTTP_RAW_POST_DATA\"])&nbsp;?&nbsp;$GLOBALS[\"HTTP_RAW_POST_DATA\"]&nbsp;:&nbsp;\"\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(!empty($postStr)){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libxml_disable_entity_loader(true);\r\n&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;$this-&amp;gt;zcLog(TRUE,$postObj);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$fromUsername&nbsp;=&nbsp;$postObj-&amp;gt;FromUserName;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$toUsername&nbsp;=&nbsp;$postObj-&amp;gt;ToUserName;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$MsgType&nbsp;=&nbsp;$postObj-&amp;gt;MsgType;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($MsgType&nbsp;==&nbsp;'event'){\/\/\u6267\u884c\u4e8b\u4ef6\u76f8\u5e94\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$Event&nbsp;=&nbsp;$postObj-&amp;gt;Event;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch&nbsp;($Event)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'subscribe':\/\/\u5173\u6ce8\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'unsubscribe':\/\/\u53d6\u6d88\u5173\u6ce8\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'SCAN':\/\/\u626b\u63cf\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'LOCATION':\/\/\u5730\u5740\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'CLICK':\/\/\u70b9\u51fb\u65f6\u95f4\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'VIEW':\/\/\u8df3\u8f6c\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'card_pass_check':\/\/\u5361\u5238\u5ba1\u6838\u901a\u8fc7\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'card_not_pass_check':\/\/\u5361\u5238\u5ba1\u6838\u5931\u8d25\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'user_get_card':\/\/\u7528\u6237\u9886\u53d6\u5361\u5238\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'user_del_card':\/\/\u7528\u6237\u5220\u9664\u5361\u5238\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'user_view_card':\/\/\u7528\u6237\u6d4f\u89c8\u4f1a\u5458\u5361\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'user_consume_card':\/\/\u7528\u6237\u6838\u9500\u5361\u5238\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'merchant_order':\/\/\u5fae\u5c0f\u5e97\u7528\u6237\u4e0b\u5355\u4ed8\u6b3e\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default:\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch&nbsp;($MsgType)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'text':\/\/\u6587\u672c\u683c\u5f0f\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'image':\/\/\u56fe\u7247\u683c\u5f0f\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'voice':\/\/\u58f0\u97f3\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'video':\/\/\u89c6\u9891\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'shortvideo':\/\/\u5c0f\u89c6\u9891\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'location':\/\/\u4e0a\u4f20\u5730\u7406\u4f4d\u7f6e\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'link':\/\/\u94fe\u63a5\u76f8\u5e94\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default:\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$keyword&nbsp;=&nbsp;trim($postObj-&amp;gt;Content);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$time&nbsp;=&nbsp;time();\r\n&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;&nbsp;&nbsp;&lt;tousername&gt;&lt;\/tousername&gt;\r\n&nbsp;&nbsp;&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;&nbsp;&nbsp;&lt;createtime&gt;%s&lt;\/createtime&gt;\r\n&nbsp;&nbsp;&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;&nbsp;&nbsp;&lt;content&gt;&lt;\/content&gt;\r\n&nbsp;&nbsp;&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;\/xml&gt;\";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!empty(&nbsp;$keyword&nbsp;)){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$msgType&nbsp;=&nbsp;\"text\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$contentStr&nbsp;=&nbsp;\"Welcome&nbsp;to&nbsp;wechat&nbsp;world!\";\r\n&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;echo&nbsp;$resultStr;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;\"Input&nbsp;something...\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;else{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;\"\u6682\u65f6\u6ca1\u6709\u4efb\u4f55\u4fe1\u606f\uff01\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;\/\/\u65e5\u5fd7LOG\r\n&nbsp;&nbsp;public&nbsp;function&nbsp;zcLog($errcode&nbsp;,&nbsp;$errmsg){\r\n&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;returnAy&nbsp;=&nbsp;array();\r\n&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;returnAy['errcode']&nbsp;=&nbsp;$errcode;\r\n&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;returnAy['errmsg']&nbsp;=&nbsp;$errmsg;\r\n&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;returnAy['errtime']&nbsp;=&nbsp;date(\"Y-m-d&nbsp;H:i:s\",time());\r\n&nbsp;&nbsp;&nbsp;&nbsp;$logfile&nbsp;=&nbsp;fopen(\"logfile_\".date(\"Ymd\",time()).\".txt\",&nbsp;\"a+\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;$txt&nbsp;=&nbsp;json_encode($this-&amp;gt;returnAy).\"\n\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;fwrite($logfile,&nbsp;$txt);\r\n&nbsp;&nbsp;&nbsp;&nbsp;fclose($logfile);\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/return&nbsp;$this-&amp;gt;returnAy;\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n}<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>3. [\u4ee3\u7801]\u5fae\u4fe1\u64cd\u4f5c\u7c7b &#8211; \u66f4\u65b0\u4e86\u81ea\u5b9a\u4e49\u83dc\u5355\u90e8\u5206&nbsp; &nbsp;&nbsp;<\/p>\n<pre>&lt;?php   \/********************************************************\r\n   *   @author Kyler You &lt;QQ:2444756311&gt;\r\n&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;@link&nbsp;http:\/\/mp.weixin.qq.com\/wiki\/home\/index.html\r\n&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;@version&nbsp;2.0.1\r\n&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;@uses&nbsp;$wxApi&nbsp;=&nbsp;new&nbsp;WxApi();\r\n&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;@package&nbsp;\u5fae\u4fe1API\u63a5\u53e3&nbsp;\u9646\u7eed\u4f1a\u7ee7\u7eed\u8fdb\u884c\u66f4\u65b0\r\n&nbsp;&nbsp;&nbsp;********************************************************\/\r\n&nbsp;\r\n&nbsp;&nbsp;class&nbsp;WxApi&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/const&nbsp;appId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;\"\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/const&nbsp;appSecret&nbsp;&nbsp;&nbsp;=&nbsp;\"\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;appId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;\"\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;appSecret&nbsp;&nbsp;&nbsp;=&nbsp;\"\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/const&nbsp;mchid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;\"\";&nbsp;\/\/\u5546\u6237\u53f7\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/const&nbsp;privatekey&nbsp;&nbsp;=&nbsp;\"\";&nbsp;\/\/\u79c1\u94a5\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;$parameters&nbsp;=&nbsp;array();\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;__construct(){\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/****************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u5fae\u4fe1\u63d0\u4ea4API\u65b9\u6cd5\uff0c\u8fd4\u56de\u5fae\u4fe1\u6307\u5b9aJSON\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;****************************************************\/\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxHttpsRequest($url,$data&nbsp;=&nbsp;null){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$curl&nbsp;=&nbsp;curl_init();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($curl,&nbsp;CURLOPT_URL,&nbsp;$url);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($curl,&nbsp;CURLOPT_SSL_VERIFYPEER,&nbsp;FALSE);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($curl,&nbsp;CURLOPT_SSL_VERIFYHOST,&nbsp;FALSE);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!empty($data)){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($curl,&nbsp;CURLOPT_POST,&nbsp;1);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($curl,&nbsp;CURLOPT_POSTFIELDS,&nbsp;$data);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($curl,&nbsp;CURLOPT_RETURNTRANSFER,&nbsp;1);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$output&nbsp;=&nbsp;curl_exec($curl);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_close($curl);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$output;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/****************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u5fae\u4fe1\u5e26\u8bc1\u4e66\u63d0\u4ea4\u6570\u636e&nbsp;-&nbsp;\u5fae\u4fe1\u7ea2\u5305\u4f7f\u7528\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;****************************************************\/\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxHttpsRequestPem($url,&nbsp;$vars,&nbsp;$second=30,$aHeader=array()){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ch&nbsp;=&nbsp;curl_init();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u8d85\u65f6\u65f6\u95f4\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_TIMEOUT,$second);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_RETURNTRANSFER,&nbsp;1);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u8fd9\u91cc\u8bbe\u7f6e\u4ee3\u7406\uff0c\u5982\u679c\u6709\u7684\u8bdd\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/curl_setopt($ch,CURLOPT_PROXY,&nbsp;'10.206.30.98');\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/curl_setopt($ch,CURLOPT_PROXYPORT,&nbsp;8080);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_URL,$url);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u4ee5\u4e0b\u4e24\u79cd\u65b9\u5f0f\u9700\u9009\u62e9\u4e00\u79cd\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u7b2c\u4e00\u79cd\u65b9\u6cd5\uff0ccert&nbsp;\u4e0e&nbsp;key&nbsp;\u5206\u522b\u5c5e\u4e8e\u4e24\u4e2a.pem\u6587\u4ef6\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u9ed8\u8ba4\u683c\u5f0f\u4e3aPEM\uff0c\u53ef\u4ee5\u6ce8\u91ca\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_SSLCERT,getcwd().'\/apiclient_cert.pem');\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u9ed8\u8ba4\u683c\u5f0f\u4e3aPEM\uff0c\u53ef\u4ee5\u6ce8\u91ca\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_SSLKEY,getcwd().'\/apiclient_key.pem');\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_CAINFO,'PEM');\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_CAINFO,getcwd().'\/rootca.pem');\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u7b2c\u4e8c\u79cd\u65b9\u5f0f\uff0c\u4e24\u4e2a\u6587\u4ef6\u5408\u6210\u4e00\u4e2a.pem\u6587\u4ef6\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/curl_setopt($ch,CURLOPT_SSLCERT,getcwd().'\/all.pem');\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;count($aHeader)&nbsp;&amp;gt;=&nbsp;1&nbsp;){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,&nbsp;CURLOPT_HTTPHEADER,&nbsp;$aHeader);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_POST,&nbsp;1);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_POSTFIELDS,$vars);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data&nbsp;=&nbsp;curl_exec($ch);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($data){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_close($ch);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$data;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;{&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$error&nbsp;=&nbsp;curl_errno($ch);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;\"call&nbsp;faild,&nbsp;errorCode:$error\n\";&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_close($ch);\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;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/****************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u5fae\u4fe1\u83b7\u53d6AccessToken&nbsp;\u8fd4\u56de\u6307\u5b9a\u5fae\u4fe1\u516c\u4f17\u53f7\u7684at\u4fe1\u606f\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;****************************************************\/\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxAccessToken($appId&nbsp;=&nbsp;NULL&nbsp;,&nbsp;$appSecret&nbsp;=&nbsp;NULL){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$appId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;is_null($appId)&nbsp;?&nbsp;self::appId&nbsp;:&nbsp;$appId;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$appSecret&nbsp;&nbsp;&nbsp;=&nbsp;is_null($appSecret)&nbsp;?&nbsp;self::appSecret&nbsp;:&nbsp;$appSecret;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data&nbsp;=&nbsp;json_decode(file_get_contents(\"access_token.json\"));\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($data-&amp;gt;expire_time&nbsp;wxHttpsRequest($url);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/print_r($result);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$jsoninfo&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;json_decode($result,&nbsp;true);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$access_token&nbsp;&nbsp;=&nbsp;$jsoninfo[\"access_token\"];\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($access_token)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data-&amp;gt;expire_time&nbsp;=&nbsp;time()&nbsp;+&nbsp;7000;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data-&amp;gt;access_token&nbsp;=&nbsp;$access_token;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$fp&nbsp;=&nbsp;fopen(\"access_token.json\",&nbsp;\"w\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fwrite($fp,&nbsp;json_encode($data));\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fclose($fp);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&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;$access_token&nbsp;=&nbsp;$data-&amp;gt;access_token;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$access_token;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/****************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u5fae\u4fe1\u83b7\u53d6AccessToken&nbsp;\u8fd4\u56de\u6307\u5b9a\u5fae\u4fe1\u516c\u4f17\u53f7\u7684at\u4fe1\u606f\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;****************************************************\/\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxJsApiTicket($appId&nbsp;=&nbsp;NULL&nbsp;,&nbsp;$appSecret&nbsp;=&nbsp;NULL){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$appId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;is_null($appId)&nbsp;?&nbsp;self::appId&nbsp;:&nbsp;$appId;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$appSecret&nbsp;&nbsp;&nbsp;=&nbsp;is_null($appSecret)&nbsp;?&nbsp;self::appSecret&nbsp;:&nbsp;$appSecret;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data&nbsp;=&nbsp;json_decode(file_get_contents(\"jsapi_ticket.json\"));\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($data-&amp;gt;expire_time&nbsp;wxAccessToken();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$this-&amp;gt;wxHttpsRequest($url);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$jsoninfo&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;json_decode($result,&nbsp;true);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ticket&nbsp;=&nbsp;$jsoninfo['ticket'];\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($ticket)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data-&amp;gt;expire_time&nbsp;=&nbsp;time()&nbsp;+&nbsp;7000;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data-&amp;gt;jsapi_ticket&nbsp;=&nbsp;$ticket;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$fp&nbsp;=&nbsp;fopen(\"jsapi_ticket.json\",&nbsp;\"w\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fwrite($fp,&nbsp;json_encode($data));\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fclose($fp);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&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;$ticket&nbsp;=&nbsp;$data-&amp;gt;jsapi_ticket;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$ticket;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/****************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u5fae\u4fe1\u901a\u8fc7OPENID\u83b7\u53d6\u7528\u6237\u4fe1\u606f\uff0c\u8fd4\u56de\u6570\u7ec4\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;****************************************************\/\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxGetUser($openId){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$wxAccessToken&nbsp;=&nbsp;$this-&amp;gt;wxAccessToken();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;\"https:\/\/api.weixin.qq.com\/cgi-bin\/user\/info?access_token=\".$wxAccessToken.\"&amp;amp;openid=\".$openId.\"&amp;amp;lang=zh_CN\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$this-&amp;gt;wxHttpsRequest($url);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$jsoninfo&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;json_decode($result,&nbsp;true);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$jsoninfo;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/****************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u5fae\u4fe1\u751f\u6210\u4e8c\u7ef4\u7801ticket\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;****************************************************\/\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxQrCodeTicket($jsonData){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$wxAccessToken&nbsp;=&nbsp;$this-&amp;gt;wxAccessToken();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;\"https:\/\/api.weixin.qq.com\/cgi-bin\/qrcode\/create?access_token=\".$wxAccessToken;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$this-&amp;gt;wxHttpsRequest($url,$jsonData);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$result;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/****************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u5fae\u4fe1\u901a\u8fc7ticket\u751f\u6210\u4e8c\u7ef4\u7801\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;****************************************************\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxQrCode($ticket){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url&nbsp;&nbsp;=&nbsp;\"https:\/\/mp.weixin.qq.com\/cgi-bin\/showqrcode?ticket=\"&nbsp;.&nbsp;urlencode($ticket);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$url;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/****************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;\u53d1\u9001\u81ea\u5b9a\u4e49\u7684\u6a21\u677f\u6d88\u606f\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;****************************************************\/\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxSetSend($touser,&nbsp;$template_id,&nbsp;$url,&nbsp;$data,&nbsp;$topcolor&nbsp;=&nbsp;'#7B68EE'){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$template&nbsp;=&nbsp;array(\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'touser'&nbsp;=&amp;gt;&nbsp;$touser,\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'template_id'&nbsp;=&amp;gt;&nbsp;$template_id,\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'url'&nbsp;=&amp;gt;&nbsp;$url,\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'topcolor'&nbsp;=&amp;gt;&nbsp;$topcolor,\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'data'&nbsp;=&amp;gt;&nbsp;$data\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$jsonData&nbsp;=&nbsp;json_encode($template);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result&nbsp;=&nbsp;$this-&amp;gt;wxSendTemplate($jsonData);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$result;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/****************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u5fae\u4fe1\u8bbe\u7f6eOAUTH\u8df3\u8f6cURL\uff0c\u8fd4\u56de\u5b57\u7b26\u4e32\u4fe1\u606f&nbsp;-&nbsp;SCOPE&nbsp;=&nbsp;snsapi_base&nbsp;\/\/\u9a8c\u8bc1\u65f6\u4e0d\u8fd4\u56de\u786e\u8ba4\u9875\u9762\uff0c\u53ea\u80fd\u83b7\u53d6OPENID\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;****************************************************\/\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxOauthBase($redirectUrl,$state&nbsp;=&nbsp;\"\",$appId&nbsp;=&nbsp;NULL){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$appId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;is_null($appId)&nbsp;?&nbsp;self::appId&nbsp;:&nbsp;$appId;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url&nbsp;=&nbsp;\"https:\/\/open.weixin.qq.com\/connect\/oauth2\/authorize?appid=\".$appId.\"&amp;amp;redirect_uri=\".$redirectUrl.\"&amp;amp;response_type=code&amp;amp;scope=snsapi_base&amp;amp;state=\".$state.\"#wechat_redirect\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$url;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/****************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u5fae\u4fe1\u8bbe\u7f6eOAUTH\u8df3\u8f6cURL\uff0c\u8fd4\u56de\u5b57\u7b26\u4e32\u4fe1\u606f&nbsp;-&nbsp;SCOPE&nbsp;=&nbsp;snsapi_userinfo&nbsp;\/\/\u83b7\u53d6\u7528\u6237\u5b8c\u6574\u4fe1\u606f\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;****************************************************\/\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxOauthUserinfo($redirectUrl,$state&nbsp;=&nbsp;\"\",$appId&nbsp;=&nbsp;NULL){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$appId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;is_null($appId)&nbsp;?&nbsp;self::appId&nbsp;:&nbsp;$appId;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url&nbsp;=&nbsp;\"https:\/\/open.weixin.qq.com\/connect\/oauth2\/authorize?appid=\".$appId.\"&amp;amp;redirect_uri=\".$redirectUrl.\"&amp;amp;response_type=code&amp;amp;scope=snsapi_userinfo&amp;amp;state=\".$state.\"#wechat_redirect\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$url;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/****************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u5fae\u4fe1OAUTH\u8df3\u8f6c\u6307\u5b9aURL\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;****************************************************\/\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxHeader($url){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;header(\"location:\".$url);\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/****************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u5fae\u4fe1\u901a\u8fc7OAUTH\u8fd4\u56de\u9875\u9762\u4e2d\u83b7\u53d6AT\u4fe1\u606f\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;****************************************************\/\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxOauthAccessToken($code,$appId&nbsp;=&nbsp;NULL&nbsp;,&nbsp;$appSecret&nbsp;=&nbsp;NULL){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$appId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;is_null($appId)&nbsp;?&nbsp;self::appId&nbsp;:&nbsp;$appId;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$appSecret&nbsp;&nbsp;&nbsp;=&nbsp;is_null($appSecret)&nbsp;?&nbsp;self::appSecret&nbsp;:&nbsp;$appSecret;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url&nbsp;=&nbsp;\"https:\/\/api.weixin.qq.com\/sns\/oauth2\/access_token?appid=\".$appId.\"&amp;amp;secret=\".$appSecret.\"&amp;amp;code=\".$code.\"&amp;amp;grant_type=authorization_code\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$this-&amp;gt;wxHttpsRequest($url);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/print_r($result);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$jsoninfo&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;json_decode($result,&nbsp;true);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/$access_token&nbsp;&nbsp;&nbsp;=&nbsp;$jsoninfo[\"access_token\"];\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$jsoninfo;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/****************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u5fae\u4fe1\u901a\u8fc7OAUTH\u7684Access_Token\u7684\u4fe1\u606f\u83b7\u53d6\u5f53\u524d\u7528\u6237\u4fe1\u606f&nbsp;\/\/&nbsp;\u53ea\u6267\u884c\u5728snsapi_userinfo\u6a21\u5f0f\u8fd0\u884c\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;****************************************************\/\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxOauthUser($OauthAT,$openId){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;\"https:\/\/api.weixin.qq.com\/sns\/userinfo?access_token=\".$OauthAT.\"&amp;amp;openid=\".$openId.\"&amp;amp;lang=zh_CN\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$this-&amp;gt;wxHttpsRequest($url);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$jsoninfo&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;json_decode($result,&nbsp;true);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$jsoninfo;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/****************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u521b\u5efa\u81ea\u5b9a\u4e49\u83dc\u5355\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;****************************************************\/\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxMenuCreate($jsonData){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$wxAccessToken&nbsp;=&nbsp;$this-&amp;gt;wxAccessToken();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;\"https:\/\/api.weixin.qq.com\/cgi-bin\/menu\/create?access_token=\"&nbsp;.&nbsp;$wxAccessToken;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$this-&amp;gt;wxHttpsRequest($url,$jsonData);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$jsoninfo&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;json_decode($result,&nbsp;true);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$jsoninfo;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/****************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u83b7\u53d6\u81ea\u5b9a\u4e49\u83dc\u5355\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;****************************************************\/\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxMenuGet(){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$wxAccessToken&nbsp;=&nbsp;$this-&amp;gt;wxAccessToken();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;\"https:\/\/api.weixin.qq.com\/cgi-bin\/menu\/get?access_token=\"&nbsp;.&nbsp;$wxAccessToken;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$this-&amp;gt;wxHttpsRequest($url);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$jsoninfo&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;json_decode($result,&nbsp;true);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$jsoninfo;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/****************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u5220\u9664\u81ea\u5b9a\u4e49\u83dc\u5355\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;****************************************************\/\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxMenuDelete(){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$wxAccessToken&nbsp;=&nbsp;$this-&amp;gt;wxAccessToken();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;\"https:\/\/api.weixin.qq.com\/cgi-bin\/menu\/delete?access_token=\"&nbsp;.&nbsp;$wxAccessToken;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$this-&amp;gt;wxHttpsRequest($url);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$jsoninfo&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;json_decode($result,&nbsp;true);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$jsoninfo;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/****************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u83b7\u53d6\u7b2c\u4e09\u65b9\u81ea\u5b9a\u4e49\u83dc\u5355\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;****************************************************\/\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxMenuGetInfo(){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$wxAccessToken&nbsp;=&nbsp;$this-&amp;gt;wxAccessToken();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;\"https:\/\/api.weixin.qq.com\/cgi-bin\/get_current_selfmenu_info?access_token=\"&nbsp;.&nbsp;$wxAccessToken;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$this-&amp;gt;wxHttpsRequest($url);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$jsoninfo&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;json_decode($result,&nbsp;true);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$jsoninfo;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/*****************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;\u751f\u6210\u968f\u673a\u5b57\u7b26\u4e32&nbsp;-&nbsp;\u6700\u957f\u4e3a32\u4f4d\u5b57\u7b26\u4e32\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*****************************************************\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxNonceStr($length&nbsp;=&nbsp;16,&nbsp;$type&nbsp;=&nbsp;FALSE)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$chars&nbsp;=&nbsp;\"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$str&nbsp;=&nbsp;\"\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;($i&nbsp;=&nbsp;0;&nbsp;$i&nbsp;parameters&nbsp;=&nbsp;$parameters;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$this-&amp;gt;parameters;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;array();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/*******************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;\u5fae\u4fe1\u683c\u5f0f\u5316\u6570\u7ec4\u53d8\u6210\u53c2\u6570\u683c\u5f0f&nbsp;-&nbsp;\u652f\u6301url\u52a0\u5bc6\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*******************************************************\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;public&nbsp;function&nbsp;wxFormatArray($parameters&nbsp;=&nbsp;NULL,&nbsp;$urlencode&nbsp;=&nbsp;FALSE){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(is_null($parameters)){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$parameters&nbsp;=&nbsp;$this-&amp;gt;parameters;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$restr&nbsp;=&nbsp;\"\";\/\/\u521d\u59cb\u5316\u7a7a\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ksort($parameters);\/\/\u6392\u5e8f\u53c2\u6570\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;($parameters&nbsp;as&nbsp;$k&nbsp;=&amp;gt;&nbsp;$v){\/\/\u5faa\u73af\u5b9a\u5236\u53c2\u6570\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(null&nbsp;!=&nbsp;$v&nbsp;&amp;amp;&amp;amp;&nbsp;\"null\"&nbsp;!=&nbsp;$v&nbsp;&amp;amp;&amp;amp;&nbsp;\"sign\"&nbsp;!=&nbsp;$k)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($urlencode){\/\/\u5982\u679c\u53c2\u6570\u9700\u8981\u589e\u52a0URL\u52a0\u5bc6\u5c31\u589e\u52a0\uff0c\u4e0d\u9700\u8981\u5219\u4e0d\u9700\u8981\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$v&nbsp;=&nbsp;urlencode($v);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$restr&nbsp;.=&nbsp;$k&nbsp;.&nbsp;\"=\"&nbsp;.&nbsp;$v&nbsp;.&nbsp;\"&amp;amp;\";\/\/\u8fd4\u56de\u5b8c\u6574\u5b57\u7b26\u4e32\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(strlen($restr)&nbsp;&amp;gt;&nbsp;0)&nbsp;{\/\/\u5982\u679c\u5b58\u5728\u6570\u636e\u5219\u5c06\u6700\u540e\u201c&amp;amp;\u201d\u5220\u9664\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$restr&nbsp;=&nbsp;substr($restr,&nbsp;0,&nbsp;strlen($restr)-1);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$restr;\/\/\u8fd4\u56de\u5b57\u7b26\u4e32\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/*******************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;\u5fae\u4fe1MD5\u7b7e\u540d\u751f\u6210\u5668&nbsp;-&nbsp;\u9700\u8981\u5c06\u53c2\u6570\u6570\u7ec4\u8f6c\u5316\u6210\u4e3a\u5b57\u7b26\u4e32[wxFormatArray\u65b9\u6cd5]\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*******************************************************\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxMd5Sign($content,&nbsp;$privatekey){\r\n&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(is_null($privatekey))&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;Exception(\"\u8d22\u4ed8\u901a\u7b7e\u540dkey\u4e0d\u80fd\u4e3a\u7a7a\uff01\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(is_null($content))&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;Exception(\"\u8d22\u4ed8\u901a\u7b7e\u540d\u5185\u5bb9\u4e0d\u80fd\u4e3a\u7a7a\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$signStr&nbsp;=&nbsp;$content&nbsp;.&nbsp;\"&amp;amp;key=\"&nbsp;.&nbsp;$privatekey;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;strtoupper(md5($signStr));\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(Exception&nbsp;$e)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;die($e-&amp;gt;getMessage());\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/*******************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;\u5fae\u4fe1Sha1\u7b7e\u540d\u751f\u6210\u5668&nbsp;-&nbsp;\u9700\u8981\u5c06\u53c2\u6570\u6570\u7ec4\u8f6c\u5316\u6210\u4e3a\u5b57\u7b26\u4e32[wxFormatArray\u65b9\u6cd5]\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*******************************************************\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxSha1Sign($content){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(is_null($content))&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;Exception(\"\u7b7e\u540d\u5185\u5bb9\u4e0d\u80fd\u4e3a\u7a7a\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/$signStr&nbsp;=&nbsp;$content;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;sha1($content);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(Exception&nbsp;$e)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;die($e-&amp;gt;getMessage());\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/*******************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;\u5fae\u4fe1jsApi\u6574\u5408\u65b9\u6cd5&nbsp;-&nbsp;\u901a\u8fc7\u8c03\u7528\u6b64\u65b9\u6cd5\u83b7\u5f97jsapi\u6570\u636e\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*******************************************************\/&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxJsapiPackage(){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$jsapi_ticket&nbsp;=&nbsp;$this-&amp;gt;wxJsApiTicket();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;\u6ce8\u610f&nbsp;URL&nbsp;\u4e00\u5b9a\u8981\u52a8\u6001\u83b7\u53d6\uff0c\u4e0d\u80fd&nbsp;hardcode.\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$protocol&nbsp;=&nbsp;(!empty($_SERVER['HTTPS'])&nbsp;&amp;amp;&amp;amp;&nbsp;$_SERVER['HTTPS']&nbsp;!==&nbsp;'off'&nbsp;||&nbsp;$_SERVER['SERVER_PORT']&nbsp;==&nbsp;443)&nbsp;?&nbsp;\"https:\/\/\"&nbsp;:&nbsp;\"http:\/\/\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url&nbsp;=&nbsp;$protocol.$_SERVER[\"HTTP_HOST\"].$_SERVER[\"REQUEST_URI\"];\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$timestamp&nbsp;=&nbsp;time();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$nonceStr&nbsp;=&nbsp;$this-&amp;gt;wxNonceStr();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$signPackage&nbsp;=&nbsp;array(\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"jsapi_ticket\"&nbsp;=&amp;gt;&nbsp;$jsapi_ticket,\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"nonceStr\"&nbsp;=&amp;gt;&nbsp;$nonceStr,\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"timestamp\"&nbsp;=&amp;gt;&nbsp;$timestamp,\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"url\"&nbsp;&nbsp;&nbsp;&nbsp;=&amp;gt;&nbsp;$url\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;\u8fd9\u91cc\u53c2\u6570\u7684\u987a\u5e8f\u8981\u6309\u7167&nbsp;key&nbsp;\u503c&nbsp;ASCII&nbsp;\u7801\u5347\u5e8f\u6392\u5e8f\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$rawString&nbsp;=&nbsp;\"jsapi_ticket=$jsapi_ticket&amp;amp;noncestr=$nonceStr&amp;amp;timestamp=$timestamp&amp;amp;url=$url\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/$rawString&nbsp;=&nbsp;$this-&amp;gt;wxFormatArray($signPackage);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$signature&nbsp;=&nbsp;$this-&amp;gt;wxSha1Sign($rawString);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$signPackage['signature']&nbsp;=&nbsp;$signature;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$signPackage['rawString']&nbsp;=&nbsp;$rawString;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$signPackage['appId']&nbsp;=&nbsp;self::appId;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$signPackage;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/*******************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;\u5c06\u6570\u7ec4\u89e3\u6790XML&nbsp;-&nbsp;\u5fae\u4fe1\u7ea2\u5305\u63a5\u53e3\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*******************************************************\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxArrayToXml($parameters&nbsp;=&nbsp;NULL){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(is_null($parameters)){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$parameters&nbsp;=&nbsp;$this-&amp;gt;parameters;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!is_array($parameters)&nbsp;||&nbsp;empty($parameters)){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;die(\"\u53c2\u6570\u4e0d\u4e3a\u6570\u7ec4\u65e0\u6cd5\u89e3\u6790\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$xml&nbsp;=&nbsp;\"&lt;xml&gt;\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;($arr&nbsp;as&nbsp;$key=&amp;gt;$val)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(is_numeric($val))\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$xml.=\"\".$val.\"\".$key.\"&amp;gt;\";&nbsp;\r\n&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;$xml.=\"\".$key.\"&amp;gt;\";&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$xml.=\"&lt;\/xml&gt;\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$xml;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/*******************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;\u5fae\u4fe1\u5361\u5238\uff1a\u4e0a\u4f20LOGO&nbsp;-&nbsp;\u9700\u8981\u6539\u5199\u52a8\u6001\u529f\u80fd\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*******************************************************\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxCardUpdateImg()&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$wxAccessToken&nbsp;=&nbsp;$this-&amp;gt;wxAccessToken();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/$data['access_token']&nbsp;=&nbsp;$wxAccessToken;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data['buffer']&nbsp;&nbsp;&nbsp;=&nbsp;'@D:\\workspace\\htdocs\\yky_test\\logo.jpg';\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;\"https:\/\/api.weixin.qq.com\/cgi-bin\/media\/uploadimg?access_token=\".$wxAccessToken;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$this-&amp;gt;wxHttpsRequest($url,$data);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$jsoninfo&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;json_decode($result,&nbsp;true);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$jsoninfo;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/array(1)&nbsp;{&nbsp;[\"url\"]=&amp;gt;&nbsp;string(121)&nbsp;\"http:\/\/mmbiz.qpic.cn\/mmbiz\/ibuYxPHqeXePNTW4ATKyias1Cf3zTKiars9PFPzF1k5icvXD7xW0kXUAxHDzkEPd9micCMCN0dcTJfW6Tnm93MiaAfRQ\/0\"&nbsp;}&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/*******************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;\u5fae\u4fe1\u5361\u5238\uff1a\u83b7\u53d6\u989c\u8272\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*******************************************************\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxCardColor(){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$wxAccessToken&nbsp;=&nbsp;$this-&amp;gt;wxAccessToken();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;\"https:\/\/api.weixin.qq.com\/card\/getcolors?access_token=\".$wxAccessToken;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$this-&amp;gt;wxHttpsRequest($url);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$jsoninfo&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;json_decode($result,&nbsp;true);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$jsoninfo;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/*******************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;\u5fae\u4fe1\u5361\u5238\uff1a\u521b\u5efa\u5361\u5238\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*******************************************************\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxCardCreated($jsonData)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$wxAccessToken&nbsp;=&nbsp;$this-&amp;gt;wxAccessToken();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;\"https:\/\/api.weixin.qq.com\/card\/create?access_token=\"&nbsp;.&nbsp;$wxAccessToken;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$this-&amp;gt;wxHttpsRequest($url,$jsonData);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$jsoninfo&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;json_decode($result,&nbsp;true);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$jsoninfo;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/*******************************************************\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;\u5fae\u4fe1\u5361\u5238\uff1aJSAPI&nbsp;\u5361\u5238Package&nbsp;-&nbsp;\u57fa\u7840\u53c2\u6570\u6ca1\u6709\u9644\u5e26\u4efb\u4f55\u503c&nbsp;-&nbsp;\u518d\u751f\u4ea7\u73af\u5883\u4e2d\u9700\u8981\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u8fdb\u884c\u4fee\u6539\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*******************************************************\/&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;wxCardPackage($cardId){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$timestamp&nbsp;=&nbsp;time();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$api_ticket&nbsp;=&nbsp;$this-&amp;gt;wxJsApiTicket();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$cardId&nbsp;=&nbsp;$cardId;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$arrays&nbsp;=&nbsp;array($api_ticket,$timestamp,$cardId);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sort($arrays);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$string&nbsp;=&nbsp;sha1(implode(\"\",$arrays));\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$resultArray['card_id']&nbsp;=&nbsp;$cardId;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$resultArray['card_ext']&nbsp;=&nbsp;array();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$resultArray['card_ext']['openid']&nbsp;=&nbsp;'oOmn4s9MiwqHSNNvPn0dBtU23toA';\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$resultArray['card_ext']['timestamp']&nbsp;=&nbsp;$timestamp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$resultArray['card_ext']['signature']&nbsp;=&nbsp;$string;\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$resultArray;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;}<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>4. [\u4ee3\u7801]\u5fae\u4fe1JSAPI&nbsp; &nbsp;&nbsp;<\/p>\n<pre>&lt;?php   require_once &#039;lib.inc.php&#039;;\r\n  $wx = new WxApi();\r\n  \/\/\u901a\u8fc7\u7f51\u9875\u83b7\u53d6openid\r\n  \/\/if(!isset($_GET[&#039;code&#039;])){\r\n  \/\/  header(\"location:https:\/\/open.weixin.qq.com\/connect\/oauth2\/authorize?appid=\".WxApi::appId.\"&amp;redirect_uri=http:\/\/\".$_SERVER[&#039;SERVER_NAME&#039;].$_SERVER[&#039;PHP_SELF&#039;].\"&amp;response_type=code&amp;scope=snsapi_base&amp;state=1#wechat_redirect\");\r\n  \/\/}\r\n  \/\/else{\r\n  \/\/  $CODE = $_GET[&#039;code&#039;];\r\n  \/\/  $Info = $wx-&gt;wxOauthAccessToken($CODE);\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/print_r($Info);\r\n&nbsp;&nbsp;\/\/&nbsp;&nbsp;$openId&nbsp;=&nbsp;$Info['openid'];&nbsp;&nbsp;\r\n&nbsp;&nbsp;\/\/}\r\n&nbsp;&nbsp;\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\r\n&nbsp;\r\n&nbsp;&nbsp;$signPackage&nbsp;=&nbsp;$wx-&amp;gt;wxJsapiPackage();\r\n&nbsp;&nbsp;\/\/print_r($signPackage);\r\n&nbsp;&nbsp;$kqInfo&nbsp;=&nbsp;$wx-&amp;gt;wxCardPackage(\"\");\r\n&nbsp;&nbsp;$listInfo&nbsp;=&nbsp;$wx-&amp;gt;wxCardListPackage();\r\n?&amp;gt;\r\n\r\n&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;JSAPI\u63a5\u53e3\u6d4b\u8bd5&lt;\/title&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;meta&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;meta&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;script&gt;&lt;\/script&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;script&gt;&lt;\/script&gt;\r\n&nbsp;&nbsp;\r\n&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&gt;&lt;br&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&gt;&lt;br&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&gt;&lt;br&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/p&gt;&lt;p&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/p&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;script&gt;\r\n      wx.config({\r\n       debug: false,\r\n       appId: &#039;&lt;?php echo $signPackage[\"appId\"];?&gt;&#039;,\r\n       timestamp: &lt;?php echo $signPackage[\"timestamp\"];?&gt;,\r\n       nonceStr: &#039;&lt;?php echo $signPackage[\"nonceStr\"];?&gt;&#039;,\r\n       signature: &#039;&lt;?php echo $signPackage[\"signature\"];?&gt;&#039;,\r\n       jsApiList: [\r\n        \/\/ \u6240\u6709\u8981\u8c03\u7528\u7684 API \u90fd\u8981\u52a0\u5230\u8fd9\u4e2a\u5217\u8868\u4e2d\r\n        &#039;onMenuShareTimeline&#039;,\r\n         &#039;onMenuShareAppMessage&#039;,\r\n         &#039;addCard&#039;,\r\n         &#039;openCard&#039;\r\n       ]\r\n      });\r\n       \r\n      wx.ready(function () {\r\n        \/\/ \u5728\u8fd9\u91cc\u8c03\u7528 API\r\n        wx.onMenuShareAppMessage({\r\n          title: &#039;\u4e92\u8054\u7f51\u4e4b\u5b50&#039;,\r\n          desc: &#039;\u5728\u957f\u5927\u7684\u8fc7\u7a0b\u4e2d\uff0c\u6211\u624d\u6162\u6162\u53d1\u73b0\uff0c\u6211\u8eab\u8fb9\u7684\u6240\u6709\u4e8b\uff0c\u522b\u4eba\u8ddf\u6211\u8bf4\u7684\u6240\u6709\u4e8b\uff0c\u90a3\u4e9b\u6240\u8c13\u672c\u6765\u5982\u6b64\uff0c\u6ce8\u5b9a\u5982\u6b64\u7684\u4e8b\uff0c\u5b83\u4eec\u5176\u5b9e\u6ca1\u6709\u975e\u5f97\u5982\u6b64\uff0c\u4e8b\u60c5\u662f\u53ef\u4ee5\u6539\u53d8\u7684\u3002\u66f4\u91cd\u8981\u7684\u662f\uff0c\u6709\u4e9b\u4e8b\u65e2\u7136\u9519\u4e86\uff0c\u90a3\u5c31\u8be5\u505a\u51fa\u6539\u53d8\u3002&#039;,\r\n          link: &#039;http:\/\/movie.douban.com\/subject\/25785114\/&#039;,\r\n          imgUrl: &#039;http:\/\/demo.open.weixin.qq.com\/jssdk\/images\/p2166127561.jpg&#039;,\r\n          trigger: function (res) {\r\n            \/\/ \u4e0d\u8981\u5c1d\u8bd5\u5728trigger\u4e2d\u4f7f\u7528ajax\u5f02\u6b65\u8bf7\u6c42\u4fee\u6539\u672c\u6b21\u5206\u4eab\u7684\u5185\u5bb9\uff0c\u56e0\u4e3a\u5ba2\u6237\u7aef\u5206\u4eab\u64cd\u4f5c\u662f\u4e00\u4e2a\u540c\u6b65\u64cd\u4f5c\uff0c\u8fd9\u65f6\u5019\u4f7f\u7528ajax\u7684\u56de\u5305\u4f1a\u8fd8\u6ca1\u6709\u8fd4\u56de\r\n            alert(&#039;\u7528\u6237\u70b9\u51fb\u53d1\u9001\u7ed9\u670b\u53cb&#039;);\r\n          },\r\n          success: function (res) {\r\n            alert(&#039;\u5df2\u5206\u4eab&#039;);\r\n          },\r\n          cancel: function (res) {\r\n            alert(&#039;\u5df2\u53d6\u6d88&#039;);\r\n          },\r\n          fail: function (res) {\r\n            alert(JSON.stringify(res));\r\n          }\r\n        });\r\n         \r\n      document.querySelector(&#039;#ShareTimeLine&#039;).onclick = function () {\r\n        wx.onMenuShareTimeline({\r\n            title: &#039;\u4e92\u8054\u7f51\u4e4b\u5b50&#039;,\r\n            link: &#039;http:\/\/movie.douban.com\/subject\/25785114\/&#039;,\r\n            imgUrl: &#039;http:\/\/demo.open.weixin.qq.com\/jssdk\/images\/p2166127561.jpg&#039;,\r\n            trigger: function (res) {\r\n                \/\/ \u4e0d\u8981\u5c1d\u8bd5\u5728trigger\u4e2d\u4f7f\u7528ajax\u5f02\u6b65\u8bf7\u6c42\u4fee\u6539\u672c\u6b21\u5206\u4eab\u7684\u5185\u5bb9\uff0c\u56e0\u4e3a\u5ba2\u6237\u7aef\u5206\u4eab\u64cd\u4f5c\u662f\u4e00\u4e2a\u540c\u6b65\u64cd\u4f5c\uff0c\u8fd9\u65f6\u5019\u4f7f\u7528ajax\u7684\u56de\u5305\u4f1a\u8fd8\u6ca1\u6709\u8fd4\u56de\r\n                alert(&#039;\u7528\u6237\u70b9\u51fb\u5206\u4eab\u5230\u670b\u53cb\u5708&#039;);\r\n            },\r\n            success: function (res) {\r\n                alert(&#039;\u5df2\u5206\u4eab&#039;);\r\n            },\r\n            cancel: function (res) {\r\n                alert(&#039;\u5df2\u53d6\u6d88&#039;);\r\n            },\r\n            fail: function (res) {\r\n                alert(JSON.stringify(res));\r\n            }\r\n        });\r\n      };  \r\n       \r\n       document.querySelector(&#039;#batchAddCard&#039;).onclick = function () {\r\n        wx.addCard({\r\n         cardList: [\r\n          {\r\n           cardId: &#039;p7G0Cj_1HGF2nijO4sTlVTzawFhI&#039;,\r\n           cardExt: &#039;{\"timestamp\":\"&lt;?php echo $kqInfo[&#039;cardExt&#039;][&#039;timestamp&#039;];?&gt;\", \"signature\":\"&lt;?php echo $kqInfo[&#039;cardExt&#039;][&#039;signature&#039;];?&gt;\"}&#039;\r\n          }\r\n         ],\r\n         success: function (res) {\r\n          var cardList = res.cardList; \/\/ \u6dfb\u52a0\u7684\u5361\u5238\u5217\u8868\u4fe1\u606f\r\n          alert(cardList);\r\n         },\r\n        cancel: function (res) {\r\n            alert(&#039;\u5df2\u53d6\u6d88&#039;);\r\n        },\r\n        fail: function (res) {\r\n            alert(JSON.stringify(res));\r\n        }\r\n        });\r\n       };\r\n        \r\n       var shareData = {\r\n        title: &#039;\u5fae\u4fe1JS-SDK Demo&#039;,\r\n        desc: &#039;\u5fae\u4fe1JS-SDK,\u5e2e\u52a9\u7b2c\u4e09\u65b9\u4e3a\u7528\u6237\u63d0\u4f9b\u66f4\u4f18\u8d28\u7684\u79fb\u52a8web\u670d\u52a1&#039;,\r\n        link: &#039;http:\/\/demo.open.weixin.qq.com\/jssdk\/&#039;,\r\n        imgUrl: &#039;http:\/\/mmbiz.qpic.cn\/mmbiz\/icTdbqWNOwNRt8Qia4lv7k3M9J1SKqKCImxJCt7j9rHYicKDI45jRPBxdzdyREWnk0ia0N5TMnMfth7SdxtzMvVgXg\/0&#039;\r\n       };\r\n        \r\n       wx.onMenuShareAppMessage(shareData);\r\n        \r\n       wx.onMenuShareTimeline(shareData);\r\n      });\r\n \r\n      var readyFunc = function onBridgeReady() {\r\n        \/\/ \u7ed1\u5b9a\u5173\u6ce8\u4e8b\u4ef6\r\n        document.querySelector(&#039;#openCard&#039;).addEventListener(&#039;click&#039;,\r\n          function(e) {\r\n            WeixinJSBridge.invoke(&#039;chooseCard&#039;, {\r\n              \"app_id\": \"&lt;?php echo $listInfo[&#039;app_id&#039;]?&gt;\",\r\n              \"location_id \": &#039;&#039;,\r\n              \"sign_type\": \"SHA1\",\r\n              \"card_sign\": \"&lt;?php echo $listInfo[&#039;card_sign&#039;]?&gt;\",\r\n              \"card_id\": \"&lt;?php echo $listInfo[&#039;card_id&#039;]?&gt;\",\r\n              \"card_type\": \"&lt;?php echo $listInfo[&#039;card_type&#039;]?&gt;\",\r\n              \"time_stamp\": \"&lt;?php echo $listInfo[&#039;time_stamp&#039;]?&gt;\",\r\n              \"nonce_str\": \"&lt;?php echo $listInfo[&#039;nonce_str&#039;]?&gt;\"\r\n            },\r\n          function(res) {\r\n            alert(res.err_msg + res.choose_card_info);\r\n            $(\"#showInfo\").empty().append(res.err_msg + res.choose_card_info);\r\n          });\r\n        });\r\n      }\r\n       \r\n      if (typeof WeixinJSBridge === \"undefined\") {\r\n        document.addEventListener(&#039;WeixinJSBridgeReady&#039;, readyFunc, false);\r\n      } else {\r\n        readyFunc();\r\n      }\r\n \r\n     &lt;\/script&gt;\r\n&nbsp;&nbsp;\r\n<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>5. [\u4ee3\u7801]\u521b\u5efa\u5361\u5238&nbsp; &nbsp;&nbsp;<\/p>\n<pre>$kqinfo&nbsp;=&nbsp;array(\"card\"&nbsp;=&amp;gt;&nbsp;array());\r\n$kqinfo['card']['card_type']&nbsp;=&nbsp;'GENERAL_COUPON';\r\n$kqinfo['card']['general_coupon']&nbsp;=&nbsp;array('base_info'&nbsp;=&amp;gt;&nbsp;array(),&nbsp;'default_detail'&nbsp;=&amp;gt;&nbsp;array());\r\n$kqinfo['card']['general_coupon']['base_info']['logo_url']&nbsp;=&nbsp;'URL';\r\n$kqinfo['card']['general_coupon']['base_info']['code_type']&nbsp;=&nbsp;'CODE_TYPE_QRCODE';\r\n$kqinfo['card']['general_coupon']['base_info']['brand_name']&nbsp;=&nbsp;'';\r\n$kqinfo['card']['general_coupon']['base_info']['title']&nbsp;=&nbsp;'\u6d4b\u8bd5\u5361\u5238';\r\n$kqinfo['card']['general_coupon']['base_info']['color']&nbsp;=&nbsp;'Color030';\r\n$kqinfo['card']['general_coupon']['base_info']['notice']&nbsp;=&nbsp;'\u6d4b\u8bd5\u6d4b\u8bd5\u6d4b\u8bd5';\r\n$kqinfo['card']['general_coupon']['base_info']['description']&nbsp;=&nbsp;'\u8fd9\u662f\u4e00\u5f20\u4f18\u60e0\u5238';\r\n$kqinfo['card']['general_coupon']['base_info']['date_info']['type']&nbsp;=&nbsp;1;\r\n$kqinfo['card']['general_coupon']['base_info']['date_info']['begin_timestamp']&nbsp;=&nbsp;time();\r\n$kqinfo['card']['general_coupon']['base_info']['date_info']['end_timestamp']&nbsp;=&nbsp;time()&nbsp;+&nbsp;100&nbsp;*&nbsp;24&nbsp;*&nbsp;3600;\r\n$kqinfo['card']['general_coupon']['base_info']['sku']['quantity']&nbsp;=&nbsp;100000;\r\n$kqinfo['card']['general_coupon']['default_detail']&nbsp;=&nbsp;'\u6d4b\u8bd5\u6570\u636e\n\u6d4b\u8bd5\u6570\u636e\n\u6d4b\u8bd5\u6570\u636e';\r\n&nbsp;\r\n\/\/var_dump($kqinfo);\r\n\/\/$kqinfo&nbsp;=&nbsp;json_encode($kqinfo);\r\n$kqinfo&nbsp;=&nbsp;C::enJson($kqinfo);\r\n&nbsp;\r\n\/\/print_r(&nbsp;$kqinfo);\r\n\/\/$resultData&nbsp;=&nbsp;$wx-&amp;gt;wxCardCreated($kqinfo);<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u76f8\u5173\u63a8\u8350\uff1a<\/p>\n<\/p>\n<p><span><\/span><\/p>\n<p>\u4ee5\u4e0a\u5c31\u662fAPI\u63a5\u53e3\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\u4ecb\u7ecd\u7684\u5185\u5bb9\u662f\u5173\u4e8eapi\u63a5\u53e3 \uff0c\u6709\u7740\u4e00\u5b9a\u7684\u53c2\u8003\u4ef7\u503c\uff0c\u73b0\u5728\u5206\u4eab\u7ed9\u5927\u5bb6\uff0c\u6709\u9700\u8981\u7684\u670b\u53cb\u53ef\u4ee5\u53c2\u8003\u4e00\u4e0b \u672c\u6587\u7ed9\u5927\u5bb6\u4ecb\u7ecd\u7684\u662f\u4e2a\u4eba\u603b\u7ed3\u7684\u4e00\u4e9b\u5fae\u4fe1API\u63a5\u53e3\uff0c\u5305\u62ec\u5fae\u4fe1\u652f\u4ed8\u3001\u5fae\u4fe1\u7ea2\u5305\u3001\u5fae\u4fe1\u5361\u5238\u3001\u5fae\u4fe1\u5c0f\u5e97\u7b49\uff0c\u5341\u5206\u7684\u5168\u9762\uff0c\u6709\u9700\u8981\u7684\u5c0f\u4f19\u4f34\u53ef\u4ee5\u53c2\u8003\u4e0b\u3002 \u5fae\u4fe1\u5165\u53e3\u7ed1\u5b9a\uff0c\u5fae\u4fe1\u4e8b\u4ef6\u5904\u7406\uff0c\u5fae\u4fe1API\u5168\u90e8\u64cd\u4f5c\u5305\u542b\u5728\u8fd9\u4e9b\u6587\u4ef6\u4e2d\u3002\u5fae\u4fe1\u652f\u4ed8\u3001\u5fae\u4fe1\u7ea2\u5305\u3001\u5fae\u4fe1\u5361\u5238\u3001\u5fae\u4fe1\u5c0f\u5e97\u3002 1. [\u4ee3\u7801]index.php&nbsp; &nbsp;&nbsp; &lt;?php include_once &#039;lib.inc.php&#039;; $wcObj = new WeChat(&#8220;YOUKUIYUAN&#8221;); $wcObj-&gt;wcValid(); \u767b\u5f55\u540e\u590d\u5236 2. [\u4ee3\u7801]\u5fae\u4fe1\u5165\u53e3\u7c7b&nbsp; &nbsp;&nbsp; &lt;?php \/** * Description of wechat * * @author Administrator *\/ class WeChat extends WxApi{ public $token = &#8220;&#8221;; \/\/put your code here public function __construct($token = &#8220;&#8221;) { parent::__construct(); $this-&gt;token&nbsp;=&nbsp;$token; &nbsp;&nbsp;} &nbsp; &nbsp;&nbsp;public&nbsp;function&nbsp;wcCheckSignature(){ &nbsp;&nbsp;&nbsp;&nbsp;try{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(empty($this-&amp;gt;token))&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-31471","post","type-post","status-publish","format-standard","hentry","category-19"],"_links":{"self":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/31471","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=31471"}],"version-history":[{"count":0,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/31471\/revisions"}],"wp:attachment":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/media?parent=31471"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/categories?post=31471"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/tags?post=31471"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}