{"id":28455,"date":"2024-11-25T16:59:43","date_gmt":"2024-11-25T08:59:43","guid":{"rendered":"https:\/\/fwq.ai\/blog\/28455\/"},"modified":"2024-11-25T16:59:43","modified_gmt":"2024-11-25T08:59:43","slug":"%e6%9c%80%e6%96%b0%e6%95%b4%e7%90%86%e5%87%ba%e7%9a%84%e5%be%ae%e4%bf%a1%e5%88%86%e4%ba%ab%e5%90%8e%e7%ab%af%e6%8e%a5%e5%8f%a3%e5%ae%9e%e7%8e%b0%e7%9a%84%e5%a4%a7%e8%87%b4%e6%b5%81%e7%a8%8b","status":"publish","type":"post","link":"https:\/\/fwq.ai\/blog\/28455\/","title":{"rendered":"\u6700\u65b0\u6574\u7406\u51fa\u7684\u5fae\u4fe1\u5206\u4eab\u540e\u7aef\u63a5\u53e3\u5b9e\u73b0\u7684\u5927\u81f4\u6d41\u7a0b"},"content":{"rendered":"<\/p>\n<h1>\u5fae\u4fe1\u5206\u4eab\u540e\u53f0\u63a5\u53e3\u7b80\u5355\u5b9e\u73b0<\/h1>\n<\/p>\n<p>\u6b64\u63a5\u53e3\u5927\u81f4\u7684\u6d41\u7a0b\u662f\uff1a\u7528\u6237\u521b\u5efa\u65f6\u95f4\u6233\uff0c\u968f\u673a\u5b57\u7b26\u4e32\uff0c\u5f53\u524d\u9700\u8981\u5206\u4eab\u7684\u9875\u9762\u7684url\u4e09\u4e2a\u53d8\u91cf\uff0c\u63a5\u7740\u5c06\u81ea\u5df1\u7684appid\u548cAPPsecret\u4f5c\u4e3a\u8bf7\u6c42\u53c2\u6570\u83b7\u53d6access_token\uff0c\u518d\u6839\u636eaccess_token\u83b7\u53d6jsapi_ticket, \u5e76\u5c06\u83b7\u53d6\u7684jsapi-ticket\u8fdb\u884c\u52a0\u5bc6\u3001\u6821\u9a8c\u4ee5\u53ca\u81ea\u5df1\u521b\u5efa\u7684\u4e09\u4e2a\u53d8\u91cf\u8fdb\u884c\u7b7e\u540d\uff0c\u6ce8\u610f\u7b7e\u540d\u8fc7\u7a0b\u6848\u6309\u7167 key \u503c ASCII \u7801\u5347\u5e8f\u6392\u5e8f\u5c01\u88c5\u6210json\u683c\u5f0f\u7684\u6570\u636e\u4f20\u9001\u5230\u524d\u53f0JS\u9875\u9762\uff0c\u5177\u4f53\u7a0b\u5e8f\u5982\u4e0b\uff1b<\/p>\n<pre>public&nbsp;class&nbsp;WeiXinShareAction&nbsp;extends&nbsp;HttpServlet&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;final&nbsp;long&nbsp;serialVersionUID&nbsp;=&nbsp;1L;\n\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;Integer&nbsp;main_count&nbsp;=&nbsp;888;\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;flag&nbsp;=&nbsp;\"1\";\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;Log&nbsp;logger&nbsp;=&nbsp;LogFactory.getLog(this.getClass());\n\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;filePath&nbsp;=&nbsp;\"\/B.txt\";\n\n&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;void&nbsp;doGet(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;ServletException,&nbsp;IOException&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JsonObject&nbsp;jsonObject&nbsp;=&nbsp;new&nbsp;JsonObject();\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;ticket&nbsp;=&nbsp;null;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;wxInfo&nbsp;=&nbsp;new&nbsp;String[]&nbsp;{&nbsp;\"wx007344f87ae48300\",&nbsp;\"5442edc712b6846bdd1c058b7f2318fe\"&nbsp;};\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WeiXinUtil&nbsp;wxu&nbsp;=&nbsp;new&nbsp;WeiXinUtil();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;ticketResString;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ticketResString&nbsp;=&nbsp;wxu.getShareJsapiTicket(wxInfo);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(StringUtils.isNotEmpty(ticketResString))&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JSONObject&nbsp;ticketJSONObject&nbsp;=&nbsp;JSONObject.fromObject(ticketResString);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(ticketJSONObject.getInt(\"errcode\")&nbsp;==&nbsp;0)&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ticket&nbsp;=&nbsp;JSONObject.fromObject(ticketResString).getString(\"ticket\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(StringUtils.isEmpty(ticket))&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jsonObject.addProperty(\"errcode\",&nbsp;10002);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jsonObject.addProperty(\"errmsg\",&nbsp;\"ticket_error\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.responseWrite(jsonObject.toString(),&nbsp;response);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;noncestr&nbsp;=&nbsp;this.createNonceStr();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;timestamp&nbsp;=&nbsp;this.createTimestamp();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;requestRefererURL&nbsp;=&nbsp;request.getHeader(\"referer\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;=&nbsp;request.getParameter(\"temp\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.info(\"flag--------------\"&nbsp;+&nbsp;flag);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u8fd9\u91cc\u662f\u4fdd\u5b58\u70b9\u51fb\u6b21\u6570\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u6ca1\u6709\u6570\u636e\u5e93\u7684\u60c5\u51b5\u4e0b&nbsp;\u4fdd\u8bc1\u670d\u52a1\u91cd\u542f\u540e\u70b9\u51fb\u6b21\u6570\u4e0d\u6e05\u96f6\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u5229\u7528\u7ebf\u7a0b\u9501&nbsp;\u4f7f\u7528IO\u6d41&nbsp;\u5bf9\u70b9\u51fb\u6b21\u6570\u8fdb\u884c\u4fee\u6539\u4fdd\u5b58\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread_readFile&nbsp;thf4&nbsp;=&nbsp;new&nbsp;Thread_readFile();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;thf4.start();\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.warn(\"requestRefererURL:&nbsp;\"&nbsp;+&nbsp;requestRefererURL);\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;signature&nbsp;=&nbsp;this.createSignature(noncestr,&nbsp;ticket,&nbsp;timestamp,&nbsp;requestRefererURL);\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jsonObject.addProperty(\"countNum\",&nbsp;main_count);\/\/\u70b9\u51fb\u6b21\u6570\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jsonObject.addProperty(\"errcode\",&nbsp;0);\/\/\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jsonObject.addProperty(\"errmsg\",&nbsp;\"\");\/\/\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jsonObject.addProperty(\"wxuser\",&nbsp;wxInfo[0]);&nbsp;\/\/&nbsp;appId\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jsonObject.addProperty(\"timestamp\",&nbsp;timestamp);\/\/\u65f6\u95f4\u6233\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jsonObject.addProperty(\"noncestr\",&nbsp;noncestr);\/\/\u968f\u673a\u5b57\u7b26\u4e32\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jsonObject.addProperty(\"signature\",&nbsp;signature);\/\/\u7b7e\u540d\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setHeader(\"Access-Control-Allow-Origin\",&nbsp;\"*\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.responseWrite(jsonObject.toString(),&nbsp;response);\n&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;void&nbsp;responseWrite(String&nbsp;content,&nbsp;HttpServletResponse&nbsp;response)&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setCharacterEncoding(\"utf-8\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.getWriter().write(content);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.error(\"responseWrite&nbsp;error&nbsp;in&nbsp;WeiXinShareAction\",&nbsp;e);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;}\n}<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u83b7\u53d6access_token;\u8fd9\u91cc\u5f00\u53d1\u8fc7\u7a0b\u4e2d\u8981\u6ce8\u610f\u5fae\u4fe1\u4e3a\u4e86\u51cf\u8f7b\u5bf9\u670d\u52a1\u5668\u7684\u8bbf\u95ee\u538b\u529b \u9650\u5236\u4e86access_token\u6bcf\u5929\u7684\u751f\u6210\u6b21\u6570 \u4ee5\u53ca\u4f7f\u7528\u65f6\u957f\uff1b<br \/>\u7531\u4e8e\u9650\u5236\u65f6\u957f\u4e3a7200s \u4e8e\u662f\u505a\u4e86\u4e00\u4e2a\u5224\u65ad \u518d\u751f\u6210\u4e00\u4e2atoken\u540e\u76842\u5c0f\u65f6\u7528\u540c\u4e00\u4e2atoken \uff1b<br \/>\u8fd9\u91cc\u4ec5\u4ec5\u53ea\u662f\u4e00\u4e2a\u5c0f\u63a5\u53e3 \u4e8e\u662f\u9009\u62e9\u5c06 \u6700\u8fd1\u4e00\u6b21\u7684\u751f\u6210\u65f6\u95f4 \u4ee5\u53ca token \u5b58\u4e3a\u9759\u6001\u53d8\u91cf\uff0c<\/p>\n<pre>&nbsp;&nbsp;&nbsp;&nbsp;\/**\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u5fae\u4fe1\u5206\u4eab\uff0c\u83b7\u53d6access_token\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;getWeiXinAccessToken(String[]&nbsp;wxInfo)&nbsp;throws&nbsp;Exception&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u5f97\u5230\u5f53\u524d\u65f6\u95f4\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;long&nbsp;current_time&nbsp;=&nbsp;System.currentTimeMillis();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;\u6bcf\u6b21\u8c03\u7528\uff0c\u5224\u65adexpires_in\u662f\u5426\u8fc7\u671f\uff0c\u5982\u679ctoken\u65f6\u95f4\u8d85\u65f6\uff0c\u91cd\u65b0\u83b7\u53d6\uff0cexpires_in\u6709\u6548\u671f\u4e3a7200\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((current_time&nbsp;-&nbsp;last_time)&nbsp;\/&nbsp;1000&nbsp;&amp;gt;=&nbsp;7200)&nbsp;{\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.info(\"\u7b2c\u4e00\u6b21\u8bbf\u95ee\"+current_time);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.info(\"(current_time&nbsp;-&nbsp;last_time)&nbsp;\/&nbsp;1000====\"+(current_time&nbsp;-&nbsp;last_time)&nbsp;\/&nbsp;1000);\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;url&nbsp;=&nbsp;\"https:\/\/api.weixin.qq.com\/cgi-bin\/token?grant_type=client_credential&amp;amp;appid=\"&nbsp;+&nbsp;wxInfo[0]\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;\"&amp;amp;secret=\"&nbsp;+&nbsp;wxInfo[1];\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;result&nbsp;=&nbsp;this.httpReqExecute(url);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.logger.warn(\"from&nbsp;weixin&nbsp;api&nbsp;accessToken:&nbsp;\"&nbsp;+&nbsp;result);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last_time&nbsp;=&nbsp;current_time;&nbsp;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(StringUtils.isNotEmpty(result))&nbsp;{\n\/\/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u89e3\u6790respContent\uff0c\u5e76\u83b7\u53d6\u5176\u4e2d\u7684\u66f4\u65b0\u7684key,\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;accessToken&nbsp;=&nbsp;JSONObject.fromObject(result).getString(\"access_token\");\n\/\/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u4fdd\u5b58access_token\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;accessToken;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.error(\"getAccessToken&nbsp;error&nbsp;in&nbsp;WeiXinShareAction\",&nbsp;e);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.info(\"\u7b2c\u4e8c\u6b21\u8bbf\u95ee\"+last_time);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.info(\"(current_time&nbsp;-&nbsp;last_time)&nbsp;\/&nbsp;1000====\"+(current_time&nbsp;-&nbsp;last_time)&nbsp;\/&nbsp;1000);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.info(\"from&nbsp;weixin&nbsp;api&nbsp;accessToken:\"+accessToken);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;accessToken;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;null;\n&nbsp;&nbsp;&nbsp;&nbsp;}<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u6839\u636eaccess_token\u83b7\u53d6jsapiTicket<\/p>\n<pre>&nbsp;&nbsp;&nbsp;&nbsp;\/**\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u5fae\u4fe1\u5206\u4eab\uff0c\u83b7\u53d6jsapiTicket\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getShareJsapiTicket(String[]&nbsp;wxInfo)&nbsp;throws&nbsp;Exception&nbsp;{\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;access_Token&nbsp;=&nbsp;this.getWeiXinAccessToken(wxInfo);\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(StringUtils.isEmpty(access_Token))&nbsp;{&nbsp;\/\/&nbsp;\u83b7\u53d6&nbsp;accessToken&nbsp;\u5931\u8d25\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/this.logger.warn(siteId&nbsp;+&nbsp;\"&nbsp;accessToken&nbsp;is&nbsp;empty.\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JsonObject&nbsp;jsonObject&nbsp;=&nbsp;new&nbsp;JsonObject();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jsonObject.addProperty(\"errcode\",&nbsp;\"10000\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jsonObject.addProperty(\"errmsg\",&nbsp;\"access_error\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;jsonObject.toString();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;url&nbsp;=&nbsp;\"https:\/\/api.weixin.qq.com\/cgi-bin\/ticket\/getticket?access_token=\"&nbsp;+&nbsp;access_Token&nbsp;+&nbsp;\"&amp;amp;type=jsapi\";\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;jsapiTicket&nbsp;=&nbsp;this.httpReqExecute(url);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.logger.warn(\"&nbsp;from&nbsp;weixin&nbsp;api&nbsp;jsapiTicket&nbsp;is:&nbsp;\"&nbsp;+&nbsp;jsapiTicket);\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(StringUtils.isNotEmpty(jsapiTicket))&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;jsapiTicket;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;null;\n&nbsp;&nbsp;&nbsp;&nbsp;}<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>Http\u8fdc\u7a0b\u8c03\u7528<\/p>\n<pre>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;httpReqExecute(String&nbsp;url)&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;result&nbsp;=&nbsp;\"\";\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DefaultHttpClient&nbsp;httpclient&nbsp;=&nbsp;null;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;httpclient&nbsp;=&nbsp;new&nbsp;DefaultHttpClient();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpPost&nbsp;httppost&nbsp;=&nbsp;new&nbsp;HttpPost(url);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;\u6267\u884c\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpResponse&nbsp;response&nbsp;=&nbsp;httpclient.execute(httppost);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpEntity&nbsp;entity&nbsp;=&nbsp;response.getEntity();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(entity&nbsp;!=&nbsp;null&nbsp;&amp;amp;&amp;amp;&nbsp;response.getStatusLine().getStatusCode()&nbsp;==&nbsp;200)&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;=&nbsp;EntityUtils.toString(entity,&nbsp;\"UTF-8\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.error(\"&nbsp;WeiXinShareAction&nbsp;\u8c03\u7528\u5fae\u4fe1&nbsp;API&nbsp;\u5931\u8d25\uff01\",&nbsp;e);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;finally&nbsp;{\/\/&nbsp;\u5173\u95ed\u8fde\u63a5\uff0c\u91ca\u653e\u8d44\u6e90\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;httpclient.getConnectionManager().shutdown();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;result;\n&nbsp;&nbsp;&nbsp;&nbsp;}<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u8fd4\u56de\u6210\u529f<\/p>\n<pre>&nbsp;from&nbsp;weixin&nbsp;api&nbsp;accessToken:&nbsp;{\"access_token\":\"12_9UgVn7tFVtvf_7r4Lq4V9W9-pQdZpqWxVjFsPoF3hv3J5_XfwQWqauj4n9-ZMikC1_oCp0IpBxjpZr-Ty8XzG8QMeV2QVukFz5_NP7kjAB05MX9msxRg0FlpAAMjonrrh5wxSEFfKHEc0_BDHFKjAFAXVA\",\"expires_in\":7200}\n\n&nbsp;from&nbsp;weixin&nbsp;api&nbsp;jsapiTicket&nbsp;is:&nbsp;{\"errcode\":0,\"errmsg\":\"ok\",\"ticket\":\"HoagFKDcsGMVCIY2vOjf9j_Us44Qhuo4KdgH5u8ewMjOCTUO44m1hKqgEsJYIyFR9HWrmmz-wrsb9KLdmpATRw\",\"expires_in\":7200}<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u76f8\u5173\u6587\u7ae0\uff1a<\/p>\n<\/p>\n<\/p>\n<p>\u76f8\u5173\u89c6\u9891\uff1a<\/p>\n<\/p>\n<p>\u4ee5\u4e0a\u5c31\u662f\u6700\u65b0\u6574\u7406\u51fa\u7684\u5fae\u4fe1\u5206\u4eab\u540e\u7aef\u63a5\u53e3\u5b9e\u73b0\u7684\u5927\u81f4\u6d41\u7a0b\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>\u5fae\u4fe1\u5206\u4eab\u540e\u53f0\u63a5\u53e3\u7b80\u5355\u5b9e\u73b0 \u6b64\u63a5\u53e3\u5927\u81f4\u7684\u6d41\u7a0b\u662f\uff1a\u7528\u6237\u521b\u5efa\u65f6\u95f4\u6233\uff0c\u968f\u673a\u5b57\u7b26\u4e32\uff0c\u5f53\u524d\u9700\u8981\u5206\u4eab\u7684\u9875\u9762\u7684url\u4e09\u4e2a\u53d8\u91cf\uff0c\u63a5\u7740\u5c06\u81ea\u5df1\u7684appid\u548cAPPsecret\u4f5c\u4e3a\u8bf7\u6c42\u53c2\u6570\u83b7\u53d6access_token\uff0c\u518d\u6839\u636eaccess_token\u83b7\u53d6jsapi_ticket, \u5e76\u5c06\u83b7\u53d6\u7684jsapi-ticket\u8fdb\u884c\u52a0\u5bc6\u3001\u6821\u9a8c\u4ee5\u53ca\u81ea\u5df1\u521b\u5efa\u7684\u4e09\u4e2a\u53d8\u91cf\u8fdb\u884c\u7b7e\u540d\uff0c\u6ce8\u610f\u7b7e\u540d\u8fc7\u7a0b\u6848\u6309\u7167 key \u503c ASCII \u7801\u5347\u5e8f\u6392\u5e8f\u5c01\u88c5\u6210json\u683c\u5f0f\u7684\u6570\u636e\u4f20\u9001\u5230\u524d\u53f0JS\u9875\u9762\uff0c\u5177\u4f53\u7a0b\u5e8f\u5982\u4e0b\uff1b public&nbsp;class&nbsp;WeiXinShareAction&nbsp;extends&nbsp;HttpServlet&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;final&nbsp;long&nbsp;serialVersionUID&nbsp;=&nbsp;1L; &nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;Integer&nbsp;main_count&nbsp;=&nbsp;888; &nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;flag&nbsp;=&nbsp;&#8220;1&#8221;; &nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;Log&nbsp;logger&nbsp;=&nbsp;LogFactory.getLog(this.getClass()); &nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;filePath&nbsp;=&nbsp;&#8220;\/B.txt&#8221;; &nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;void&nbsp;doGet(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;ServletException,&nbsp;IOException&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JsonObject&nbsp;jsonObject&nbsp;=&nbsp;new&nbsp;JsonObject(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;ticket&nbsp;=&nbsp;null; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;wxInfo&nbsp;=&nbsp;new&nbsp;String[]&nbsp;{&nbsp;&#8220;wx007344f87ae48300&#8221;,&nbsp;&#8220;5442edc712b6846bdd1c058b7f2318fe&#8221;&nbsp;}; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WeiXinUtil&nbsp;wxu&nbsp;=&nbsp;new&nbsp;WeiXinUtil(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;ticketResString; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ticketResString&nbsp;=&nbsp;wxu.getShareJsapiTicket(wxInfo); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(StringUtils.isNotEmpty(ticketResString))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JSONObject&nbsp;ticketJSONObject&nbsp;=&nbsp;JSONObject.fromObject(ticketResString); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(ticketJSONObject.getInt(&#8220;errcode&#8221;)&nbsp;==&nbsp;0)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ticket&nbsp;=&nbsp;JSONObject.fromObject(ticketResString).getString(&#8220;ticket&#8221;); &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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(StringUtils.isEmpty(ticket))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jsonObject.addProperty(&#8220;errcode&#8221;,&nbsp;10002); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jsonObject.addProperty(&#8220;errmsg&#8221;,&nbsp;&#8220;ticket_error&#8221;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.responseWrite(jsonObject.toString(),&nbsp;response); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;noncestr&nbsp;=&nbsp;this.createNonceStr(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;timestamp&nbsp;=&nbsp;this.createTimestamp(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;requestRefererURL&nbsp;=&nbsp;request.getHeader(&#8220;referer&#8221;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;=&nbsp;request.getParameter(&#8220;temp&#8221;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.info(&#8220;flag&#8212;&#8212;&#8212;&#8212;&#8211;&#8221;&nbsp;+&nbsp;flag); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u8fd9\u91cc\u662f\u4fdd\u5b58\u70b9\u51fb\u6b21\u6570 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u6ca1\u6709\u6570\u636e\u5e93\u7684\u60c5\u51b5\u4e0b&nbsp;\u4fdd\u8bc1\u670d\u52a1\u91cd\u542f\u540e\u70b9\u51fb\u6b21\u6570\u4e0d\u6e05\u96f6 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u5229\u7528\u7ebf\u7a0b\u9501&nbsp;\u4f7f\u7528IO\u6d41&nbsp;\u5bf9\u70b9\u51fb\u6b21\u6570\u8fdb\u884c\u4fee\u6539\u4fdd\u5b58 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread_readFile&nbsp;thf4&nbsp;=&nbsp;new&nbsp;Thread_readFile(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;thf4.start(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.warn(&#8220;requestRefererURL:&nbsp;&#8221;&nbsp;+&nbsp;requestRefererURL); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;signature&nbsp;=&nbsp;this.createSignature(noncestr,&nbsp;ticket,&nbsp;timestamp,&nbsp;requestRefererURL); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jsonObject.addProperty(&#8220;countNum&#8221;,&nbsp;main_count);\/\/\u70b9\u51fb\u6b21\u6570 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jsonObject.addProperty(&#8220;errcode&#8221;,&nbsp;0);\/\/ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jsonObject.addProperty(&#8220;errmsg&#8221;,&nbsp;&#8220;&#8221;);\/\/ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jsonObject.addProperty(&#8220;wxuser&#8221;,&nbsp;wxInfo[0]);&nbsp;\/\/&nbsp;appId &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jsonObject.addProperty(&#8220;timestamp&#8221;,&nbsp;timestamp);\/\/\u65f6\u95f4\u6233 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jsonObject.addProperty(&#8220;noncestr&#8221;,&nbsp;noncestr);\/\/\u968f\u673a\u5b57\u7b26\u4e32 [&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-28455","post","type-post","status-publish","format-standard","hentry","category-19"],"_links":{"self":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/28455","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=28455"}],"version-history":[{"count":0,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/28455\/revisions"}],"wp:attachment":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/media?parent=28455"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/categories?post=28455"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/tags?post=28455"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}