{"id":29231,"date":"2024-11-25T10:17:07","date_gmt":"2024-11-25T02:17:07","guid":{"rendered":"https:\/\/fwq.ai\/blog\/29231\/"},"modified":"2024-11-25T10:17:07","modified_gmt":"2024-11-25T02:17:07","slug":"php%e5%be%ae%e4%bf%a1%e5%85%ac%e4%bc%97%e8%b4%a6%e5%8f%b7%e5%bc%80%e5%8f%91%e9%81%87%e5%88%b0%e7%9a%84%e4%ba%94%e4%b8%aa%e5%9d%91%e6%80%bb%e7%bb%93","status":"publish","type":"post","link":"https:\/\/fwq.ai\/blog\/29231\/","title":{"rendered":"php\u5fae\u4fe1\u516c\u4f17\u8d26\u53f7\u5f00\u53d1\u9047\u5230\u7684\u4e94\u4e2a\u5751\u603b\u7ed3"},"content":{"rendered":"<p style=\"text-align: left\">\u8fd9\u7bc7\u6587\u7ae0\u4e3b\u8981\u4e3a\u5927\u5bb6\u8be6\u7ec6\u4ecb\u7ecd\u4e86php\u5fae\u4fe1\u516c\u4f17\u8d26\u53f7\u5f00\u53d1\u4e4b\u4e94\u4e2a\u5751,\u5177\u6709\u4e00\u5b9a\u7684\u53c2\u8003\u4ef7\u503c\uff0c\u611f\u5174\u8da3\u7684\u5c0f\u4f19\u4f34\u4eec\u53ef\u4ee5\u53c2\u8003\u4e00\u4e0b<\/p>\n<p style=\"text-align: left\"><span style=\"color: #800000\"><strong>\u83dc\u5355\u56de\u590d\u662f\u9700\u8981\u5904\u7406XML\u6587\u4ef6\u7684<\/strong><\/span>\uff0c\u6211\u4eec\u6839\u636e\u5fae\u4fe1\u8fd4\u56de\u7684XML\u6587\u4ef6\uff0c\u53ef\u4ee5\u5f97\u5230<span style=\"color: #800000\">\u6bcf\u4e2a\u5fae\u4fe1\u7528\u6237\u76f8\u5bf9\u4e8e\u5fae\u4fe1\u516c\u4f17\u53f7\u7684\u552f\u4e00\u6807\u8bc6<\/span>\u3002\u5fae\u4fe1\u516c\u4f17\u5e73\u53f0\u7684\u673a\u5236\u7b80\u5355\u7684\u5c06\u5c31\u662f\u6211\u4eec\u81ea\u5df1\u8f93\u51fa\u56fa\u5b9a\u683c\u5f0f\u7684xml\u6587\u4ef6\uff0c\u7136\u540e\u5fae\u4fe1APP\u8d1f\u8d23\u89e3\u6790\uff0c\u5f97\u5230\u6211\u4eec\u60f3\u8981\u7684\u4fe1\u606f\uff0c\u7136\u540e\u5bf9\u4fe1\u606f\u7edf\u4e00\u5904\u7406\u3002&nbsp;<\/p>\n<p style=\"text-align: left\"><strong>\u7b2c\u516d\u5751\uff0c<\/strong>\u5982\u679c\u4f60\u770b\u5fae\u4fe1\u6587\u6863\uff0c\u90a3\u4e48\uff0c\u7edd\u5bf9\u5751\u6b7b\u4f60\uff0c\u4e0a\u56fe\u3002\u8fd9\u91cc\u7684ToUserName\u548cFromUserName\u4e00\u5b9a\u7279\u4e48\u7684\u8981\u5206\u6e05\u695a\u4e86\uff0c\u8bb0\u4f4f\uff0c\u5343\u4e07\u4e0d\u8981\u5199\u53cd\u4e86\uff0c\u7528\u6237\u5bf9\u4e8e\u5fae\u4fe1\u800c\u8a00\u662fA\u2192B\uff0c\u90a3\u4e48\u5fae\u4fe1\u5bf9\u4e8e\u7528\u6237\u5c31\u662f\u53cd\u7740\u6765\u7684\uff0c\u8c8c\u4f3c\u73b0\u5728\u5e94\u8be5\u8bf4\u6e05\u695a\u4e86\u3002<\/p>\n<p style=\"text-align:center\"><img decoding=\"async\" src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/013\/3a5f5de383df06bd460dd4b3354df5b6-0.jpg\" style=\"max-width:90%\" class=\"aligncenter\" title=\"php\u5fae\u4fe1\u516c\u4f17\u8d26\u53f7\u5f00\u53d1\u9047\u5230\u7684\u4e94\u4e2a\u5751\u603b\u7ed3\u63d2\u56fe\" alt=\"php\u5fae\u4fe1\u516c\u4f17\u8d26\u53f7\u5f00\u53d1\u9047\u5230\u7684\u4e94\u4e2a\u5751\u603b\u7ed3\u63d2\u56fe\" \/><\/p>\n<p><\/p>\n<pre>\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u63a5\u6536\u5fae\u4fe1\u53d1\u9001\u7684XML\u6d88\u606f\u5e76\u4e14\u89e3\u6790\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;private&nbsp;void&nbsp;ReceiveXml()\r\n&nbsp;{\r\n&nbsp;try\r\n&nbsp;{\r\n&nbsp;&nbsp;Stream&nbsp;requestStream&nbsp;=&nbsp;System.Web.HttpContext.Current.Request.InputStream;\r\n&nbsp;&nbsp;byte[]&nbsp;requestByte&nbsp;=&nbsp;new&nbsp;byte[requestStream.Length];\r\n&nbsp;&nbsp;requestStream.Read(requestByte,&nbsp;0,&nbsp;(int)requestStream.Length);\r\n&nbsp;&nbsp;string&nbsp;requestStr&nbsp;=&nbsp;Encoding.UTF8.GetString(requestByte);\r\n\r\n&nbsp;&nbsp;if&nbsp;(!string.IsNullOrEmpty(requestStr))\r\n&nbsp;&nbsp;{&nbsp;\r\n\r\n&nbsp;&nbsp;\/\/\u5c01\u88c5\u8bf7\u6c42\u7c7b\r\n&nbsp;&nbsp;XmlDocument&nbsp;requestDocXml&nbsp;=&nbsp;new&nbsp;XmlDocument();\r\n&nbsp;&nbsp;requestDocXml.LoadXml(requestStr);\r\n&nbsp;&nbsp;XmlElement&nbsp;rootElement&nbsp;=&nbsp;requestDocXml.DocumentElement;\r\n&nbsp;&nbsp;WxXmlModel&nbsp;WxXmlModel&nbsp;=&nbsp;new&nbsp;WxXmlModel();\r\n&nbsp;&nbsp;if&nbsp;(rootElement&nbsp;!=&nbsp;null)\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;WxXmlModel.ToUserName&nbsp;=&nbsp;rootElement.SelectSingleNode(\"ToUserName\")&nbsp;==&nbsp;null&nbsp;?&nbsp;\"\"&nbsp;:&nbsp;rootElement.SelectSingleNode(\"ToUserName\").InnerText;\r\n&nbsp;&nbsp;&nbsp;WxXmlModel.FromUserName&nbsp;=&nbsp;rootElement.SelectSingleNode(\"FromUserName\")&nbsp;==&nbsp;null&nbsp;?&nbsp;\"\"&nbsp;:&nbsp;rootElement.SelectSingleNode(\"FromUserName\").InnerText;\r\n&nbsp;&nbsp;&nbsp;WxXmlModel.CreateTime&nbsp;=&nbsp;rootElement.SelectSingleNode(\"CreateTime\")&nbsp;==&nbsp;null&nbsp;?&nbsp;\"\"&nbsp;:&nbsp;rootElement.SelectSingleNode(\"CreateTime\").InnerText;\r\n&nbsp;&nbsp;&nbsp;WxXmlModel.MsgType&nbsp;=&nbsp;rootElement.SelectSingleNode(\"MsgType\")&nbsp;==&nbsp;null&nbsp;?&nbsp;\"\"&nbsp;:&nbsp;rootElement.SelectSingleNode(\"MsgType\").InnerText;\r\n&nbsp;&nbsp;&nbsp;switch&nbsp;(WxXmlModel.MsgType)\r\n&nbsp;&nbsp;&nbsp;{\r\n\r\n&nbsp;&nbsp;&nbsp;case&nbsp;\"text\":\/\/\u6587\u672c\r\n&nbsp;&nbsp;&nbsp;&nbsp;WxXmlModel.Content&nbsp;=&nbsp;rootElement.SelectSingleNode(\"Content\")&nbsp;==&nbsp;null&nbsp;?&nbsp;\"\"&nbsp;:&nbsp;rootElement.SelectSingleNode(\"Content\").InnerText;\r\n&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;case&nbsp;\"image\":\/\/\u56fe\u7247\r\n&nbsp;&nbsp;&nbsp;&nbsp;WxXmlModel.PicUrl&nbsp;=&nbsp;rootElement.SelectSingleNode(\"PicUrl\")&nbsp;==&nbsp;null&nbsp;?&nbsp;\"\"&nbsp;:&nbsp;rootElement.SelectSingleNode(\"PicUrl\").InnerText;\r\n&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;case&nbsp;\"event\":\/\/\u4e8b\u4ef6\r\n&nbsp;&nbsp;&nbsp;&nbsp;WxXmlModel.Event&nbsp;=&nbsp;rootElement.SelectSingleNode(\"Event\")&nbsp;==&nbsp;null&nbsp;?&nbsp;\"\"&nbsp;:&nbsp;rootElement.SelectSingleNode(\"Event\").InnerText;\r\n&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(WxXmlModel.Event&nbsp;!=&nbsp;\"TEMPLATESENDJOBFINISH\")\/\/\u5173\u6ce8\u7c7b\u578b\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;WxXmlModel.EventKey&nbsp;=&nbsp;rootElement.SelectSingleNode(\"EventKey\")&nbsp;==&nbsp;null&nbsp;?&nbsp;\"\"&nbsp;:&nbsp;rootElement.SelectSingleNode(\"EventKey\").InnerText;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;default:\r\n&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;ResponseXML(WxXmlModel);\/\/\u56de\u590d\u6d88\u606f\r\n&nbsp;&nbsp;}\r\n\r\n&nbsp;\r\n\r\n&nbsp;}\r\n&nbsp;catch&nbsp;(Exception&nbsp;ee)\r\n&nbsp;{\r\n&nbsp;&nbsp;\/\/\u8bb0\u5f55\u9519\u8bef\u65e5\u5fd7\r\n&nbsp;}\r\n&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u56de\u590d\u6d88\u606f\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\r\n&nbsp;private&nbsp;void&nbsp;ResponseXML(WxXmlModel&nbsp;WxXmlModel)\r\n&nbsp;{\r\n&nbsp;string&nbsp;XML&nbsp;=&nbsp;\"\";\r\n&nbsp;switch&nbsp;(WxXmlModel.MsgType)\r\n&nbsp;{\r\n&nbsp;&nbsp;case&nbsp;\"text\":\/\/\u6587\u672c\u56de\u590d\r\n&nbsp;&nbsp;var&nbsp;info&nbsp;=&nbsp;oauth.GetUserInfo(Tools.WA_GetAccess_Token.IsExistAccess_Token(),&nbsp;WxXmlModel.FromUserName);\r\n&nbsp;&nbsp;Tools.WAEntity.OAuthUser&nbsp;user&nbsp;=&nbsp;Tools.JsonHelper.ParseFromJson&lt;tools.waentity.oauthuser&gt;(info);\r\n&nbsp;&nbsp;var&nbsp;content&nbsp;=&nbsp;WxXmlModel.Content.ToUpper();\r\n&nbsp;&nbsp;string&nbsp;NcbActUrl&nbsp;=&nbsp;ConfigurationManager.AppSettings[\"NcbActUrl\"];\r\n&nbsp;&nbsp;string&nbsp;appid&nbsp;=&nbsp;ConfigurationManager.AppSettings[\"AppID\"];\r\n&nbsp;&nbsp;if&nbsp;(content.Contains(\"T\"))\/\/\u63a5\u53d7\u7684\u6587\u5b57\u5982\u679c\u5305\u542bT\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;\/\/\u4e1a\u52a1\u5904\u7406\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;else\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;XML&nbsp;=&nbsp;ResponseMessage.ReText(WxXmlModel.FromUserName,&nbsp;WxXmlModel.ToUserName,&nbsp;\"\/:rose\u519c\u573a\u5927\u6570\u636e\u6b22\u8fce\u4f60\uff01\/:rose\");\r\n\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;case&nbsp;\"event\":\r\n&nbsp;&nbsp;switch&nbsp;(WxXmlModel.Event.ToLower())\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;case&nbsp;\"subscribe\":\r\n&nbsp;&nbsp;&nbsp;if&nbsp;(string.IsNullOrEmpty(WxXmlModel.EventKey))\r\n&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;XML&nbsp;=&nbsp;ResponseMessage.ReText(WxXmlModel.FromUserName,&nbsp;WxXmlModel.ToUserName,&nbsp;\"\u5173\u6ce8\u6210\u529f\uff01\/:rose\");\r\n\r\n&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;else\r\n&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;XML&nbsp;=&nbsp;ResponseMessage.SubScanQrcode(WxXmlModel.FromUserName,&nbsp;WxXmlModel.ToUserName,&nbsp;WxXmlModel.EventKey);\/\/\u626b\u63cf\u5e26\u53c2\u6570\u4e8c\u7ef4\u7801\u5148\u5173\u6ce8\u540e\u63a8\u9001\u4e8b\u4ef6\r\n&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;case&nbsp;\"scan\":\r\n&nbsp;&nbsp;&nbsp;XML&nbsp;=&nbsp;ResponseMessage.ScanQrcode(WxXmlModel.FromUserName,&nbsp;WxXmlModel.ToUserName,&nbsp;WxXmlModel.EventKey);\/\/\u626b\u63cf\u5e26\u53c2\u6570\u4e8c\u7ef4\u7801\u5df2\u5173\u6ce8&nbsp;\u76f4\u63a5\u63a8\u9001\u4e8b\u4ef6\r\n&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;case&nbsp;\"click\":\/\/\u5904\u7406\u5355\u51fb\u4e8b\u4ef6\r\n&nbsp;&nbsp;&nbsp;if&nbsp;(WxXmlModel.EventKey&nbsp;==&nbsp;\"p1\")\r\n&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u81ea\u5df1\u7684\u4e1a\u52a1\u903b\u8f91\r\n&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;else\r\n&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u81ea\u5df1\u7684\u4e1a\u52a1\u903b\u8f91\r\n&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;case&nbsp;\"unsubscribe\":\/\/\u53d6\u6d88\u5173\u6ce8\r\n&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;default:\/\/\u9ed8\u8ba4\u56de\u590d\r\n&nbsp;&nbsp;break;\r\n&nbsp;}\r\n&nbsp;Response.Write(XML);\/\/\u8f93\u51fa\u7ec4\u7ec7\u7684XML\u4fe1\u606f\r\n\r\n&nbsp;}&lt;\/tools.waentity.oauthuser&gt;<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u8fd9\u5c31\u662f\u83dc\u5355\u7684\u4fe1\u606f\u5904\u7406\uff0c\u4e0d\u660e\u771f\u76f8\u7684\u7fa4\u4f17\u8c8c\u4f3c\u4f1a\u95ee\u90a3\u4e2a\u6240\u8c13\u7684responsemessage\u5230\u5e95\u6709\u51e0\u4e2a\u610f\u601d\u5462\uff0cok\uff0c\u6211\u5df2\u7ecf\u65e0\u529b\u5410\u69fd\u6211\u8fd9\u4e09\u5929\u7814\u7a76\u51fa\u6765\u7684\u5fae\u4fe1\u516c\u5171\u5e73\u53f0\u7684\u4e1c\u897f\u4e86\u3002&nbsp;<\/p>\n<p><\/p>\n<pre>public&nbsp;class&nbsp;ResponseMessage\r\n\r\n{\r\n\r\n&nbsp;#region&nbsp;\u63a5\u6536\u7684\u7c7b\u578b\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u63a5\u6536\u6587\u672c\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;string&nbsp;GetTextTest(string&nbsp;FromUserName,&nbsp;string&nbsp;ToUserName,&nbsp;string&nbsp;Content,&nbsp;string&nbsp;key)\r\n&nbsp;{\r\n&nbsp;CommonMethod.WriteTxt(Content);\/\/\u63a5\u6536\u7684\u6587\u672c\u6d88\u606f\r\n&nbsp;string&nbsp;XML&nbsp;=&nbsp;\"\";\r\n&nbsp;switch&nbsp;(Content)\r\n&nbsp;{\r\n&nbsp;&nbsp;case&nbsp;\"\u5173\u952e\u5b57\":\r\n&nbsp;&nbsp;XML&nbsp;=&nbsp;ReText(FromUserName,&nbsp;ToUserName,&nbsp;\"\u5173\u952e\u8bcd\u56de\u590d\u6d4b\u8bd5\u2014\u2014\u5174\u519c\u4e30\u534e:\"&nbsp;+&nbsp;key);\r\n&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;case&nbsp;\"\u5355\u56fe\u6587\":\r\n&nbsp;&nbsp;XML&nbsp;=&nbsp;ReArticle(FromUserName,&nbsp;ToUserName,&nbsp;\"\u6d4b\u8bd5\u6807\u9898\",&nbsp;\"\u6d4b\u8bd5\u8be6\u60c5\u2014\u2014\u5174\u519c\u4e30\u534e:\"&nbsp;+&nbsp;key,&nbsp;\"http:\/\/www.xnfhtech.com\/templets\/boze\/images\/20120130083143544.gif\",&nbsp;\"http:\/\/www.xnfhtech.com\/\");\r\n&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;default:\r\n&nbsp;&nbsp;XML&nbsp;=&nbsp;ReText(FromUserName,&nbsp;ToUserName,&nbsp;\"\u65e0\u5bf9\u5e94\u5173\u952e\u5b57\u2014\u2014\u5174\u519c\u4e30\u534e:\"&nbsp;+&nbsp;key);\r\n&nbsp;&nbsp;break;\r\n&nbsp;}\r\n&nbsp;return&nbsp;XML;\r\n\r\n&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u672a\u5173\u6ce8\u626b\u63cf\u5e26\u53c2\u6570\u4e8c\u7ef4\u7801\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;string&nbsp;SubScanQrcode(string&nbsp;FromUserName,&nbsp;string&nbsp;ToUserName,&nbsp;string&nbsp;EventKey)\r\n&nbsp;{\r\n&nbsp;return&nbsp;\"\";\r\n&nbsp;}\r\n&nbsp;\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5df2\u5173\u6ce8\u626b\u63cf\u5e26\u53c2\u6570\u4e8c\u7ef4\u7801\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;string&nbsp;ScanQrcode(string&nbsp;FromUserName,&nbsp;string&nbsp;ToUserName,&nbsp;string&nbsp;EventKey)\r\n&nbsp;{\r\n&nbsp;return&nbsp;\"\";\r\n&nbsp;}\r\n&nbsp;#endregion\r\n&nbsp;\r\n\r\n&nbsp;#region&nbsp;\u56de\u590d\u65b9\u5f0f\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u56de\u590d\u6587\u672c\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u53d1\u9001\u7ed9\u8c01(openid)\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u6765\u81ea\u8c01(\u516c\u4f17\u8d26\u53f7ID)\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u56de\u590d\u7c7b\u578b\u6587\u672c\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;\u62fc\u51d1\u7684XML&lt;\/returns&gt;\r\n\r\n&nbsp;public&nbsp;static&nbsp;string&nbsp;ReText(string&nbsp;FromUserName,&nbsp;string&nbsp;ToUserName,&nbsp;string&nbsp;Content)\r\n&nbsp;{\r\n&nbsp;string&nbsp;XML&nbsp;=&nbsp;\"&lt;xml&gt;&lt;tousername&gt;&lt;\/tousername&gt;&lt;fromusername&gt;&lt;\/fromusername&gt;\";\/\/\u53d1\u9001\u7ed9\u8c01(openid)\uff0c\u6765\u81ea\u8c01(\u516c\u4f17\u8d26\u53f7ID)\r\n&nbsp;XML&nbsp;+=&nbsp;\"&lt;createtime&gt;\"&nbsp;+&nbsp;CommonMethod.ConvertDateTimeInt(DateTime.Now)&nbsp;+&nbsp;\"&lt;\/createtime&gt;\";\/\/\u56de\u590d\u65f6\u95f4\u6233\r\n&nbsp;XML&nbsp;+=&nbsp;\"&lt;msgtype&gt;&lt;\/msgtype&gt;\";\/\/\u56de\u590d\u7c7b\u578b\u6587\u672c\r\n&nbsp;XML&nbsp;+=&nbsp;\"&lt;content&gt;&lt;\/content&gt;&lt;funcflag&gt;0&lt;\/funcflag&gt;&lt;\/xml&gt;\";\/\/\u56de\u590d\u5185\u5bb9&nbsp;FuncFlag\u8bbe\u7f6e\u4e3a1\u7684\u65f6\u5019\uff0c\u81ea\u52a8\u661f\u6807\u521a\u624d\u63a5\u6536\u5230\u7684\u6d88\u606f\uff0c\u9002\u5408\u6d3b\u52a8\u7edf\u8ba1\u4f7f\u7528\r\n&nbsp;return&nbsp;XML;\r\n\r\n&nbsp;}\r\n&nbsp;\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u56de\u590d\u5355\u56fe\u6587\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u53d1\u9001\u7ed9\u8c01(openid)\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u6765\u81ea\u8c01(\u516c\u4f17\u8d26\u53f7ID)\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u6807\u9898\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u8be6\u60c5\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u56fe\u7247\u5730\u5740\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u5730\u5740\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;\u62fc\u51d1\u7684XML&lt;\/returns&gt;\r\n\r\n&nbsp;public&nbsp;static&nbsp;string&nbsp;ReArticle(string&nbsp;FromUserName,&nbsp;string&nbsp;ToUserName,&nbsp;string&nbsp;Title,&nbsp;string&nbsp;Description,&nbsp;string&nbsp;PicUrl,&nbsp;string&nbsp;Url)\r\n&nbsp;{\r\n\r\n&nbsp;string&nbsp;XML&nbsp;=&nbsp;\"&lt;xml&gt;&lt;tousername&gt;&lt;\/tousername&gt;&lt;fromusername&gt;&lt;\/fromusername&gt;\";\/\/\u53d1\u9001\u7ed9\u8c01(openid)\uff0c\u6765\u81ea\u8c01(\u516c\u4f17\u8d26\u53f7ID)\r\n&nbsp;XML&nbsp;+=&nbsp;\"&lt;createtime&gt;\"&nbsp;+&nbsp;CommonMethod.ConvertDateTimeInt(DateTime.Now)&nbsp;+&nbsp;\"&lt;\/createtime&gt;\";\/\/\u56de\u590d\u65f6\u95f4\u6233\r\n&nbsp;XML&nbsp;+=&nbsp;\"&lt;msgtype&gt;&lt;\/msgtype&gt;&lt;content&gt;&lt;\/content&gt;&lt;articlecount&gt;1&lt;\/articlecount&gt;&lt;articles&gt;\";\r\n&nbsp;XML&nbsp;+=&nbsp;\"&lt;item&gt;&lt;title&gt;&lt;\/title&gt;\n&lt;description&gt;&lt;\/description&gt;&lt;picurl&gt;&lt;\/picurl&gt;&lt;url&gt;&lt;\/url&gt;&lt;\/item&gt;\";\r\n&nbsp;XML&nbsp;+=&nbsp;\"&lt;\/articles&gt;&lt;funcflag&gt;0&lt;\/funcflag&gt;&lt;\/xml&gt;\";\r\n&nbsp;return&nbsp;XML;\r\n\r\n&nbsp;}\r\n\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u591a\u56fe\u6587\u56de\u590d\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u53d1\u9001\u7ed9\u8c01(openid)\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u6765\u81ea\u8c01(\u516c\u4f17\u8d26\u53f7ID)\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u56fe\u6587\u6570\u91cf\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;&lt;\/returns&gt;\r\n\r\n&nbsp;public&nbsp;static&nbsp;string&nbsp;ReArticle(string&nbsp;FromUserName,&nbsp;string&nbsp;ToUserName,&nbsp;int&nbsp;ArticleCount,&nbsp;System.Data.DataTable&nbsp;dtArticle)\r\n&nbsp;{\r\n\r\n&nbsp;string&nbsp;XML&nbsp;=&nbsp;\"&lt;xml&gt;&lt;tousername&gt;&lt;\/tousername&gt;&lt;fromusername&gt;&lt;\/fromusername&gt;\";\/\/\u53d1\u9001\u7ed9\u8c01(openid)\uff0c\u6765\u81ea\u8c01(\u516c\u4f17\u8d26\u53f7ID)\r\n&nbsp;XML&nbsp;+=&nbsp;\"&lt;createtime&gt;\"&nbsp;+&nbsp;CommonMethod.ConvertDateTimeInt(DateTime.Now)&nbsp;+&nbsp;\"&lt;\/createtime&gt;\";\/\/\u56de\u590d\u65f6\u95f4\u6233\r\n&nbsp;XML&nbsp;+=&nbsp;\"&lt;msgtype&gt;&lt;\/msgtype&gt;&lt;content&gt;&lt;\/content&gt;&lt;articlecount&gt;\"&nbsp;+&nbsp;ArticleCount&nbsp;+&nbsp;\"&lt;\/articlecount&gt;&lt;articles&gt;\";\r\n&nbsp;foreach&nbsp;(System.Data.DataRow&nbsp;Item&nbsp;in&nbsp;dtArticle.Rows)\r\n\r\n&nbsp;{\r\n&nbsp;&nbsp;XML&nbsp;+=&nbsp;\"&lt;item&gt;&lt;title&gt;&lt;\/title&gt;\n&lt;description&gt;&lt;\/description&gt;&lt;picurl&gt;&lt;\/picurl&gt;&lt;url&gt;&lt;\/url&gt;&lt;\/item&gt;\";\r\n&nbsp;}\r\n&nbsp;XML&nbsp;+=&nbsp;\"&lt;\/articles&gt;&lt;funcflag&gt;0&lt;\/funcflag&gt;&lt;\/xml&gt;\";\r\n&nbsp;return&nbsp;XML;\r\n\r\n&nbsp;}\r\n\r\n&nbsp;#endregion\r\n\r\n&nbsp;}<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>OK\uff0c\u52a0\u4e0a\u81ea\u5df1\u7684\u903b\u8f91\u4ee3\u7801\uff0c\u662f\u4e0d\u662f\u5b8c\u7f8e\u7684\u5b9e\u73b0\u4e86\u56de\u590d\uff1f&nbsp;<\/p>\n<p><strong>\u7b2c\u4e03\u5751\uff0c<\/strong>\u6211\u771f\u5fc3\u4e0d\u60f3\u8ba1\u6570\u4e86\uff0c\u4f60\u786e\u5b9a\u8fd9\u4e2a\u56de\u590d\u53ef\u4ee5\u4e48\uff1f\u8bf4\u771f\u7684\uff0c\u5b9d\u5b9d\u4e0d\u786e\u5b9a\uff0c\u56e0\u4e3a\u4f60\u5199\u4e86\u4e4b\u540e\u77e5\u9053\u5728\u54ea\u91cc\u8c03\u7528\u4e48\uff0c\u6211\u7684\u4e56\u4e56\uff0c\u5c3c\u739b\uff0c\u670d\u52a1\u5668\u9a8c\u8bc1\u901a\u8fc7\u5c31\u628a\u56de\u590d\u52a0\u4e0a\u53bb\u662f\u6700\u4fdd\u9669\u7684\u3002\u6211\u5df2\u7ecf\u6ca1\u6709\u8282\u64cd\u4e86\u3002<\/p>\n<p>\u63a5\u4e0b\u6765\u6211\u4eec\u8bf4\u4ec0\u4e48\u5462\uff0c\u6211\u4eec\u5c31\u8bf4\u8bf4\u83b7\u53d6\u7528\u6237\u4fe1\u606f\u8fd9\u4e2a\u4e1c\u897f\u5427\uff0c\u56e0\u4e3a\u6211\u4eec\u8fd9\u4e9b\u4e1c\u897f\u4e00\u822c\u90fd\u662f\u57fa\u4e8eH5\u9875\u9762\u7684\u3002\u6240\u4ee5\uff0c\u5c31\u8981\u7528\u5230\u4e4b\u524d\u6211\u4eec\u914d\u7f6e\u7684<\/p>\n<p style=\"text-align: center\"><img decoding=\"async\" src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/013\/29dc9c41da2f85957598e1eada663394-1.jpg\" style=\"max-width:90%\" class=\"aligncenter\" title=\"php\u5fae\u4fe1\u516c\u4f17\u8d26\u53f7\u5f00\u53d1\u9047\u5230\u7684\u4e94\u4e2a\u5751\u603b\u7ed3\u63d2\u56fe1\" alt=\"php\u5fae\u4fe1\u516c\u4f17\u8d26\u53f7\u5f00\u53d1\u9047\u5230\u7684\u4e94\u4e2a\u5751\u603b\u7ed3\u63d2\u56fe1\" \/><\/p>\n<p>\u8fd9\u4e2a\u4e1c\u4e1c\uff0c\u5176\u5b9e\u8fd9\u4e2a\u76f8\u5bf9\u4e8e\u524d\u9762\u7684\u81f3\u5c11\u5751\u5c11\u4e86\u5f88\u591a\uff0c\u771f\u5fc3\u7684\uff0c\u5b9d\u5b9d\u5c31\u6682\u65f6\u4e0d\u8bf4\u4ed6\u5751\u4e86\u3002\u4e0a\u4e2a\u4ee3\u7801\u5427\u3002&nbsp;<\/p>\n<p><span>\u7acb\u5373\u5b66\u4e60<\/span>\u201c\u201d\uff1b<\/p>\n<p><\/p>\n<pre>\/\/\u5fae\u4fe1\u7f51\u9875\u6388\u67432.0\r\npublic&nbsp;class&nbsp;Oauth2\r\n{\r\n&nbsp;JavaScriptSerializer&nbsp;Jss&nbsp;=&nbsp;new&nbsp;JavaScriptSerializer();\r\n&nbsp;public&nbsp;Oauth2()&nbsp;{&nbsp;}\r\n&nbsp;\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5bf9\u9875\u9762\u662f\u5426\u8981\u7528\u6388\u6743\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u5fae\u4fe1\u5e94\u7528id\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u56de\u8c03\u9875\u9762\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u5e94\u7528\u6388\u6743\u4f5c\u7528\u57dfsnsapi_userinfo\uff08\u4e0d\u5f39\u51fa\u6388\u6743\u9875\u9762\uff0c\u76f4\u63a5\u8df3\u8f6c\uff0c\u53ea\u80fd\u83b7\u53d6\u7528\u6237openid\uff09\uff0csnsapi_userinfo&nbsp;\uff08\u5f39\u51fa\u6388\u6743\u9875\u9762\uff0c\u53ef\u901a\u8fc7openid\u62ff\u5230\u6635\u79f0\u3001\u6027\u522b\u3001\u6240\u5728\u5730\u3002\u5e76\u4e14\uff0c\u5373\u4f7f\u5728\u672a\u5173\u6ce8\u7684\u60c5\u51b5\u4e0b\uff0c\u53ea\u8981\u7528\u6237\u6388\u6743\uff0c\u4e5f\u80fd\u83b7\u53d6\u5176\u4fe1\u606f\uff09\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;\u6388\u6743\u5730\u5740&lt;\/returns&gt;\r\n\r\n&nbsp;public&nbsp;string&nbsp;GetCodeUrl(string&nbsp;Appid,&nbsp;string&nbsp;redirect_uri,&nbsp;string&nbsp;scope)\r\n&nbsp;{\r\n&nbsp;return&nbsp;string.Format(\"https:\/\/open.weixin.qq.com\/connect\/oauth2\/authorize?appid={0}&amp;amp;redirect_uri={1}&amp;amp;response_type=code&amp;amp;scope={2}&amp;amp;state=STATE#wechat_redirect\",&nbsp;Appid,&nbsp;redirect_uri,&nbsp;scope);\r\n&nbsp;}\r\n\r\n&nbsp;\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5bf9\u9875\u9762\u662f\u5426\u8981\u7528\u6388\u6743\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u5fae\u4fe1\u5e94\u7528id\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u56de\u8c03\u9875\u9762\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u5e94\u7528\u6388\u6743\u4f5c\u7528\u57dfsnsapi_userinfo\uff08\u4e0d\u5f39\u51fa\u6388\u6743\u9875\u9762\uff0c\u76f4\u63a5\u8df3\u8f6c\uff0c\u53ea\u80fd\u83b7\u53d6\u7528\u6237openid\uff09\uff0csnsapi_userinfo&nbsp;\uff08\u5f39\u51fa\u6388\u6743\u9875\u9762\uff0c\u53ef\u901a\u8fc7openid\u62ff\u5230\u6635\u79f0\u3001\u6027\u522b\u3001\u6240\u5728\u5730\u3002\u5e76\u4e14\uff0c\u5373\u4f7f\u5728\u672a\u5173\u6ce8\u7684\u60c5\u51b5\u4e0b\uff0c\u53ea\u8981\u7528\u6237\u6388\u6743\uff0c\u4e5f\u80fd\u83b7\u53d6\u5176\u4fe1\u606f\uff09\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;\u6388\u6743\u5730\u5740&lt;\/returns&gt;\r\n&nbsp;public&nbsp;string&nbsp;GetCodeUrl(string&nbsp;Appid,&nbsp;string&nbsp;redirect_uri,&nbsp;string&nbsp;scope,string&nbsp;state)\r\n&nbsp;{\r\n&nbsp;return&nbsp;string.Format(\"https:\/\/open.weixin.qq.com\/connect\/oauth2\/authorize?appid={0}&amp;amp;redirect_uri={1}&amp;amp;response_type=code&amp;amp;scope={2}&amp;amp;state={3}#wechat_redirect\",&nbsp;Appid,&nbsp;redirect_uri,&nbsp;scope,&nbsp;state);\r\n&nbsp;}\r\n\r\n&nbsp;\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u7528code\u6362\u53d6openid&nbsp;\u6b64\u65b9\u6cd5\u4e00\u822c\u662f\u4e0d\u83b7\u53d6\u7528\u6237\u6635\u79f0\u65f6\u5019\u4f7f\u7528\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u56de\u8c03\u9875\u9762\u5e26\u7684code\u53c2\u6570\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;\u5fae\u4fe1\u7528\u6237\u552f\u4e00\u6807\u8bc6openid&lt;\/returns&gt;\r\n&nbsp;public&nbsp;string&nbsp;CodeGetOpenid(string&nbsp;Appid,&nbsp;string&nbsp;Appsecret,&nbsp;string&nbsp;Code)\r\n&nbsp;{\r\n&nbsp;string&nbsp;url&nbsp;=&nbsp;string.Format(\"https:\/\/api.weixin.qq.com\/sns\/oauth2\/access_token?appid={0}&amp;amp;secret={1}&amp;amp;code={2}&amp;amp;grant_type=authorization_code\",&nbsp;Appid,&nbsp;Appsecret,&nbsp;Code);\r\n&nbsp;string&nbsp;ReText&nbsp;=&nbsp;CommonMethod.WebRequestPostOrGet(url,&nbsp;\"\");\/\/post\/get\u65b9\u6cd5\u83b7\u53d6\u4fe1\u606f\r\n&nbsp;Dictionary&lt;string&gt;&nbsp;DicText&nbsp;=&nbsp;(Dictionary&lt;string&gt;)Jss.DeserializeObject(ReText);\r\n&nbsp;if&nbsp;(!DicText.ContainsKey(\"openid\"))\r\n&nbsp;&nbsp;return&nbsp;\"\";\r\n&nbsp;return&nbsp;DicText[\"openid\"].ToString();\r\n&nbsp;}\r\n\r\n&nbsp;\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/\u7528code\u6362\u53d6\u83b7\u53d6\u7528\u6237\u4fe1\u606f\uff08\u5305\u62ec\u975e\u5173\u6ce8\u7528\u6237\u7684\uff09\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u56de\u8c03\u9875\u9762\u5e26\u7684code\u53c2\u6570\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;\u83b7\u53d6\u7528\u6237\u4fe1\u606f\uff08json\u683c\u5f0f\uff09&lt;\/returns&gt;\r\n\r\n&nbsp;public&nbsp;string&nbsp;GetUserInfo(string&nbsp;Appid,&nbsp;string&nbsp;Appsecret,&nbsp;string&nbsp;Code)\r\n&nbsp;{\r\n\r\n&nbsp;string&nbsp;url&nbsp;=&nbsp;string.Format(\"https:\/\/api.weixin.qq.com\/sns\/oauth2\/access_token?appid={0}&amp;amp;secret={1}&amp;amp;code={2}&amp;amp;grant_type=authorization_code\",&nbsp;Appid,&nbsp;Appsecret,&nbsp;Code);\r\n&nbsp;string&nbsp;ReText&nbsp;=&nbsp;CommonMethod.WebRequestPostOrGet(url,&nbsp;\"\");\/\/post\/get\u65b9\u6cd5\u83b7\u53d6\u4fe1\u606f\r\n&nbsp;Dictionary&lt;string&gt;&nbsp;DicText&nbsp;=&nbsp;(Dictionary&lt;string&gt;)Jss.DeserializeObject(ReText);\r\n&nbsp;if&nbsp;(!DicText.ContainsKey(\"openid\"))\r\n\r\n&nbsp;{\r\n\r\n&nbsp;&nbsp;log.Error(\"\u83b7\u53d6openid\u5931\u8d25\uff0c\u9519\u8bef\u7801\uff1a\"&nbsp;+&nbsp;DicText[\"errcode\"].ToString());\r\n\r\n&nbsp;return&nbsp;\"\";\r\n\r\n&nbsp;}\r\n&nbsp;else\r\n\r\n&nbsp;{\r\n\r\n&nbsp;&nbsp;return&nbsp;CommonMethod.WebRequestPostOrGet(\"https:\/\/api.weixin.qq.com\/sns\/userinfo?access_token=\"&nbsp;+&nbsp;DicText[\"access_token\"]&nbsp;+&nbsp;\"&amp;amp;openid=\"&nbsp;+&nbsp;DicText[\"openid\"]&nbsp;+&nbsp;\"&amp;amp;lang=zh_CN\",&nbsp;\"\");\r\n\r\n&nbsp;}\r\n\r\n&nbsp;}\r\n\r\n&nbsp;\r\n\r\n&nbsp;\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u901a\u8fc7openId\u83b7\u53d6\u7528\u6237\u4fe1\u606f\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;&lt;\/returns&gt;\r\n&nbsp;public&nbsp;string&nbsp;GetUserInfo(string&nbsp;accesstoken,&nbsp;string&nbsp;openid)\r\n\r\n&nbsp;{\r\n&nbsp;string&nbsp;url&nbsp;=&nbsp;string.Format(\"https:\/\/api.weixin.qq.com\/cgi-bin\/user\/info?access_token={0}&amp;amp;openid={1}&amp;amp;lang=zh_CN\",&nbsp;accesstoken,&nbsp;openid);\r\n&nbsp;return&nbsp;CommonMethod.WebRequestPostOrGet(url,&nbsp;\"\");\/\/post\/get\u65b9\u6cd5\u83b7\u53d6\u4fe1\u606f\r\n\r\n&nbsp;}\r\n\r\n}&lt;\/string&gt;&lt;\/string&gt;&lt;\/string&gt;&lt;\/string&gt;<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u6211\u4eec\u9700\u8981\u8c03\u7528\u7684\u65f6\u5019\u76f4\u63a5\u7528\u91cc\u9762\u7684\u65b9\u6cd5\uff0c\u83b7\u53d6\u5fae\u4fe1\u7f51\u9875\u6388\u6743\u5373\u53ef\uff0c\u6bd4\u5982\u5bf9\u4e8eA\u63a7\u5236\u5668\u4e0b\u9762\u7684B\u89c6\u56fe\u8981\u83b7\u53d6\u6388\u6743\uff0c\u5e76\u4e14\u8981\u83b7\u53d6\u7528\u6237\u7684\u76f8\u5173\u4fe1\u606f\uff0c\u90a3\u4e48\u6211\u4eec\u76f4\u63a5\u8c03\u7528\u5373\u53ef\uff0c\u5982 GetCodeUrl(appid, &#8220;http:\/\/&#8221; + Url + &#8220;\/A\/B&#8221;, &#8220;snsapi_userinfo&#8221;)<\/p>\n<p>\u5728\u8fd9\u91cc\u6211\u8fd8\u662f\u5410\u69fd\u4e00\u4e0b\u5427\u3002&nbsp;<\/p>\n<p><strong>\u7b2c\u516b\u5751\uff0c<\/strong>\u5fae\u4fe1\u83dc\u5355JSON\u7684url\u62fc\u63a5\uff0c\u91cc\u9762\u7684\u524d\u9762\u4e0d\u662f\u52a0\u4e86js\u9a8c\u8bc1\u4e48\uff0cso\uff0c\u7279\u4e48\u7684\uff0c\u8fd8\u662f\u4e56\u4e56\u7684\u52a0\u4e0ahttp:\/\/\u3002&nbsp;<\/p>\n<p>\u4e0d\u8fc7\u8fd9\u91cc\u6388\u6743\u4e4b\u540e\uff0c\u56e0\u4e3a\u7528\u6237\u7684\u5f88\u591a\u4fe1\u606f\u6211\u4eec\u90fd\u8981\u7528\u5230\uff0c\u8fd9\u5c31\u662fH5\u9875\u9762\u4f20\u503c\u7684\u95ee\u9898\uff0c\u6211\u5728\u9879\u76ee\u91cc\u9762\u7528\u7684\u662fSession\uff0c\u76f4\u63a5\u5199\u4e00\u4e2a\u516c\u7528\u65b9\u6cd5\uff0c\u5982\u679cSession\u6709\u503c\uff0c\u5219\u76f4\u63a5\u53d6\u503c\u7684\u3002\u5bf9\u4e8e\u91cc\u9762\u7684\u4e00\u4e9b\u4e1c\u4e1c\uff0c\u6211\u60f3\u8bf4\u660e\u4e00\u4e0b\uff0c\u5e76\u4e0d\u662f\u6240\u6709\u7684\u4ee3\u7801\u90fd\u8981\u8d34\u51fa\u6765\uff0c\u6211\u8fd9\u8fb9\u7684\u4ee3\u7801\u53ea\u662f\u6211\u4e2a\u4eba\u8ba4\u4e3a\u9700\u8981\u8d34\u51fa\u6765\u7684\u3002\u6240\u4ee5\u91cc\u9762\u7684\u65b9\u6cd5\u53ef\u80fd\u6709\u5927\u5bb6\u770b\u4e0d\u5230\u7684\uff0c\u5982\u679c\u9700\u8981\uff0c\u53ef\u4ee5\u7559\u8a00\u672c\u5b9d\u5b9d\uff0c\u8c22\u8c22\u3002&nbsp;<\/p>\n<p><\/p>\n<pre>public&nbsp;string&nbsp;getSession()\r\n\r\n{\r\n\r\n&nbsp;log.Error(\"GetSession\");\r\n&nbsp;string&nbsp;oauthStr&nbsp;=&nbsp;\"\";\r\n&nbsp;try\r\n\r\n&nbsp;{\r\n&nbsp;if&nbsp;(Session&nbsp;!=&nbsp;null&nbsp;&amp;amp;&amp;amp;&nbsp;(Session[\"oauthStr\"]&nbsp;==&nbsp;null&nbsp;||&nbsp;string.IsNullOrEmpty(Session[\"oauthStr\"].ToString())))\r\n&nbsp;{\r\n&nbsp;&nbsp;if&nbsp;(!string.IsNullOrEmpty(Request.QueryString[\"code\"]))\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;Oauth2&nbsp;oauth&nbsp;=&nbsp;new&nbsp;Oauth2();\r\n&nbsp;&nbsp;string&nbsp;code&nbsp;=&nbsp;Convert.ToString(Request[\"code\"]);\r\n&nbsp;&nbsp;oauthStr&nbsp;=&nbsp;oauth.GetUserInfo(ConfigurationManager.AppSettings[\"AppID\"],\r\n&nbsp;&nbsp;&nbsp;ConfigurationManager.AppSettings[\"AppSecret\"],&nbsp;code);\r\n&nbsp;&nbsp;&nbsp;Session[\"oauthStr\"]&nbsp;=&nbsp;oauthStr;\r\n&nbsp;&nbsp;Tools.WAEntity.OAuthUser&nbsp;oAuthUser&nbsp;=&nbsp;new&nbsp;Tools.WAEntity.OAuthUser();\r\n&nbsp;&nbsp;oAuthUser&nbsp;=&nbsp;Tools.JsonHelper.ParseFromJson&lt;tools.waentity.oauthuser&gt;(oauthStr);\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;return&nbsp;oauthStr;\r\n\r\n&nbsp;}\r\n&nbsp;else\r\n\r\n&nbsp;{\r\n\r\n&nbsp;&nbsp;Tools.WAEntity.OAuthUser&nbsp;oAuthUser&nbsp;=&nbsp;new&nbsp;Tools.WAEntity.OAuthUser();\r\n&nbsp;&nbsp;oAuthUser&nbsp;=&nbsp;Tools.JsonHelper.ParseFromJson&lt;tools.waentity.oauthuser&gt;(Session[\"oauthStr\"].ToString());\r\n&nbsp;&nbsp;return&nbsp;Session[\"oauthStr\"].ToString();\r\n\r\n&nbsp;}\r\n\r\n&nbsp;}\r\n\r\n&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{&nbsp;log.Error(e.ToString());&nbsp;return&nbsp;oauthStr;&nbsp;};\r\n\r\n}&lt;\/tools.waentity.oauthuser&gt;&lt;\/tools.waentity.oauthuser&gt;<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u7136\u540e\u6bcf\u6b21\u9047\u5230\u9700\u8981\u83b7\u53d6\u4fe1\u606f\u7684\u9875\u9762\uff0c\u6211\u4e00\u822c\u90fd\u662f\u8c03\u7528\u8fd9\u4e2a\u5c31\u53ef\u4ee5\u4e86\u3002&nbsp;<\/p>\n<p>\u57fa\u672c\u4e0a\u5269\u4e0b\u7684\u90fd\u662f\u6211\u4eec\u81ea\u5df1\u8981\u5904\u7406\u7684\u4e1a\u52a1\u903b\u8f91\u4e86\uff0c\u7ee7\u7eed\u8bf4\u5751\u5427\u3002&nbsp;<\/p>\n<p><strong>\u7b2c\u4e5d\u5751\uff0c<\/strong>\u5fae\u4fe1\u4e0a\u4f20\u56fe\u7247\uff0c\u5751\u7684\u7edd\u5bf9\u4e0d\u53ea\u662f\u81ea\u5df1\u3002\u5bf9\u4e8e\u8fd9\u4e2a\u5b9d\u5b9d\u771f\u7684\u4fe1\u4e86\uff0c\u4e0d\u7ba1\u4f60\u4fe1\u4e0d\u4fe1\u3002\u7279\u4e48\u7684\u56fe\u7247\u4e0d\u80fdfor\u5faa\u73af\u4e0a\u4f20\u3002\u5f53\u7136\uff0c\u8fd9\u4e2a\u53ea\u9650\u82f9\u679c\u673a\u578b\uff0c\u5927Android\u8fd8\u662f\u6ca1\u6709\u95ee\u9898\u7684\u3002<br \/>\u524d\u9762\u8bf4\u5230\u4e86JS\u5b89\u5168\u9a8c\u8bc1\u7684\u95ee\u9898\uff0c\u8fd9\u91cc\u5c31\u662f\u8c03\u7528\u8fd9\u4e9b\u4e2a\u9a8c\u8bc1\uff0c\u8bf7\u6c42\u4e00\u4e9b\u5e94\u8be5\u7684\u6743\u9650\uff0c\u7136\u540e\u83b7\u53d6\u56fe\u7247\u4fe1\u606f\u7b49\u7b49\u3002&nbsp;<\/p>\n<p style=\"text-align: center\"><img decoding=\"async\" src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/013\/29dc9c41da2f85957598e1eada663394-2.jpg\" style=\"max-width:90%\" class=\"aligncenter\" title=\"php\u5fae\u4fe1\u516c\u4f17\u8d26\u53f7\u5f00\u53d1\u9047\u5230\u7684\u4e94\u4e2a\u5751\u603b\u7ed3\u63d2\u56fe2\" alt=\"php\u5fae\u4fe1\u516c\u4f17\u8d26\u53f7\u5f00\u53d1\u9047\u5230\u7684\u4e94\u4e2a\u5751\u603b\u7ed3\u63d2\u56fe2\" \/><\/p>\n<p>\u653e\u5fc3\u597d\u4e86\uff0c\u5b9d\u5b9d\u73b0\u5728\u90fd\u662f\u4e0a\u56fe\u8bf4\u8bdd\uff0c\u6ca1\u56fe\u8bf4\u4e2a\u5c0f\u5f1f\u5f1f\u5440\u3002\u3002\u3002\u3002\u3002&nbsp;<\/p>\n<p>\u6211\u4eec\u7ee7\u7eed\u56de\u6765\u770b\u4ee3\u7801\u3002&nbsp;<\/p>\n<p>\u5148\u6765\u4e2a\u5904\u7406Json\u7684<\/p>\n<p><\/p>\n<pre>public&nbsp;class&nbsp;JsApi\r\n\r\n{\r\n&nbsp;JavaScriptSerializer&nbsp;Jss&nbsp;=&nbsp;new&nbsp;JavaScriptSerializer();&nbsp;\r\n\r\n&nbsp;public&nbsp;JsApi()&nbsp;{&nbsp;}&nbsp;\r\n&nbsp;const&nbsp;string&nbsp;URL_FORMAT_TICKET&nbsp;=&nbsp;\"https:\/\/api.weixin.qq.com\/cgi-bin\/ticket\/getticket?access_token={0}&amp;amp;type=jsapi\";\r\n\r\n&nbsp;#region&nbsp;\u9a8c\u8bc1JsApi\u6743\u9650\u914d\u7f6e\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u83b7\u53d6JsApi\u6743\u9650\u914d\u7f6e\u7684\u6570\u7ec4\/\u56db\u4e2a\u53c2\u6570\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u5e94\u7528id\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u5bc6\u94a5\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;json\u683c\u5f0f\u7684\u56db\u4e2a\u53c2\u6570&lt;\/returns&gt;\r\n&nbsp;public&nbsp;string&nbsp;GetJsApiInfo(string&nbsp;Appid,&nbsp;string&nbsp;Appsecret)\r\n&nbsp;{\r\n&nbsp;string&nbsp;jsapi_ticket&nbsp;=&nbsp;\"\";\r\n\r\n&nbsp;\/\/ticket&nbsp;\u7f13\u5b587200\u79d2\r\n\r\n&nbsp;if&nbsp;(System.Web.HttpContext.Current.Session[\"jsapi_ticket\"]&nbsp;==&nbsp;null)\r\n\r\n&nbsp;{\r\n&nbsp;&nbsp;string&nbsp;ticketurl&nbsp;=&nbsp;string.Format(URL_FORMAT_TICKET,&nbsp;BasicApi.GetAccessToken(Appid,&nbsp;Appsecret));\/\/\"https:\/\/api.weixin.qq.com\/cgi-bin\/ticket\/getticket?access_token=\"&nbsp;+&nbsp;GetAccessToken(Appid,&nbsp;Appsecret)&nbsp;+&nbsp;\"&amp;amp;type=jsapi\"\r\n&nbsp;&nbsp;jsapi_ticket&nbsp;=&nbsp;CommonMethod.WebRequestPostOrGet(ticketurl,&nbsp;\"\");\/\/BasicApi.GetTokenSession\r\n&nbsp;&nbsp;System.Web.HttpContext.Current.Session[\"jsapi_ticket\"]&nbsp;=&nbsp;jsapi_ticket;\r\n&nbsp;&nbsp;System.Web.HttpContext.Current.Session.Timeout&nbsp;=&nbsp;7200;\r\n&nbsp;&nbsp;BasicApi.WriteTxt(\"jsapi_ticket1:\"&nbsp;+&nbsp;jsapi_ticket);\r\n\r\n\r\n&nbsp;}\r\n&nbsp;else\r\n&nbsp;{\r\n&nbsp;&nbsp;jsapi_ticket&nbsp;=&nbsp;System.Web.HttpContext.Current.Session[\"jsapi_ticket\"].ToString();\r\n&nbsp;&nbsp;BasicApi.WriteTxt(\"jsapi_ticket2:\"&nbsp;+&nbsp;jsapi_ticket);\r\n&nbsp;}&nbsp;\r\n\r\n&nbsp;Dictionary&lt;string&gt;&nbsp;respDic&nbsp;=&nbsp;(Dictionary&lt;string&gt;)Jss.DeserializeObject(jsapi_ticket);\r\n&nbsp;jsapi_ticket&nbsp;=&nbsp;respDic[\"ticket\"].ToString();\/\/\u83b7\u53d6ticket\r\n&nbsp;string&nbsp;timestamp&nbsp;=&nbsp;CommonMethod.ConvertDateTimeInt(DateTime.Now).ToString();\/\/\u751f\u6210\u7b7e\u540d\u7684\u65f6\u95f4\u6233\r\n&nbsp;string&nbsp;nonceStr&nbsp;=&nbsp;CommonMethod.GetRandCode(16);\/\/\u751f\u6210\u7b7e\u540d\u7684\u968f\u673a\u4e32\r\n&nbsp;string&nbsp;url&nbsp;=&nbsp;System.Web.HttpContext.Current.Request.Url.AbsoluteUri.ToString();\/\/\u5f53\u524d\u7684\u5730\u5740\r\n&nbsp;BasicApi.WriteTxt(\"url:\"&nbsp;+&nbsp;url);\r\n&nbsp;string[]&nbsp;ArrayList&nbsp;=&nbsp;{&nbsp;\"jsapi_ticket=\"&nbsp;+&nbsp;jsapi_ticket,&nbsp;\"timestamp=\"&nbsp;+&nbsp;timestamp,&nbsp;\"noncestr=\"&nbsp;+&nbsp;nonceStr,&nbsp;\"url=\"&nbsp;+&nbsp;url&nbsp;};\r\n&nbsp;Array.Sort(ArrayList);\r\n&nbsp;string&nbsp;signature&nbsp;=&nbsp;string.Join(\"&amp;amp;\",&nbsp;ArrayList);\r\n&nbsp;signature&nbsp;=&nbsp;FormsAuthentication.HashPasswordForStoringInConfigFile(signature,&nbsp;\"SHA1\").ToLower();\r\n&nbsp;string&nbsp;r&nbsp;=&nbsp;\"{\"appId\":\"\"&nbsp;+&nbsp;Appid&nbsp;+&nbsp;\"\",\"timestamp\":\"&nbsp;+&nbsp;timestamp&nbsp;+&nbsp;\",\"nonceStr\":\"\"&nbsp;+&nbsp;nonceStr&nbsp;+\r\n&nbsp;&nbsp;&nbsp;\"\",\"signature\":\"\"&nbsp;+&nbsp;signature&nbsp;+\r\n&nbsp;&nbsp;&nbsp;\"\",\"jsApiList\":[\"chooseImage\",\"previewImage\",\"uploadImage\",\"downloadImage\",\"scanQRCode\",\"onMenuShareQQ\"]}\";\r\n&nbsp;BasicApi.WriteTxt(\"r:\"&nbsp;+&nbsp;r.Replace(\"&nbsp;\",&nbsp;\"\"));\r\n&nbsp;return&nbsp;r.Replace(\"&nbsp;\",&nbsp;\"\");\r\n\r\n&nbsp;}\r\n\r\n}&lt;\/string&gt;&lt;\/string&gt;<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u7136\u540e\u770b\u5177\u4f53\u8c03\u7528\u3002<\/p>\n<p>\u540e\u53f0\u4ee3\u7801\u5176\u5b9e\u5f88\u7b80\u5355\u7684\uff0c\u76f4\u63a5\u8f93\u51fa\u914d\u7f6e\u6587\u4ef6\uff0c\u7136\u540e\u524d\u53f0js\u76f4\u63a5\u8c03\u7528\u5373\u53ef\u3002&nbsp;<\/p>\n<p><\/p>\n<pre>JsApi&nbsp;jsApi&nbsp;=&nbsp;new&nbsp;JsApi();\r\nstring&nbsp;config&nbsp;=&nbsp;jsApi.GetJsApiInfo(appId,&nbsp;appSecret);\r\nViewBag.config&nbsp;=&nbsp;config;<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u524d\u53f0\u4ee3\u7801\uff0c\u5176\u5b9e\u4e5f\u4e0d\u96be\uff0c\u8fd9\u4e2a\u6709\u5b98\u65b9\u7684\u4f8b\u5b50\u7684\u3002&nbsp;<\/p>\n<p><\/p>\n<pre>&lt;script&gt;\r\n wx.config(@Html.Raw(ViewBag.config));\/\/\u540e\u53f0\u4f20\u9012\u7684\u5fae\u4fe1\u914d\u7f6e\u6587\u4ef6\r\n wx.ready(function () {\r\n $(\"#avatar\").click(function () {\r\n  wx.chooseImage({\r\n  count: 1, \/\/ \u56fe\u7247\u6570\u91cf \u9ed8\u8ba49\r\n  sizeType: [&#039;compressed&#039;], \/\/ \u53ef\u4ee5\u6307\u5b9a\u662f\u539f\u56fe\u8fd8\u662f\u538b\u7f29\u56fe\uff0c\u9ed8\u8ba4\u4e8c\u8005\u90fd\u6709&#039;original&#039;,\r\n  sourceType: [&#039;album&#039;, &#039;camera&#039;], \/\/ \u53ef\u4ee5\u6307\u5b9a\u6765\u6e90\u662f\u76f8\u518c\u8fd8\u662f\u76f8\u673a\uff0c\u9ed8\u8ba4\u4e8c\u8005\u90fd\u6709\r\n  success: function (res) {\r\n   var localIds = res.localIds; \/\/ \u8fd4\u56de\u9009\u5b9a\u7167\u7247\u7684\u672c\u5730ID\u5217\u8868\uff0clocalId\u53ef\u4ee5\u4f5c\u4e3aimg\u6807\u7b7e\u7684src\u5c5e\u6027\u663e\u793a\u56fe\u7247\r\n   wx.uploadImage({\r\n   localId: &#039;&#039; + localIds,\r\n   isShowProgressTips: 1,\r\n   success: function (res) {\r\n    serverId = res.serverId;\r\n    getWxPhoto(serverId);\r\n\r\n   }\r\n\r\n   });\r\n\r\n  }\r\n\r\n  });\r\n\r\n });\r\n\r\n });\r\n\r\n wx.error(function (res) {\r\n alert(\"\u63a5\u53e3\u9a8c\u8bc1\u5931\u8d25\uff0c\u8be6\u7ec6\u4fe1\u606f\uff1a\n\" + JSON.stringify(res));\r\n });\r\n var types = 1;\r\n function getWxPhoto(mediaId) {\r\n $.ajax({\r\n  async: false,\r\n  type: \"post\",\r\n  url: \"\/ActivityRegistration\/DownloadWxPhoto\",\/\/\u81ea\u5df1\u7684\u5904\u7406\u65b9\u6cd5\r\n  data: { mediaId: mediaId, types: types },\r\n  success: function (data) {\r\n  $(\"#imageico\").val(data.result);\r\n  $(\"#hed_pic\").attr(&#039;src&#039;, \"..\" + data.result);\r\n  $(\"#hed_pic\").attr(&#039;alt&#039;, \"avatarImg\");\r\n\r\n  }\r\n\r\n });\r\n\r\n }\r\n\r\n&lt;\/script&gt;<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>OK\uff0c\u540e\u53f0\u65b9\u6cd5\u5176\u5b9e\u4e5f\u5f88\u7b80\u5355\uff0c\u5c31\u662f\u4e00\u4e2a\u4e8c\u8fdb\u5236\u6587\u4ef6\u5904\u7406\uff0c\u4e0d\u5bf9\uff0c\u7b80\u5355\u4e2a\u86cb\u86cb\uff0c\u7279\u4e48\u7684\uff0c\u56e0\u4e3a\u8def\u5f84\u7684\u95ee\u9898\uff0c\u5751\u4e86\u5b9d\u5b9d\u4e00\u4e2a\u5c0f\u65f6\uff0c\u7279\u4e48\u7684\u3002\u8fd8\u6709\u8fd9\u91cc\u5efa\u8bae\uff0c\u7b49\u5fae\u4fe1\u56fe\u7247\u4e0b\u8f7d\u5b8c\u6210\u4e4b\u540e\u518d\u7ed9\u524d\u53f0\u52a0\u8f7d\u56fe\u7247\uff0c\u4fdd\u8bc1\u6bcf\u4e00\u4e2a\u56fe\u7247\u90fd\u52a0\u8f7d\u5b8c\u6210\uff0c\u4fdd\u8bc1\u540e\u53f0\u7684\u56fe\u7247\u7684\u4e0a\u4f20\u5b8c\u6210\u3002&nbsp;<\/p>\n<p><\/p>\n<pre>\/\/\/&nbsp;&lt;summary&gt;\r\n\/\/\/&nbsp;\u4e0b\u8f7d\u591a\u5a92\u4f53\u6587\u4ef6\r\n\/\/\/&nbsp;&lt;\/summary&gt;\r\n\/\/\/&nbsp;&lt;param&gt;\u516c\u4f17\u53f7\r\n\/\/\/&nbsp;&lt;param&gt;\u5a92\u4f53ID\r\n\/\/\/&nbsp;&lt;param&gt;\u8fd4\u56de\u4e0b\u8f7d\u662f\u5426\u6210\u529f\r\n\/\/\/&nbsp;&lt;param&gt;\u6dfb\u52a0\u7684\u56fe\u7247\u7c7b\u578b\r\n\/\/\/&nbsp;&lt;returns&gt;\u8fd4\u56de\u591a\u5a92\u4f53\u6587\u4ef6\u6570\u636e\uff1b\u5982\u679c\u4e0b\u8f7d\u5931\u8d25\uff0c\u8fd4\u56denull\u3002&lt;\/returns&gt;\r\npublic&nbsp;JsonResult&nbsp;DownloadWxPhoto(string&nbsp;mediaId,&nbsp;int&nbsp;types)\r\n\r\n{\r\n\r\n&nbsp;ErrorMessage&nbsp;errorMessage;\r\n&nbsp;string&nbsp;access_token&nbsp;=&nbsp;BasicApi.GetAccessToken(ConfigurationManager.AppSettings[\"AppID\"],&nbsp;ConfigurationManager.AppSettings[\"AppSecret\"]);\r\n&nbsp;byte[]&nbsp;data&nbsp;=&nbsp;MediaHelper.Download(access_token,&nbsp;mediaId,&nbsp;out&nbsp;errorMessage);\r\n&nbsp;string&nbsp;files&nbsp;=&nbsp;String.Empty,&nbsp;fileName&nbsp;=&nbsp;String.Empty;\r\n&nbsp;files&nbsp;=&nbsp;Server.MapPath(\"~\/Wxinphoto\/\");\r\n&nbsp;if&nbsp;(!Directory.Exists(files))\r\n&nbsp;{\r\n&nbsp;Directory.CreateDirectory(files);\r\n&nbsp;}\r\n&nbsp;fileName&nbsp;=&nbsp;files&nbsp;+&nbsp;DateTime.Now.Ticks&nbsp;+&nbsp;\".jpg\";\r\n&nbsp;if&nbsp;(data&nbsp;!=&nbsp;null)\r\n&nbsp;{\r\n&nbsp;bool&nbsp;flag&nbsp;=&nbsp;writeFile(data,&nbsp;fileName);\r\n&nbsp;if&nbsp;(flag)\r\n&nbsp;{\r\n&nbsp;&nbsp;errorMessage&nbsp;=&nbsp;new&nbsp;ErrorMessage(ErrorMessage.SuccessCode,&nbsp;\"\u4e0b\u8f7d\u591a\u5a92\u4f53\u6587\u4ef6\u6210\u529f\u3002\");\r\n&nbsp;}\r\n&nbsp;else\r\n&nbsp;{\r\n&nbsp;&nbsp;errorMessage&nbsp;=&nbsp;new&nbsp;ErrorMessage(ErrorMessage.ExceptionCode,&nbsp;\"\u4ece\u5fae\u4fe1\u670d\u52a1\u5668\u4e0b\u8f7d\u591a\u5a92\u4f53\u6587\u4ef6\u5931\u8d25\u3002\");\r\n&nbsp;}\r\n\r\n&nbsp;}\r\n&nbsp;else\r\n&nbsp;errorMessage&nbsp;=&nbsp;new&nbsp;ErrorMessage(ErrorMessage.ExceptionCode,&nbsp;\"\u4ece\u5fae\u4fe1\u670d\u52a1\u5668\u4e0b\u8f7d\u591a\u5a92\u4f53\u6587\u4ef6\u5931\u8d25\u3002\");\r\n&nbsp;return&nbsp;Json(new&nbsp;{&nbsp;result&nbsp;=&nbsp;\"\/\"&nbsp;+&nbsp;urlconvertor(fileName),&nbsp;errorMessage&nbsp;=&nbsp;errorMessage&nbsp;});\r\n\r\n}\r\n\r\n\r\n\/\/\u8bfbfilename\u5230byte[]&nbsp;\r\nprivate&nbsp;byte[]&nbsp;ReadFile(string&nbsp;fileName)\r\n{\r\n&nbsp;FileStream&nbsp;pFileStream&nbsp;=&nbsp;null;\r\n&nbsp;byte[]&nbsp;pReadByte&nbsp;=&nbsp;new&nbsp;byte[0];\r\n&nbsp;try\r\n&nbsp;{\r\n&nbsp;pFileStream&nbsp;=&nbsp;new&nbsp;FileStream(fileName,&nbsp;FileMode.Open,&nbsp;FileAccess.Read);\r\n&nbsp;BinaryReader&nbsp;r&nbsp;=&nbsp;new&nbsp;BinaryReader(pFileStream);\r\n&nbsp;r.BaseStream.Seek(0,&nbsp;SeekOrigin.Begin);&nbsp;\/\/\u5c06\u6587\u4ef6\u6307\u9488\u8bbe\u7f6e\u5230\u6587\u4ef6\u5f00\r\n&nbsp;pReadByte&nbsp;=&nbsp;r.ReadBytes((int)r.BaseStream.Length);\r\n&nbsp;return&nbsp;pReadByte;\r\n&nbsp;}\r\n&nbsp;catch\r\n&nbsp;{\r\n&nbsp;return&nbsp;pReadByte;\r\n&nbsp;}\r\n&nbsp;finally\r\n&nbsp;{\r\n&nbsp;if&nbsp;(pFileStream&nbsp;!=&nbsp;null)\r\n&nbsp;&nbsp;pFileStream.Close();\r\n\r\n&nbsp;}\r\n\r\n}\r\n\r\n&nbsp;\r\n\r\n\/\/\u5199byte[]\u5230fileName\r\n\r\nprivate&nbsp;bool&nbsp;writeFile(byte[]&nbsp;pReadByte,&nbsp;string&nbsp;fileName)\r\n\r\n{\r\n\r\n&nbsp;FileStream&nbsp;pFileStream&nbsp;=&nbsp;null;\r\n\r\n&nbsp;try\r\n\r\n&nbsp;{\r\n&nbsp;pFileStream&nbsp;=&nbsp;new&nbsp;FileStream(fileName,&nbsp;FileMode.OpenOrCreate);\r\n&nbsp;pFileStream.Write(pReadByte,&nbsp;0,&nbsp;pReadByte.Length);\r\n&nbsp;}\r\n&nbsp;catch\r\n\r\n&nbsp;{\r\n&nbsp;return&nbsp;false;\r\n&nbsp;}\r\n&nbsp;finally\r\n\r\n&nbsp;{\r\n&nbsp;if&nbsp;(pFileStream&nbsp;!=&nbsp;null)\r\n\r\n&nbsp;&nbsp;pFileStream.Close();\r\n\r\n&nbsp;}\r\n\r\n&nbsp;return&nbsp;true;\r\n\r\n}\r\n\/\/\/&nbsp;&lt;summary&gt;\r\n\/\/\/&nbsp;\u5224\u65ad\u76ee\u6807\u5b57\u8282\u6570\u7ec4\u662f\u5426\u4f4d\u4e8e\u6e90\u5b57\u8282\u6570\u7ec4\u7684\u5f00\u59cb\r\n\/\/\/&nbsp;&lt;\/summary&gt;\r\n\/\/\/&nbsp;&lt;param&gt;\u6e90\u5b57\u8282\u6570\u7ec4\r\n\/\/\/&nbsp;&lt;param&gt;\u76ee\u6807\u5b57\u8282\u6570\u7ec4\r\n\/\/\/&nbsp;&lt;returns&gt;\u8fd4\u56de\u76ee\u6807\u5b57\u8282\u6570\u7ec4\u662f\u5426\u4f4d\u4e8e\u6e90\u5b57\u8282\u6570\u7ec4\u7684\u5f00\u59cb&lt;\/returns&gt;\r\n\r\nprivate&nbsp;bool&nbsp;StartsWithBytes(byte[]&nbsp;source,&nbsp;byte[]&nbsp;target)\r\n\r\n{\r\n\r\n&nbsp;if&nbsp;(source&nbsp;==&nbsp;null&nbsp;&amp;amp;&amp;amp;&nbsp;target&nbsp;==&nbsp;null)\r\n\r\n&nbsp;return&nbsp;true;\r\n\r\n&nbsp;if&nbsp;(source&nbsp;==&nbsp;null&nbsp;&amp;amp;&amp;amp;&nbsp;target&nbsp;!=&nbsp;null&nbsp;||&nbsp;source&nbsp;!=&nbsp;null&nbsp;&amp;amp;&amp;amp;&nbsp;target&nbsp;==&nbsp;null)\r\n&nbsp;return&nbsp;false;\r\n&nbsp;if&nbsp;(source.Length&nbsp;&lt;p&gt;&nbsp;\u662f\u4e0d\u662f\u4ee5\u4e3a\u8fd9\u5c31\u7b97\u5b8c\u4e8b\u4e86\uff0c\u6211\u7684\u4e56\u4e56\uff0c\u5934\u50cf\u4e0a\u4f20\u4e86\uff0c\u5fae\u4fe1\u6444\u50cf\u5934\u4e5f\u7279\u4e48\u8be5\u8c03\u7528\u7684\u8c03\u7528\u4e86\uff0c\u5b9d\u5b9d\u597d\u5e78\u798f\uff0c\u5b9d\u5b9d\u4e5f\u662f\u725b\u4eba\u4e00\u4e2a\u4e86\uff0c\u8bb0\u4f4f\u524d\u9762\u7684\u4e1c\u4e1c\uff0c\u5b9d\u5b9d\u8fd8\u6ca1\u6709\u8bf4\u5751\u5462\u3002&lt;br&gt;\u6765\u91cd\u590d\u6211\u4eec\u7684\u7b2c\u4e5d\u4e2a\u5751\uff0c\u7279\u4e48\u7684\uff0c\u4f60JS\u5199\u4e2afor\u5faa\u73af\u8981\u662f\u80fd\u5faa\u73af\u628a\u56fe\u7247\u4e0a\u4f20\u5230\u540e\u53f0\uff0c\u5b9d\u5b9d\u4e5f\u670d\u6c14\uff0c\u771f\u7684\uff0c\u5b9d\u5b9d\u670d\u6c14\u3002&nbsp;&lt;br&gt;&lt;\/p&gt;&lt;p&gt;\u76f4\u63a5\u8bf4\u5427\uff0c\u6700\u540e\u6211\u81ea\u5df1\u60f3\u4e86\u4e0b\uff0c\u4e5f\u548c\u961f\u53cb\u8ba8\u8bba\u4e86\u4e0b\uff0c\u53ef\u80fd\u662f\u56e0\u4e3a\u5fae\u4fe1\u6709\u4ec0\u4e48\u9a8c\u8bc1\uff0c\u5bfc\u81f4\u4e4b\u540e\u4e00\u5f20\u56fe\u7247\u4e0a\u4f20\u6210\u529f\u4e4b\u540e\uff0c\u624d\u80fd\u8fdb\u884c\u4e00\u5f20\uff0c\u4f46\u662f\u6211\u4eecIphone\u5c31\u662f\u7279\u4e48\u7684\u7279\u4f8b\uff0c\u5927Android\u6ca1\u7528\u95ee\u9898\u7684\uff0c\u5c31\u662fIphone\u6709\u4e86\u95ee\u9898\uff0c\u800c\u4e14\u95ee\u9898\u4e0d\u5c0f\uff0c\u4e0a\u4f20\u56db\u5f20\u56fe\u7247\u5427\uff0c\u8001\u7279\u4e48\u662f\u6700\u540e\u4e00\u5f20\uff0c\u6700\u540e\uff0c\u627e\u5230\u4e86\u4e07\u80fd\u7684\u7f51\u53cb\uff0c\u611f\u8c22\u4f60\uff0c\u4e0d\u8fc7\u5b9d\u5b9d\u5df2\u7ecf\u5fd8\u8bb0\u4e86\u5728\u54ea\u91cc\u627e\u5230\u7684\u4e86\uff0c\u5c34\u5c2c\u4e86\u3002\u3002\u3002\u3002\u3002\u3002\u3002\u3002\u3002\u3002\u3002&nbsp;&lt;\/p&gt;&lt;p class=\"jb51code\"&gt;&lt;br&gt;&lt;\/p&gt;&lt;pre class=\"brush:js;\"&gt;&lt;script&gt;\r\n\r\n var types = 2;\r\n\r\n var urlList=\"\";\r\n\r\n var i = 0;\r\n\r\n function up(resurl) {\r\n\r\n  if (i &lt; resurl.localIds.length) {\r\n\r\n  \/\/ \u4e0a\u4f20\u7167\u7247resu.localIds[i]\r\n  wx.uploadImage({\r\n   localId: &#039;&#039; + resurl.localIds[i],\r\n   isShowProgressTips: 1,\r\n   success: function (res) {\r\n   \/\/ alert(\"res.serverId:\" + res.serverId);\r\n   mediaId = res.serverId;\r\n   $.ajax({\r\n    async: false,\r\n    type: \"post\",\r\n    url: \"\/ActivityRegistration\/DownloadWxPhoto\",\r\n    data: { mediaId: mediaId, types: types },\r\n    success: function (data) {\r\n    $(\"#picPath\").append(&#039;&lt;li&gt;&lt;p class=\"imgbox\"&gt;&lt;img src=\"\/img\/cechanadd.png\" id=\"picture&#039; + i + &#039;\" alt=\"\" \/&gt;&#039;);\r\n\r\n    $(\"#picture\" + i).attr(&#039;src&#039;, data.result);\r\n    $(\"#picPath\").append(&#039;&lt;input value=&#039; + data.result + &#039; type=\"hidden\" id=\"picurl&#039; + i + &#039;\" class=\"picclass\" \/&gt;&#039;);\r\n\r\n    i++;\r\n\r\n    if (i == resurl.localIds.length - 1) {\r\n\r\n     $(\"#picPath\").append(&#039;&lt;li&gt;&lt;p class=\"imgbox\"&gt;&lt;img src=\"\/img\/cechanadd.png\" id=\"picture\" alt=\"\" \/&gt;&#039;);\r\n\r\n    }\r\n\r\n    up(resurl);\r\n    }\r\n   });\r\n\r\n   }\r\n  });\r\n  } else {\r\n\r\n  i = 0;\r\n  }\r\n\r\n }\r\n\r\n \r\n\r\n \r\n \/\/\u4e0a\u4f20\u56fe\u7247\r\n wx.config(@Html.Raw(ViewBag.config));\r\n wx.ready(function () {\r\n  $(\"#picPath\").click(function () {\r\n  wx.chooseImage({\r\n   count: 3, \/\/ \u9ed8\u8ba49\r\n   sizeType: [&#039;compressed&#039;], \/\/ \u53ef\u4ee5\u6307\u5b9a\u662f\u539f\u56fe\u8fd8\u662f\u538b\u7f29\u56fe\uff0c\u9ed8\u8ba4\u4e8c\u8005\u90fd\u6709&#039;original&#039;,\r\n   sourceType: [&#039;album&#039;, &#039;camera&#039;], \/\/ \u53ef\u4ee5\u6307\u5b9a\u6765\u6e90\u662f\u76f8\u518c\u8fd8\u662f\u76f8\u673a\uff0c\u9ed8\u8ba4\u4e8c\u8005\u90fd\u6709\r\n   success: function (resu) {\r\n   var localIds = resu.localIds; \/\/ \u8fd4\u56de\u9009\u5b9a\u7167\u7247\u7684\u672c\u5730ID\u5217\u8868\uff0clocalId\u53ef\u4ee5\u4f5c\u4e3aimg\u6807\u7b7e\u7684src\u5c5e\u6027\u663e\u793a\u56fe\u7247\r\n   if (localIds.indexOf(\"wxlocalresource\") != -1) {    \r\n   localIds = localIds.replace(\"wxlocalresource\", \"wxLocalResource\");\r\n   }\r\n \r\n   @(index += 1)\r\n   if (localIds != &#039;&#039;) {\r\n    $(\"#picPath\").html(\"\");\r\n   var sear = new RegExp(&#039;,&#039;);\r\n    if (sear.test(localIds)) {\r\n    up(resu);\r\n    }\r\n\r\n    else {\r\n    $(\"#picPath\").append(&#039; &lt;li&gt;&lt;p class=\"imgbox\"&gt;&lt;img src=\"\/img\/cechanadd.png\" id=\"picture&#039; + &#039;@index&#039; + &#039;\" alt=\"\" \" \/&gt;&#039;);\r\n    $(\"#picture\" + \"@index\").attr(&#039;src&#039;, localIds);\r\n    \/\/ \u4e0a\u4f20\u7167\u7247\r\n    wx.uploadImage({\r\n     localId: &#039;&#039; + localIds,\r\n\r\n    isShowProgressTips: 1,\r\n     success: function (res) {\r\n     mediaId = res.serverId;\r\n\r\n     $.ajax({\r\n      async: false,\r\n\r\n      type: \"post\",\r\n      url: \"\/ActivityRegistration\/DownloadWxPhoto\",\r\n\r\n      data: { mediaId: mediaId, types: types },\r\n\r\n      success: function (data) {\r\n\r\n      $(\"#picPath\").append(&#039;&lt;input value=&#039; + data.result + &#039; type=\"hidden\" id=\"picurl&#039; + @index + &#039;\" class=\"picclass\" \/&gt;&#039;);\r\n\r\n      $(\"#picPath\").append(&#039;&lt;li&gt;&lt;p class=\"imgbox\"&gt;&lt;img src=\"\/img\/cechanadd.png\" id=\"picture\" alt=\"\" \/&gt;&#039;);\r\n      }\r\n     });\r\n\r\n    }\r\n    });\r\n    }\r\n    \/\/ $(\"#picPath\").append(&#039;&lt;li&gt;&lt;p class=\"imgbox\"&gt;&lt;img src=\"\/img\/cechanadd.png\" id=\"picture\" alt=\"\" \/&gt;&#039;);\r\n\r\n   }\r\n   }\r\n  });\r\n  });\r\n });\r\n wx.error(function (res) {\r\n  alert(\"\u63a5\u53e3\u9a8c\u8bc1\u5931\u8d25\uff0c\u8be6\u7ec6\u4fe1\u606f\uff1a\n\" + JSON.stringify(res));\r\n });\r\n &lt;\/script&gt;<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u8bf7\u8bb0\u4f4f\uff0c\u9012\u5f52\u5c31\u7279\u4e48\u53ef\u4ee5\u4e86\u3002<\/p>\n<p>\u8bf4\u5230\u8fd9\u91cc\uff0c\u5b9d\u5b9d\u5df2\u7ecf\u4e0d\u60f3\u591a\u8bf4\u4ec0\u4e48\u4e86\uff0c\u7279\u4e48\u7684\u4ea7\u54c1\u4f60\u80fd\u4e0d\u80fd\u4e0d\u88c5\u903c\uff0c\u4f60\u7279\u4e48\u89c1\u8fc7\u90a3\u4e2a\u5fae\u4fe1\u80fd\u56de\u590d\u4e00\u4e2a\u4fe1\u606f\u76f4\u63a5\u8df3\u8f6c\u7f51\u9875\u7684\uff0c\u4f60\u548b\u4e0d\u53bb\u5c4e\u5462\uff0c\u8054\u60f3\u5230\u524d\u51e0\u5929\u5927\u963f\u91cc\u7684\u6708\u997c\u65f6\u95f4\uff0c\u7a81\u7136\u611f\u89c9\u6211\u4eec\u7a0b\u5e8f\u5458\u633a\u60b2\u5267\u7684\uff0c\u6210\u529f\u7684\u90fd\u662f\u7279\u4e48\u7684\u4ea7\u54c1\uff0c\u7136\u540e\u51fa\u95ee\u9898\u7684\u90fd\u662f\u6211\u4eec\u7a0b\u5e8f\u5458\u7684\u9505\uff1f\u8bd5\u95ee\u4e00\u4e0b\uff0c\u8fd9\u4e2a\u9505\u771f\u5fc3\u6211\u4eec\u7a0b\u5e8f\u5458\u8be5\u80cc\u4e48\u3002&nbsp;<\/p>\n<p>\u7b97\u4e86\uff0c\u8fd8\u662f\u4e0d\u5410\u69fd\u4e86\uff0c\u5df2\u7ecf\u65e0\u529b\u4e86\u3002\u3002\u3002\u3002\u5b9d\u5b9d92\u5e74\u964d\u4e34\uff0c\u73b0\u5728\u786e\u5b9e82\u5e74\u7684\u76ae\u80a4\u5440\uff0c\u5509\uff0c\u5b9d\u5b9d\u7d2f\u4e86\uff0c\u771f\u7684\u3002&nbsp;<\/p>\n<p>\u987a\u4fbf\u7ed9\u70b9H5\u9875\u9762\u7684\u5efa\u8bae\u5427\u3002\u6bd4\u5982\u5f53\u70b9\u51fb\u8fd4\u56de\u952e\u7684\u65f6\u5019\uff0c\u6211\u4eec\u9700\u8981\u5237\u65b0\u9875\u9762\u7684\u65f6\u5019\uff0c\u5c31\u662f\u6240\u8c13\u7684\u5224\u65ad\u9875\u9762\u8981\u4e0d\u8981\u5237\u65b0\uff0c\u8fd9\u91cc\u6709\u5f88\u591a\u79cd\u65b9\u6cd5\uff0c\u4f46\u662f\u5fae\u4fe1\u91cc\u9762\u5b9d\u5b9d\u8fd8\u662f\u89c9\u5f97\u8fd9\u4e48\u5e72\u9760\u8c31\u3002&nbsp;<\/p>\n<p><\/p>\n<pre>&lt;script&gt;\r\n if (window.name != \"hasLoad\") {\r\n location.reload();\r\n window.name = \"hasLoad\";\r\n } else {\r\n window.name = \"\";\r\n }\r\n&lt;\/script&gt;<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u8fd8\u6709\uff0c\u90a3\u4e2a\u5fae\u4fe1\u6267\u884c\u5b8c\u6210\u4e4b\u540e\u60f3\u76f4\u63a5\u9000\u51fa\u5f53\u524d\u754c\u9762\u8fdb\u5165\u5fae\u4fe1\u516c\u4f17\u53f7\u754c\u9762\u7684\uff0c\u76f4\u63a5\u8c03\u7528\u5fae\u4fe1\u7684\u4e00\u4e2a\u5185\u7f6e\u7684\u65b9\u6cd5\u5373\u53ef\u3002\u8bb0\u5f97\u5199\u5230&lt;script&gt;&lt;\/script&gt;\u91cc\u9762\u3002&nbsp;<\/p>\n<p><span style=\"color: #800000\">WeixinJSBridge.call(&#8216;closeWindow&#8217;); \/\/\u8fd9\u662f\u5fae\u4fe1\u5173\u95ed\u5f53\u524d\u7f51\u9875<\/span><\/p>\n<p>\u8fd9\u4e48\u81ea\u4fe1\u7684\u4ee5\u4e3a\u81ea\u5df1\u641e\u5b9a\u4e86\u6240\u6709\uff0c\u4f60\u8dd1\u5440\uff0c\u4f60\u8981\u8dd1\u8d77\u6765\uff0c\u55ef\u54fc\uff0c\u522b\u4e0d\u670d\u6c14\u3002&nbsp;<\/p>\n<p>\u5fae\u4fe1\u516c\u4f17\u8d26\u53f7\u6307<strong>\u7b2c\u5341\u5751<\/strong>\uff0c\u6211\u81ea\u5df1\u52a0\u7684\uff0c\u54c8\u54c8\uff0c\u5c31\u662f\u524d\u9762\u7684JS\u9a8c\u8bc1\u7684\u65f6\u5019\uff0c\u4f60\u4e0d\u8981\u5934\u6587\u4ef6\uff0c\u600e\u4e48\u641e\u5b9a\u8fd9\u4e9b\u4e8b\u60c5\uff0c\u54c8\u54c8\u3002\u662f\u4e0d\u662f\u5b9d\u5b9d\u8d62\u4e86\u3002Oh&nbsp; perfect\uff0cI like it\u3002<\/p>\n<p><span style=\"color: #800000\"><\/span><\/p>\n<p>\u4ee5\u4e0a\u5c31\u662fphp\u5fae\u4fe1\u516c\u4f17\u8d26\u53f7\u5f00\u53d1\u9047\u5230\u7684\u4e94\u4e2a\u5751\u603b\u7ed3\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\u4e3a\u5927\u5bb6\u8be6\u7ec6\u4ecb\u7ecd\u4e86php\u5fae\u4fe1\u516c\u4f17\u8d26\u53f7\u5f00\u53d1\u4e4b\u4e94\u4e2a\u5751,\u5177\u6709\u4e00\u5b9a\u7684\u53c2\u8003\u4ef7\u503c\uff0c\u611f\u5174\u8da3\u7684\u5c0f\u4f19\u4f34\u4eec\u53ef\u4ee5\u53c2\u8003\u4e00\u4e0b \u83dc\u5355\u56de\u590d\u662f\u9700\u8981\u5904\u7406XML\u6587\u4ef6\u7684\uff0c\u6211\u4eec\u6839\u636e\u5fae\u4fe1\u8fd4\u56de\u7684XML\u6587\u4ef6\uff0c\u53ef\u4ee5\u5f97\u5230\u6bcf\u4e2a\u5fae\u4fe1\u7528\u6237\u76f8\u5bf9\u4e8e\u5fae\u4fe1\u516c\u4f17\u53f7\u7684\u552f\u4e00\u6807\u8bc6\u3002\u5fae\u4fe1\u516c\u4f17\u5e73\u53f0\u7684\u673a\u5236\u7b80\u5355\u7684\u5c06\u5c31\u662f\u6211\u4eec\u81ea\u5df1\u8f93\u51fa\u56fa\u5b9a\u683c\u5f0f\u7684xml\u6587\u4ef6\uff0c\u7136\u540e\u5fae\u4fe1APP\u8d1f\u8d23\u89e3\u6790\uff0c\u5f97\u5230\u6211\u4eec\u60f3\u8981\u7684\u4fe1\u606f\uff0c\u7136\u540e\u5bf9\u4fe1\u606f\u7edf\u4e00\u5904\u7406\u3002&nbsp; \u7b2c\u516d\u5751\uff0c\u5982\u679c\u4f60\u770b\u5fae\u4fe1\u6587\u6863\uff0c\u90a3\u4e48\uff0c\u7edd\u5bf9\u5751\u6b7b\u4f60\uff0c\u4e0a\u56fe\u3002\u8fd9\u91cc\u7684ToUserName\u548cFromUserName\u4e00\u5b9a\u7279\u4e48\u7684\u8981\u5206\u6e05\u695a\u4e86\uff0c\u8bb0\u4f4f\uff0c\u5343\u4e07\u4e0d\u8981\u5199\u53cd\u4e86\uff0c\u7528\u6237\u5bf9\u4e8e\u5fae\u4fe1\u800c\u8a00\u662fA\u2192B\uff0c\u90a3\u4e48\u5fae\u4fe1\u5bf9\u4e8e\u7528\u6237\u5c31\u662f\u53cd\u7740\u6765\u7684\uff0c\u8c8c\u4f3c\u73b0\u5728\u5e94\u8be5\u8bf4\u6e05\u695a\u4e86\u3002 \/\/\/&nbsp;&lt;summary&gt; &nbsp;\/\/\/&nbsp;\u63a5\u6536\u5fae\u4fe1\u53d1\u9001\u7684XML\u6d88\u606f\u5e76\u4e14\u89e3\u6790 &nbsp;\/\/\/&nbsp;&lt;\/summary&gt; &nbsp;private&nbsp;void&nbsp;ReceiveXml() &nbsp;{ &nbsp;try &nbsp;{ &nbsp;&nbsp;Stream&nbsp;requestStream&nbsp;=&nbsp;System.Web.HttpContext.Current.Request.InputStream; &nbsp;&nbsp;byte[]&nbsp;requestByte&nbsp;=&nbsp;new&nbsp;byte[requestStream.Length]; &nbsp;&nbsp;requestStream.Read(requestByte,&nbsp;0,&nbsp;(int)requestStream.Length); &nbsp;&nbsp;string&nbsp;requestStr&nbsp;=&nbsp;Encoding.UTF8.GetString(requestByte); &nbsp;&nbsp;if&nbsp;(!string.IsNullOrEmpty(requestStr)) &nbsp;&nbsp;{&nbsp; &nbsp;&nbsp;\/\/\u5c01\u88c5\u8bf7\u6c42\u7c7b &nbsp;&nbsp;XmlDocument&nbsp;requestDocXml&nbsp;=&nbsp;new&nbsp;XmlDocument(); &nbsp;&nbsp;requestDocXml.LoadXml(requestStr); &nbsp;&nbsp;XmlElement&nbsp;rootElement&nbsp;=&nbsp;requestDocXml.DocumentElement; &nbsp;&nbsp;WxXmlModel&nbsp;WxXmlModel&nbsp;=&nbsp;new&nbsp;WxXmlModel(); &nbsp;&nbsp;if&nbsp;(rootElement&nbsp;!=&nbsp;null) &nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;WxXmlModel.ToUserName&nbsp;=&nbsp;rootElement.SelectSingleNode(&#8220;ToUserName&#8221;)&nbsp;==&nbsp;null&nbsp;?&nbsp;&#8220;&#8221;&nbsp;:&nbsp;rootElement.SelectSingleNode(&#8220;ToUserName&#8221;).InnerText; &nbsp;&nbsp;&nbsp;WxXmlModel.FromUserName&nbsp;=&nbsp;rootElement.SelectSingleNode(&#8220;FromUserName&#8221;)&nbsp;==&nbsp;null&nbsp;?&nbsp;&#8220;&#8221;&nbsp;:&nbsp;rootElement.SelectSingleNode(&#8220;FromUserName&#8221;).InnerText; &nbsp;&nbsp;&nbsp;WxXmlModel.CreateTime&nbsp;=&nbsp;rootElement.SelectSingleNode(&#8220;CreateTime&#8221;)&nbsp;==&nbsp;null&nbsp;?&nbsp;&#8220;&#8221;&nbsp;:&nbsp;rootElement.SelectSingleNode(&#8220;CreateTime&#8221;).InnerText; &nbsp;&nbsp;&nbsp;WxXmlModel.MsgType&nbsp;=&nbsp;rootElement.SelectSingleNode(&#8220;MsgType&#8221;)&nbsp;==&nbsp;null&nbsp;?&nbsp;&#8220;&#8221;&nbsp;:&nbsp;rootElement.SelectSingleNode(&#8220;MsgType&#8221;).InnerText; &nbsp;&nbsp;&nbsp;switch&nbsp;(WxXmlModel.MsgType) &nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;case&nbsp;&#8220;text&#8221;:\/\/\u6587\u672c &nbsp;&nbsp;&nbsp;&nbsp;WxXmlModel.Content&nbsp;=&nbsp;rootElement.SelectSingleNode(&#8220;Content&#8221;)&nbsp;==&nbsp;null&nbsp;?&nbsp;&#8220;&#8221;&nbsp;:&nbsp;rootElement.SelectSingleNode(&#8220;Content&#8221;).InnerText; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;case&nbsp;&#8220;image&#8221;:\/\/\u56fe\u7247 &nbsp;&nbsp;&nbsp;&nbsp;WxXmlModel.PicUrl&nbsp;=&nbsp;rootElement.SelectSingleNode(&#8220;PicUrl&#8221;)&nbsp;==&nbsp;null&nbsp;?&nbsp;&#8220;&#8221;&nbsp;:&nbsp;rootElement.SelectSingleNode(&#8220;PicUrl&#8221;).InnerText; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;case&nbsp;&#8220;event&#8221;:\/\/\u4e8b\u4ef6 &nbsp;&nbsp;&nbsp;&nbsp;WxXmlModel.Event&nbsp;=&nbsp;rootElement.SelectSingleNode(&#8220;Event&#8221;)&nbsp;==&nbsp;null&nbsp;?&nbsp;&#8220;&#8221;&nbsp;:&nbsp;rootElement.SelectSingleNode(&#8220;Event&#8221;).InnerText; &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(WxXmlModel.Event&nbsp;!=&nbsp;&#8220;TEMPLATESENDJOBFINISH&#8221;)\/\/\u5173\u6ce8\u7c7b\u578b &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;WxXmlModel.EventKey&nbsp;=&nbsp;rootElement.SelectSingleNode(&#8220;EventKey&#8221;)&nbsp;==&nbsp;null&nbsp;?&nbsp;&#8220;&#8221;&nbsp;:&nbsp;rootElement.SelectSingleNode(&#8220;EventKey&#8221;).InnerText; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;default: &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;} &nbsp;&nbsp;ResponseXML(WxXmlModel);\/\/\u56de\u590d\u6d88\u606f &nbsp;&nbsp;} &nbsp; &nbsp;} &nbsp;catch&nbsp;(Exception&nbsp;ee) &nbsp;{ &nbsp;&nbsp;\/\/\u8bb0\u5f55\u9519\u8bef\u65e5\u5fd7 &nbsp;} &nbsp;} [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19],"tags":[],"class_list":["post-29231","post","type-post","status-publish","format-standard","hentry","category-19"],"_links":{"self":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/29231","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=29231"}],"version-history":[{"count":0,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/29231\/revisions"}],"wp:attachment":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/media?parent=29231"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/categories?post=29231"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/tags?post=29231"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}