{"id":28842,"date":"2024-11-25T17:35:30","date_gmt":"2024-11-25T09:35:30","guid":{"rendered":"https:\/\/fwq.ai\/blog\/28842\/"},"modified":"2024-11-25T17:35:30","modified_gmt":"2024-11-25T09:35:30","slug":"%e5%be%ae%e4%bf%a1%e5%bc%80%e5%8f%91%e6%b6%88%e6%81%af%e6%8e%a8%e9%80%81%e5%ae%9e%e7%8e%b0%e6%8a%80%e5%b7%a7%ef%bc%88%e9%99%84%e4%bb%a3%e7%a0%81%ef%bc%89","status":"publish","type":"post","link":"https:\/\/fwq.ai\/blog\/28842\/","title":{"rendered":"\u5fae\u4fe1\u5f00\u53d1\u6d88\u606f\u63a8\u9001\u5b9e\u73b0\u6280\u5de7\uff08\u9644\u4ee3\u7801\uff09"},"content":{"rendered":"<p>\u8fd9\u7bc7\u6587\u7ae0\u4e3b\u8981\u4ecb\u7ecd\u4e86\u5fae\u4fe1\u5f00\u53d1\u6d88\u606f\u63a8\u9001\u5b9e\u73b0\u6280\u5de7\uff08\u9644\u4ee3\u7801\uff09 \u6d88\u606f\u63a8\u9001\u5b9e\u73b0\u4ee3\u7801\u7684\u76f8\u5173\u8d44\u6599,\u9700\u8981\u7684\u670b\u53cb\u53ef\u4ee5\u53c2\u8003\u4e0b<\/p>\n<p>\u6700\u8fd1\u505a\u5fae\u4fe1\u516c\u5171\u53f7\u7684\u5f00\u53d1\uff0c\u6709\u4e2a\u9700\u6c42\u662f\u8fd9\u6837\u7684\u6d88\u606f\u63a8\u9001\uff0c\u4ee5\u6587\u672c\u7684\u5f62\u5f0f\u628a\u7f16\u8f91\u7684\u6d88\u606f\u53d1\u9001\u7ed9\u5fae\u4fe1\u4f01\u4e1a\u53f7\u4e2d\u7684\u67d0\u4e00\u4e2a\u5e94\u7528\u7ec4\uff0c\u8fd9\u91cc\u505a\u4e0b\u7b14\u8bb0\uff0c\u4ee5\u4e0b\u662f\u6574\u7406\u5185\u5bb9\uff1a<\/p>\n<pre>\/\/\u5b9a\u4e49\u6570\u636e\u6a21\u578b\r\n&nbsp;\r\npublic&nbsp;class&nbsp;Access_token\r\n{\r\npublic&nbsp;Access_token()\r\n{\r\n\/\/\r\n\/\/&nbsp;TODO:&nbsp;\u5728\u6b64\u5904\u6dfb\u52a0\u6784\u9020\u51fd\u6570\u903b\u8f91\r\n\/\/\r\n}\r\nstring&nbsp;_access_token;\r\nstring&nbsp;_expires_in;\r\n&nbsp;\r\n\/\/\/\r\n&nbsp;\r\n&nbsp;\r\n\/\/\/&nbsp;\u83b7\u53d6\u5230\u7684\u51ed\u8bc1\r\n\/\/\/\r\n&nbsp;\r\npublic&nbsp;string&nbsp;access_token\r\n{\r\nget&nbsp;{&nbsp;return&nbsp;_access_token;&nbsp;}\r\nset&nbsp;{&nbsp;_access_token&nbsp;=&nbsp;value;&nbsp;}\r\n}\r\n&nbsp;\r\n&nbsp;\r\n\/\/\/\r\n&nbsp;\r\n&nbsp;\r\n\/\/\/&nbsp;\u51ed\u8bc1\u6709\u6548\u65f6\u95f4\uff0c\u5355\u4f4d\uff1a\u79d2\r\n\/\/\/\r\n&nbsp;\r\npublic&nbsp;string&nbsp;expires_in\r\n{\r\nget&nbsp;{&nbsp;return&nbsp;_expires_in;&nbsp;}\r\n&nbsp;\r\n&nbsp;\r\nset&nbsp;{&nbsp;_expires_in&nbsp;=&nbsp;value;&nbsp;}\r\n}\r\n&nbsp;\r\n}<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<pre>&nbsp;public&nbsp;ActionResult&nbsp;index(string&nbsp;returnUrl)\r\n{\r\n&nbsp;\r\nGetAccess_token()\uff1b\r\n&nbsp;\r\nIsExistAccess_Token()\uff1b\r\n&nbsp;\r\nreturn&nbsp;View();\r\n}\r\n&nbsp;\r\n&nbsp;\r\n&nbsp;\r\npublic&nbsp;static&nbsp;Access_token&nbsp;GetAccess_token()\r\n{\r\nstring&nbsp;AppUrl&nbsp;=&nbsp;\"https:\/\/qyapi.weixin.qq.com\/cgi-bin\/gettoken?\";\r\nstring&nbsp;AppID&nbsp;=&nbsp;\"\u5e94\u7528\u7ec4\u7684CorpID\";\/\/\u5728\u8bbe\u7f6e-\u300b\u6743\u9650\u7ba1\u7406-\u300b\u7cfb\u7edf\u7ba1\u7406\u7ec4\r\nstring&nbsp;AppSecret&nbsp;=&nbsp;\"\u5e94\u7528\u7ec4\u7684Secret\";\/\/\u5728\u8bbe\u7f6e-\u300b\u6743\u9650\u7ba1\u7406-\u300b\u7cfb\u7edf\u7ba1\u7406\u7ec4\r\nWebClient&nbsp;webClient&nbsp;=&nbsp;new&nbsp;WebClient();\r\nByte[]&nbsp;bytes&nbsp;=&nbsp;webClient.DownloadData(string.Format(\"{0}corpid={1}&amp;amp;corpsecret={2}\",&nbsp;AppUrl,&nbsp;AppID,&nbsp;AppSecret));\r\nstring&nbsp;result&nbsp;=&nbsp;Encoding.GetEncoding(\"utf-8\").GetString(bytes);\r\nJObject&nbsp;jObj&nbsp;=&nbsp;JObject.Parse(result);\r\n&nbsp;\r\nstring&nbsp;token&nbsp;=&nbsp;jObj[\"access_token\"].ToString();\r\nstring&nbsp;expires_in&nbsp;=&nbsp;jObj[\"expires_in\"].ToString();\r\n&nbsp;\r\nAccess_token&nbsp;mode&nbsp;=&nbsp;new&nbsp;Access_token();\r\nmode.access_token&nbsp;=&nbsp;token;\r\nmode.expires_in&nbsp;=&nbsp;expires_in;\r\nreturn&nbsp;mode;\r\n}\r\n&nbsp;\r\n\/\/\/<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u6839\u636e\u5f53\u524d\u65e5\u671f \u5224\u65adAccess_Token \u662f\u5426\u8d85\u671f \u5982\u679c\u8d85\u671f\u8fd4\u56de\u65b0\u7684Access_Token \u5426\u5219\u8fd4\u56de\u4e4b\u524d\u7684Access_Token<\/p>\n<pre>public&nbsp;static&nbsp;string&nbsp;IsExistAccess_Token()\r\n{\r\nstring&nbsp;Token&nbsp;=&nbsp;string.Empty;\r\nDateTime&nbsp;YouXRQ;\r\nstring&nbsp;strPath&nbsp;=&nbsp;\"..\/..\/weixin\/XMLFile.xml\";\r\n\/\/&nbsp;\u8bfb\u53d6XML\u6587\u4ef6\u4e2d\u7684\u6570\u636e\uff0c\u5e76\u663e\u793a\u51fa\u6765\r\n\/\/string&nbsp;filepath&nbsp;=&nbsp;System.Web.Hosting.HostingEnvironment.MapPath(strPath);\r\nstring&nbsp;filepath&nbsp;=&nbsp;System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory,&nbsp;strPath);\r\n&nbsp;\r\nStreamReader&nbsp;str&nbsp;=&nbsp;new&nbsp;StreamReader(filepath,&nbsp;System.Text.Encoding.UTF8);\r\nXmlDocument&nbsp;xml&nbsp;=&nbsp;new&nbsp;XmlDocument();\r\nxml.Load(str);\r\nstr.Close();\r\nstr.Dispose();\r\nToken&nbsp;=&nbsp;xml.SelectSingleNode(\"xml\").SelectSingleNode(\"Access_Token\").InnerText;\r\nYouXRQ&nbsp;=&nbsp;Convert.ToDateTime(xml.SelectSingleNode(\"xml\").SelectSingleNode(\"Access_YouXRQ\").InnerText);\r\n&nbsp;\r\n&nbsp;\r\nif&nbsp;(DateTime.Now&nbsp;&amp;gt;&nbsp;YouXRQ)\r\n{\r\nDateTime&nbsp;_youxrq&nbsp;=&nbsp;DateTime.Now;\r\nAccess_token&nbsp;mode&nbsp;=&nbsp;GetAccess_token();\r\nxml.SelectSingleNode(\"xml\").SelectSingleNode(\"Access_Token\").InnerText&nbsp;=&nbsp;mode.access_token;\r\n_youxrq&nbsp;=&nbsp;_youxrq.AddSeconds(int.Parse(mode.expires_in));\r\nxml.SelectSingleNode(\"xml\").SelectSingleNode(\"Access_YouXRQ\").InnerText&nbsp;=&nbsp;_youxrq.ToString();\r\nxml.Save(filepath);\r\nToken&nbsp;=&nbsp;mode.access_token;\r\n}\r\n&nbsp;\r\nobject&nbsp;text&nbsp;=&nbsp;new\r\n{\r\ntoparty&nbsp;=&nbsp;\"1\",\r\nagentid&nbsp;=&nbsp;\"2\",\r\nmsgtype&nbsp;=&nbsp;\"text\",\r\ntext&nbsp;=&nbsp;new\r\n{\r\ncontent&nbsp;=&nbsp;\"\u9879\u76ee\u540d\u79f0\uff1a\"+\u6765\u4fdd\u7f51+\"\"\r\n}\r\n};\r\n&nbsp;\r\nstring&nbsp;wcr=&nbsp;btnSend(Token,&nbsp;text);\r\nreturn&nbsp;wcr;\r\n&nbsp;\r\n}\r\npublic&nbsp;static&nbsp;string&nbsp;btnSend(string&nbsp;Token,&nbsp;object&nbsp;text)\r\n{\r\n&nbsp;\r\nstring&nbsp;url&nbsp;=&nbsp;\"https:\/\/qyapi.weixin.qq.com\/cgi-bin\/message\/send?access_token=\"&nbsp;+&nbsp;Token;\r\nWebRequest&nbsp;req&nbsp;=&nbsp;WebRequest.Create(url);\r\nJavaScriptSerializer&nbsp;aa&nbsp;=&nbsp;new&nbsp;JavaScriptSerializer();\r\nstring&nbsp;postData&nbsp;=&nbsp;aa.Serialize(text);\r\nbyte[]&nbsp;requestBytes&nbsp;=&nbsp;Encoding.UTF8.GetBytes(postData);\r\nreq.Method&nbsp;=&nbsp;\"POST\";\r\nreq.ContentType&nbsp;=&nbsp;\"application\/x-www-form-urlencoded\";\r\nreq.ContentLength&nbsp;=&nbsp;requestBytes.Length;\r\n&nbsp;\r\nStream&nbsp;requestStream&nbsp;=&nbsp;req.GetRequestStream();\r\nrequestStream.Write(requestBytes,&nbsp;0,&nbsp;requestBytes.Length);\r\nrequestStream.Close();\r\nHttpWebResponse&nbsp;res&nbsp;=&nbsp;(HttpWebResponse)req.GetResponse();\r\nStreamReader&nbsp;sr&nbsp;=&nbsp;new&nbsp;StreamReader(res.GetResponseStream(),&nbsp;Encoding.Default);\r\nstring&nbsp;backstr&nbsp;=&nbsp;sr.ReadToEnd();\r\nsr.Close();\r\nres.Close();\r\nWeChatReturn&nbsp;WCR&nbsp;=&nbsp;aa.Deserialize(backstr);\r\nreturn&nbsp;WCR.errmsg;\r\n&nbsp;\r\n}<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u611f\u8c22\u9605\u8bfb\uff0c\u5e0c\u671b\u80fd\u5e2e\u52a9\u5230\u5927\u5bb6\uff0c\u8c22\u8c22\u5927\u5bb6\u5bf9\u672c\u7ad9\u7684\u652f\u6301\uff01<\/p>\n<p>\u76f8\u5173\u6587\u7ae0\uff1a<\/p>\n<\/p>\n<\/p>\n<p>\u4ee5\u4e0a\u5c31\u662f\u5fae\u4fe1\u5f00\u53d1\u6d88\u606f\u63a8\u9001\u5b9e\u73b0\u6280\u5de7\uff08\u9644\u4ee3\u7801\uff09\u7684\u8be6\u7ec6\u5185\u5bb9\uff0c\u66f4\u591a\u8bf7\u5173\u6ce8\u7c73\u4e91\u5176\u5b83\u76f8\u5173\u6587\u7ae0\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u8fd9\u7bc7\u6587\u7ae0\u4e3b\u8981\u4ecb\u7ecd\u4e86\u5fae\u4fe1\u5f00\u53d1\u6d88\u606f\u63a8\u9001\u5b9e\u73b0\u6280\u5de7\uff08\u9644\u4ee3\u7801\uff09 \u6d88\u606f\u63a8\u9001\u5b9e\u73b0\u4ee3\u7801\u7684\u76f8\u5173\u8d44\u6599,\u9700\u8981\u7684\u670b\u53cb\u53ef\u4ee5\u53c2\u8003\u4e0b \u6700\u8fd1\u505a\u5fae\u4fe1\u516c\u5171\u53f7\u7684\u5f00\u53d1\uff0c\u6709\u4e2a\u9700\u6c42\u662f\u8fd9\u6837\u7684\u6d88\u606f\u63a8\u9001\uff0c\u4ee5\u6587\u672c\u7684\u5f62\u5f0f\u628a\u7f16\u8f91\u7684\u6d88\u606f\u53d1\u9001\u7ed9\u5fae\u4fe1\u4f01\u4e1a\u53f7\u4e2d\u7684\u67d0\u4e00\u4e2a\u5e94\u7528\u7ec4\uff0c\u8fd9\u91cc\u505a\u4e0b\u7b14\u8bb0\uff0c\u4ee5\u4e0b\u662f\u6574\u7406\u5185\u5bb9\uff1a \/\/\u5b9a\u4e49\u6570\u636e\u6a21\u578b &nbsp; public&nbsp;class&nbsp;Access_token { public&nbsp;Access_token() { \/\/ \/\/&nbsp;TODO:&nbsp;\u5728\u6b64\u5904\u6dfb\u52a0\u6784\u9020\u51fd\u6570\u903b\u8f91 \/\/ } string&nbsp;_access_token; string&nbsp;_expires_in; &nbsp; \/\/\/ &nbsp; &nbsp; \/\/\/&nbsp;\u83b7\u53d6\u5230\u7684\u51ed\u8bc1 \/\/\/ &nbsp; public&nbsp;string&nbsp;access_token { get&nbsp;{&nbsp;return&nbsp;_access_token;&nbsp;} set&nbsp;{&nbsp;_access_token&nbsp;=&nbsp;value;&nbsp;} } &nbsp; &nbsp; \/\/\/ &nbsp; &nbsp; \/\/\/&nbsp;\u51ed\u8bc1\u6709\u6548\u65f6\u95f4\uff0c\u5355\u4f4d\uff1a\u79d2 \/\/\/ &nbsp; public&nbsp;string&nbsp;expires_in { get&nbsp;{&nbsp;return&nbsp;_expires_in;&nbsp;} &nbsp; &nbsp; set&nbsp;{&nbsp;_expires_in&nbsp;=&nbsp;value;&nbsp;} } &nbsp; } \u767b\u5f55\u540e\u590d\u5236 &nbsp;public&nbsp;ActionResult&nbsp;index(string&nbsp;returnUrl) { &nbsp; GetAccess_token()\uff1b &nbsp; IsExistAccess_Token()\uff1b &nbsp; return&nbsp;View(); } &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-28842","post","type-post","status-publish","format-standard","hentry","category-19"],"_links":{"self":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/28842","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=28842"}],"version-history":[{"count":0,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/28842\/revisions"}],"wp:attachment":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/media?parent=28842"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/categories?post=28842"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/tags?post=28842"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}