{"id":29829,"date":"2024-11-25T10:59:34","date_gmt":"2024-11-25T02:59:34","guid":{"rendered":"https:\/\/fwq.ai\/blog\/29829\/"},"modified":"2024-11-25T10:59:34","modified_gmt":"2024-11-25T02:59:34","slug":"%e7%94%a8asp-net%e5%ae%9e%e7%8e%b0%e5%be%ae%e4%bf%a1js-sdk%e6%94%af%e4%bb%98%e7%9a%84%e5%ae%9e%e4%be%8b%e8%af%a6%e8%a7%a3","status":"publish","type":"post","link":"https:\/\/fwq.ai\/blog\/29829\/","title":{"rendered":"\u7528ASP.NET\u5b9e\u73b0\u5fae\u4fe1JS-SDK\u652f\u4ed8\u7684\u5b9e\u4f8b\u8be6\u89e3"},"content":{"rendered":"<p>\u6a21\u578b\u5c42\u5b9e\u4f53\u7c7b:<\/p>\n<pre>&nbsp;public&nbsp;class&nbsp;JsEntities\r\n&nbsp;{\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u516c\u4f17\u53f7id\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;appId&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u65f6\u95f4\u6233\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;timeStamp&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u968f\u673a\u5b57\u7b26\u4e32\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;nonceStr&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u8ba2\u5355\u8be6\u60c5\u6269\u5c55\u5b57\u7b26\u4e32\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;package&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u7b7e\u540d\u7c7b\u578b\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;signType&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u7b7e\u540d\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;paySign&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n\r\n&nbsp;}<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<pre>&nbsp;public&nbsp;class&nbsp;UnifyEntities\r\n&nbsp;{\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u516c\u4f17\u8d26\u53f7ID\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;appid&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5fae\u4fe1\u652f\u4ed8\u5206\u914d\u7684\u5546\u6237\u53f7\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;mch_id&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5fae\u4fe1\u652f\u4ed8\u5206\u914d\u7684\u7ec8\u7aef\u8bbe\u5907\u53f7\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;device_info&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u968f\u673a\u5b57\u7b26\u4e32\uff0c\u4e0d\u957f\u4e8e32\u4f4d\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;nonce_str&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u7b7e\u540d\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;sign&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5546\u54c1\u63cf\u8ff0\u6700\u5927\u957f\u5ea6127\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;body&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u9644\u52a0\u6570\u636e\uff0c\u539f\u6837\u8fd4\u56de\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;attach&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5546\u6237\u7cfb\u7edf\u5185\u90e8\u7684\u8ba2\u5355\u53f7,32&nbsp;\u4e2a\u5b57\u7b26\u5185\u3001\u53ef\u5305\u542b\u5b57\u6bcd,\u786e\u4fdd\u5728\u5546\u6237\u7cfb\u7edf\u552f\u4e00,\u8be6\u7ec6\u8bf4\u660e\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;out_trade_no&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u8ba2\u5355\u603b\u91d1\u989d\uff0c\u5355\u4f4d\u4e3a\u5206\uff0c\u4e0d\u80fd\u5e26\u5c0f\u6570\u70b9\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;total_fee&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u7ec8\u7aefIP\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;spbill_create_ip&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u4ea4\u6613\u8d77\u59cb\u65f6\u95f4\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;time_start&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u4ea4\u6613\u7ed3\u675f\u65f6\u95f4\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;time_expire&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u63a5\u6536\u5fae\u4fe1\u652f\u4ed8\u6210\u529f\u901a\u77e5\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;notify_url&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;JSAPI\u3001NATIVE\u3001APP\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;trade_type&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u7528\u6237\u5728\u5546\u6237appid\u4e0b\u7684\u552f\u4e00\u6807\u8bc6\uff0ctrade_type\u4e3aJSAPI&nbsp;\u65f6\uff0c\u6b64\u53c2\u6570\u5fc5\u4f20\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;openid&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u53ea\u5728&nbsp;trade_type&nbsp;\u4e3a&nbsp;NATIVE&nbsp;\u65f6\u9700\u8981\u586b\u5199\u3002\u6b64id\u4e3a\u4e8c\u7ef4\u7801\u4e2d\u5305\u542b\u7684\u5546\u54c1ID\uff0c\u5546\u6237\u81ea\u884c\u7ef4\u62a4\u3002\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;product_id&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;}<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<pre>&nbsp;public&nbsp;class&nbsp;UnifyReceive\r\n&nbsp;{\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;SUCCESS\/FAIL\u6b64\u5b57\u6bb5\u662f\u901a\u4fe1\u6807\u8bc6\uff0c\u975e\u4ea4\u6613\u6807\u8bc6\uff0c\u4ea4\u6613\u662f\u5426\u6210\u529f\u9700\u8981\u67e5\u770bresult_code\u6765\u5224\u65ad\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;return_code&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u8fd4\u56de\u4fe1\u606f\uff0c\u5982\u975e\u7a7a\uff0c\u4e3a\u9519\u8bef\u539f\u56e0\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;return_msg&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5fae\u4fe1\u5206\u914d\u7684\u516c\u4f17\u8d26\u53f7ID\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;appid&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5fae\u4fe1\u652f\u4ed8\u5206\u914d\u7684\u5546\u6237\u53f7\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;mch_id&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u968f\u673a\u5b57\u7b26\u4e32\uff0c\u4e0d\u957f\u4e8e32\u4f4d\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;nonce_str&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u7b7e\u540d\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;sign&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u4e1a\u52a1\u7ed3\u679c\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;result_code&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u9884\u652f\u4ed8ID\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;prepay_id&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u4ea4\u6613\u7c7b\u578b\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;trade_type&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u4e8c\u7ef4\u7801\u94fe\u63a5\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;string&nbsp;code_url&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}\r\n&nbsp;public&nbsp;UnifyReceive(string&nbsp;xml)\r\n&nbsp;{\r\n&nbsp;&nbsp;XElement&nbsp;doc&nbsp;=&nbsp;XElement.Parse(xml);\r\n&nbsp;&nbsp;return_code&nbsp;=&nbsp;doc.Element(\"return_code\").Value;\r\n&nbsp;&nbsp;return_msg&nbsp;=&nbsp;doc.Element(\"return_msg\").Value;\r\n&nbsp;&nbsp;if&nbsp;(return_code&nbsp;==&nbsp;\"SUCCESS\")\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;appid&nbsp;=&nbsp;doc.Element(\"appid\").Value;\r\n&nbsp;&nbsp;mch_id&nbsp;=&nbsp;doc.Element(\"mch_id\").Value;\r\n&nbsp;&nbsp;nonce_str&nbsp;=&nbsp;doc.Element(\"nonce_str\").Value;\r\n&nbsp;&nbsp;sign&nbsp;=&nbsp;doc.Element(\"sign\").Value;\r\n&nbsp;&nbsp;result_code&nbsp;=&nbsp;doc.Element(\"result_code\").Value;\r\n&nbsp;&nbsp;if&nbsp;(result_code&nbsp;==&nbsp;\"SUCCESS\")\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;trade_type&nbsp;=&nbsp;doc.Element(\"trade_type\").Value;\r\n&nbsp;&nbsp;&nbsp;prepay_id&nbsp;=&nbsp;doc.Element(\"prepay_id\").Value;\r\n&nbsp;&nbsp;&nbsp;if&nbsp;(trade_type&nbsp;==&nbsp;\"NATIVE\")\r\n&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;code_url&nbsp;=&nbsp;doc.Element(\"code_url\").Value;\r\n&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;trade_type&nbsp;=&nbsp;doc.Element(\"trade_type\").Value;\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;}\r\n&nbsp;}\r\n&nbsp;}<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>TestJs.aspx\u5185\u5bb9:<\/p>\n<pre>\r\n\r\n\r\n\r\n&nbsp;&lt;meta&gt;\r\n&nbsp;&lt;title&gt;&lt;\/title&gt;\r\n&nbsp;&lt;script&gt;&lt;\/script&gt;\r\n&nbsp;&lt;script&gt;&lt;\/script&gt;\r\n&nbsp;&lt;script&gt;\r\n $(function () {\r\n  $(\"#submit\").click(function () {\r\n  var OID =\"&lt;%=openid%&gt;\";\r\n  alert(OID);\r\n  $.get(\"WxPay\/WxPay.ashx?action=jspayparam\", {\r\n   body: $(\"#body\").val(),\r\n   total_fee: $(\"#price\").val(),\r\n   out_trade_no: $(\"#order\").val(),\r\n   trade_type: \"JSAPI\",\r\n   msgid: \"&lt;%=openid%&gt;\"\r\n\r\n  }, function (data) {\r\n   WxPay.Pay(data.appId, data.timeStamp, data.nonceStr, data.package, data.signType, data.paySign, function () {\r\n   alert(\"\u652f\u4ed8\u6210\u529f\");\r\n   });\r\n  }, \"json\");\r\n\r\n  });\r\n })\r\n &lt;\/script&gt;\r\n&nbsp;<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 &nbsp; <\/p>\n<p> &nbsp;&nbsp;\u5546\u54c1\u63cf\u8ff0\uff1a &nbsp;&nbsp;\u5546\u54c1\u4ef7\u683c\uff1a &nbsp;&nbsp;\u8ba2\u5355\u53f7\uff1a &nbsp;&nbsp; &nbsp;<\/p>\n<p> &nbsp; <\/p>\n<p>JsPay.aspx.cs\u4ee3\u7801:<\/p>\n<pre>&nbsp;public&nbsp;partial&nbsp;class&nbsp;JsPay&nbsp;:&nbsp;System.Web.UI.Page\r\n&nbsp;{\r\n&nbsp;public&nbsp;string&nbsp;openid&nbsp;=&nbsp;\"\";\r\n&nbsp;protected&nbsp;void&nbsp;Page_Load(object&nbsp;sender,&nbsp;EventArgs&nbsp;e)\r\n&nbsp;{\r\n&nbsp;&nbsp;string&nbsp;code&nbsp;=&nbsp;Request[\"code\"];\r\n&nbsp;&nbsp;if&nbsp;(string.IsNullOrEmpty(code))\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;\/\/\u5982\u679ccode\u6ca1\u83b7\u53d6\u6210\u529f\uff0c\u91cd\u65b0\u62c9\u53d6\u4e00\u904d\r\n&nbsp;&nbsp;GetAuthUrl(\"wxxxxxxxxxxxxxxxxxxxxxxx\",&nbsp;\"http:\/\/www.china101.net\/JsPay.aspx\");\r\n&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;openid&nbsp;=&nbsp;GetOpenID(\"wxxxxxxxxxxxxxxxxxxxxxxx\",&nbsp;\"dsdssdsdsdsdsdsdsdsdsd\",&nbsp;JKRequest.GetQueryString(\"code\"),&nbsp;()&nbsp;=&amp;gt;&nbsp;{&nbsp;});\r\n&nbsp;}\r\n&nbsp;public&nbsp;string&nbsp;GetOpenID(string&nbsp;appid,&nbsp;string&nbsp;secret,&nbsp;string&nbsp;code,&nbsp;Action&nbsp;CallBack)\r\n&nbsp;{\r\n&nbsp;&nbsp;try\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;string&nbsp;retdata&nbsp;=&nbsp;Utils.HttpGet(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;secret,&nbsp;code));\r\n&nbsp;&nbsp;.LogHelper.WriteFile(retdata);\r\n&nbsp;&nbsp;JObject&nbsp;jobj&nbsp;=&nbsp;(JObject)JsonConvert.DeserializeObject(retdata);\r\n&nbsp;&nbsp;string&nbsp;openid&nbsp;=&nbsp;jobj.Value&lt;string&gt;(\"openid\");\r\n&nbsp;&nbsp;return&nbsp;openid;\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;catch&nbsp;(Exception)\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;CallBack();\r\n&nbsp;&nbsp;return&nbsp;\"\";\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;\/\/&nbsp;return&nbsp;GetUserInfo(access_token,&nbsp;openid);\r\n&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u83b7\u53d6\u9274\u6743\u5730\u5740\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;void&nbsp;GetAuthUrl(string&nbsp;appid,&nbsp;string&nbsp;redirect_url)\r\n&nbsp;{\r\n&nbsp;&nbsp;Response.Redirect(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=snsapi_base&amp;amp;state=123#wechat_redirect\",&nbsp;appid,&nbsp;Utils.UrlEncode(redirect_url)));\r\n&nbsp;}\r\n&nbsp;}&lt;\/string&gt;<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>WxPay.ashx\u4ee3\u7801:<\/p>\n<pre>\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;WxPay&nbsp;\u7684\u6458\u8981\u8bf4\u660e\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;class&nbsp;WxPay&nbsp;:&nbsp;IHttpHandler\r\n&nbsp;{\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u516c\u4f17\u8d26\u53f7ID\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;private&nbsp;string&nbsp;appid&nbsp;=&nbsp;\"wxxxxxxxxxxxxxxxx\";\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5546\u6237\u53f7\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;private&nbsp;string&nbsp;mch_id&nbsp;=&nbsp;\"12333333333\";\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u901a\u77e5url\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;private&nbsp;string&nbsp;notify_url&nbsp;=&nbsp;\"http:\/\/www.china101.net\/Notify2.aspx\";\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5bc6\u94a5\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;private&nbsp;string&nbsp;key&nbsp;=&nbsp;\"chinapagexxxxxxxxxxxxx\";\r\n&nbsp;public&nbsp;void&nbsp;ProcessRequest(HttpContext&nbsp;context)\r\n&nbsp;{\r\n&nbsp;&nbsp;string&nbsp;action&nbsp;=&nbsp;JKRequest.GetQueryString(\"action\");\r\n&nbsp;&nbsp;switch&nbsp;(action)\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;case&nbsp;\"unifysign\":\r\n&nbsp;&nbsp;&nbsp;GetUnifySign(context);&nbsp;break;\r\n&nbsp;&nbsp;case&nbsp;\"jspayparam\":&nbsp;GetJsPayParam(context);&nbsp;break;\r\n&nbsp;&nbsp;case&nbsp;\"nativedynamic\":&nbsp;GetPayQr(context);&nbsp;break;\r\n\r\n&nbsp;&nbsp;}\r\n&nbsp;}\r\n&nbsp;#region&nbsp;\u83b7\u53d6js\u652f\u4ed8\u53c2\u6570\r\n\r\n&nbsp;void&nbsp;GetJsPayParam(HttpContext&nbsp;context)\r\n&nbsp;{\r\n&nbsp;&nbsp;JsEntities&nbsp;jsEntities&nbsp;=&nbsp;new&nbsp;JsEntities()\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;appId&nbsp;=&nbsp;appid,\r\n&nbsp;&nbsp;nonceStr&nbsp;=&nbsp;.Utils.GetRandom(),\r\n&nbsp;&nbsp;package&nbsp;=&nbsp;string.Format(\"prepay_id={0}\",&nbsp;GetPrepayId(context)),\r\n&nbsp;&nbsp;signType&nbsp;=&nbsp;\"MD5\",\r\n&nbsp;&nbsp;timeStamp&nbsp;=&nbsp;.Utils.ConvertDateTimeInt(DateTime.Now).ToString()\r\n&nbsp;&nbsp;};\r\n&nbsp;&nbsp;string&nbsp;url,&nbsp;sign;\r\n&nbsp;&nbsp;string&nbsp;xmlStr&nbsp;=&nbsp;.Utils.GetUnifyRequestXml&lt;jsentities&gt;(jsEntities,&nbsp;key,&nbsp;out&nbsp;url,&nbsp;out&nbsp;sign);\r\n&nbsp;&nbsp;LogHelper.WriteFile(xmlStr);\r\n&nbsp;&nbsp;jsEntities.paySign&nbsp;=&nbsp;sign;\r\n&nbsp;&nbsp;context.Response.Write(JsonConvert.SerializeObject(jsEntities));\r\n&nbsp;}\r\n&nbsp;#endregion\r\n&nbsp;#region&nbsp;\u83b7\u53d6\u9884\u652f\u4ed8ID\r\n\r\n\r\n&nbsp;\/\/--------------------------------------------------------------------------\r\n&nbsp;string&nbsp;GetPrepayId(HttpContext&nbsp;context)\r\n&nbsp;{\r\n&nbsp;&nbsp;string&nbsp;xml;\r\n&nbsp;&nbsp;GetUnifySign(context,&nbsp;out&nbsp;xml);\r\n&nbsp;&nbsp;LogHelper.WriteFile(\"GetPrepayId---71--\"&nbsp;+&nbsp;xml);\r\n&nbsp;&nbsp;UnifyReceive&nbsp;unifyReceive&nbsp;=&nbsp;new&nbsp;UnifyReceive(.Utils.HttpPost(\"https:\/\/api.mch.weixin.qq.com\/pay\/unifiedorder\",&nbsp;xml));\r\n&nbsp;&nbsp;LogHelper.WriteFile(\"unifyReceive---73--\"&nbsp;+&nbsp;unifyReceive.prepay_id);\r\n&nbsp;&nbsp;return&nbsp;unifyReceive.prepay_id;\r\n&nbsp;}\r\n&nbsp;#endregion\r\n&nbsp;#region&nbsp;\u83b7\u53d6\u7edf\u4e00\u7b7e\u540d\r\n&nbsp;void&nbsp;GetUnifySign(HttpContext&nbsp;context)\r\n&nbsp;{\r\n&nbsp;&nbsp;string&nbsp;xml;\r\n&nbsp;&nbsp;context.Response.Write(GetUnifySign(context,&nbsp;out&nbsp;xml));\r\n&nbsp;}\r\n&nbsp;#endregion\r\n&nbsp;#region&nbsp;\u83b7\u53d6\u7edf\u4e00\u7b7e\u540d\r\n\r\n&nbsp;string&nbsp;GetUnifySign(HttpContext&nbsp;context,&nbsp;out&nbsp;string&nbsp;xml)\r\n&nbsp;{\r\n&nbsp;&nbsp;string&nbsp;url,&nbsp;sign;\r\n&nbsp;&nbsp;xml&nbsp;=&nbsp;WxPayHelper.Utils.GetUnifyUrlXml&lt;unifyentities&gt;(GetUnifyEntities(context),&nbsp;key,&nbsp;out&nbsp;url,&nbsp;out&nbsp;sign);\r\n&nbsp;&nbsp;return&nbsp;sign;\r\n&nbsp;}\r\n&nbsp;#endregion\r\n\r\n&nbsp;#region&nbsp;\u83b7\u53d6\u4e8c\u7ef4\u7801\r\n\r\n&nbsp;void&nbsp;GetPayQr(HttpContext&nbsp;context)\r\n&nbsp;{\r\n&nbsp;&nbsp;string&nbsp;url&nbsp;=&nbsp;GetPayUrl(context);\r\n&nbsp;&nbsp;WxPayHelper.Utils.GetQrCode(url);\r\n&nbsp;}\r\n&nbsp;#endregion\r\n&nbsp;#region&nbsp;\u83b7\u53d6\u4e8c\u7ef4\u7801\u94fe\u63a5\r\n\r\n&nbsp;string&nbsp;GetPayUrl(HttpContext&nbsp;context)\r\n&nbsp;{\r\n&nbsp;&nbsp;string&nbsp;xml;\r\n&nbsp;&nbsp;GetUnifySign(context,&nbsp;out&nbsp;xml);\r\n&nbsp;&nbsp;WxPayHelper.Utils.WriteTxt(xml);\r\n&nbsp;&nbsp;UnifyReceive&nbsp;unifyReceive&nbsp;=&nbsp;new&nbsp;UnifyReceive(WxPayHelper.Utils.HttpPost(\"https:\/\/api.mch.weixin.qq.com\/pay\/unifiedorder\",&nbsp;xml));\r\n&nbsp;&nbsp;return&nbsp;unifyReceive.code_url;\r\n&nbsp;}\r\n&nbsp;#endregion\r\n&nbsp;#region&nbsp;\u83b7\u53d6\u7edf\u4e00\u652f\u4ed8\u63a5\u53e3\u53c2\u6570\u5bf9\u8c61\r\n\r\n&nbsp;UnifyEntities&nbsp;GetUnifyEntities(HttpContext&nbsp;context)\r\n&nbsp;{\r\n&nbsp;&nbsp;string&nbsp;msgid&nbsp;=&nbsp;JKRequest.GetQueryString(\"msgid\");\r\n&nbsp;&nbsp;LogHelper.WriteFile(\"115---------\"+msgid);\r\n&nbsp;&nbsp;UnifyEntities&nbsp;unify&nbsp;=&nbsp;new&nbsp;UnifyEntities\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;appid&nbsp;=&nbsp;appid,\r\n&nbsp;&nbsp;body&nbsp;=&nbsp;JKRequest.GetQueryString(\"body\"),\r\n&nbsp;&nbsp;mch_id&nbsp;=&nbsp;mch_id,\r\n&nbsp;&nbsp;nonce_str&nbsp;=&nbsp;WxPayHelper.Utils.GetRandom(),\r\n&nbsp;&nbsp;out_trade_no&nbsp;=&nbsp;JKRequest.GetQueryString(\"out_trade_no\"),\r\n&nbsp;&nbsp;notify_url&nbsp;=&nbsp;notify_url,\r\n&nbsp;&nbsp;spbill_create_ip&nbsp;=&nbsp;JKRequest.GetIP(),\r\n&nbsp;&nbsp;trade_type&nbsp;=&nbsp;JKRequest.GetQueryString(\"trade_type\"),\r\n&nbsp;&nbsp;total_fee&nbsp;=&nbsp;JKRequest.GetQueryString(\"total_fee\")\r\n&nbsp;&nbsp;};\r\n&nbsp;&nbsp;if&nbsp;(unify.trade_type&nbsp;==&nbsp;\"NATIVE\")\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;unify.product_id&nbsp;=&nbsp;msgid;\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;else\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;unify.openid&nbsp;=&nbsp;msgid;\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;return&nbsp;unify;\r\n&nbsp;}\r\n\r\n&nbsp;#endregion\r\n\r\n\r\n&nbsp;public&nbsp;bool&nbsp;IsReusable\r\n&nbsp;{\r\n&nbsp;&nbsp;get\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;return&nbsp;false;\r\n&nbsp;&nbsp;}\r\n&nbsp;}\r\n&nbsp;}&lt;\/unifyentities&gt;&lt;\/jsentities&gt;<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>Utils.cs\u4ee3\u7801:<\/p>\n<pre>&nbsp;public&nbsp;class&nbsp;Utils\r\n&nbsp;{\r\n\r\n&nbsp;#region&nbsp;MD5\u52a0\u5bc6\r\n&nbsp;public&nbsp;static&nbsp;string&nbsp;MD5(string&nbsp;pwd)\r\n&nbsp;{\r\n&nbsp;&nbsp;MD5&nbsp;md5&nbsp;=&nbsp;new&nbsp;MD5CryptoServiceProvider();\r\n&nbsp;&nbsp;byte[]&nbsp;data&nbsp;=&nbsp;System.Text.Encoding.Default.GetBytes(pwd);\r\n&nbsp;&nbsp;byte[]&nbsp;md5data&nbsp;=&nbsp;md5.ComputeHash(data);\r\n&nbsp;&nbsp;md5.Clear();\r\n&nbsp;&nbsp;string&nbsp;str&nbsp;=&nbsp;\"\";\r\n&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;\r\n&nbsp;\/\/\/&nbsp;\u83b7\u53d6\u6587\u4ef6\u7684md5\r\n&nbsp;\/\/\/&nbsp;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u6587\u4ef6\u8def\u5f84\uff0curl\u8def\u5f84\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;md5\u5b57\u7b26\u4e32&lt;\/returns&gt;\r\n&nbsp;string&nbsp;GetMD5HashFromFile(string&nbsp;filepath)\r\n&nbsp;{\r\n&nbsp;&nbsp;try\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;WebClient&nbsp;wc&nbsp;=&nbsp;new&nbsp;WebClient();\r\n\r\n&nbsp;&nbsp;var&nbsp;file&nbsp;=&nbsp;wc.OpenRead(new&nbsp;Uri(filepath));\r\n&nbsp;&nbsp;System.Security.Cryptography.MD5&nbsp;md5&nbsp;=&nbsp;new&nbsp;System.Security.Cryptography.MD5CryptoServiceProvider();\r\n&nbsp;&nbsp;byte[]&nbsp;retVal&nbsp;=&nbsp;md5.ComputeHash(file);\r\n&nbsp;&nbsp;file.Close();\r\n\r\n&nbsp;&nbsp;StringBuilder&nbsp;sb&nbsp;=&nbsp;new&nbsp;StringBuilder();\r\n&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;\r\n&nbsp;\/\/\/&nbsp;\u5224\u65ad\u5bf9\u8c61\u662f\u5426\u4e3aInt32\u7c7b\u578b\u7684\u6570\u5b57\r\n&nbsp;\/\/\/&nbsp;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;bool&nbsp;IsNumeric(object&nbsp;expression)\r\n&nbsp;{\r\n&nbsp;&nbsp;if&nbsp;(expression&nbsp;!=&nbsp;null)\r\n&nbsp;&nbsp;return&nbsp;IsNumeric(expression.ToString());\r\n\r\n&nbsp;&nbsp;return&nbsp;false;\r\n\r\n&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5224\u65ad\u5bf9\u8c61\u662f\u5426\u4e3aInt32\u7c7b\u578b\u7684\u6570\u5b57\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&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;bool&nbsp;IsNumeric(string&nbsp;expression)\r\n&nbsp;{\r\n&nbsp;&nbsp;if&nbsp;(expression&nbsp;!=&nbsp;null)\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;string&nbsp;str&nbsp;=&nbsp;expression;\r\n&nbsp;&nbsp;if&nbsp;(str.Length&nbsp;&amp;gt;&nbsp;0&nbsp;&amp;amp;&amp;amp;&nbsp;str.Length&nbsp;\r\n&nbsp;\/\/\/&nbsp;\u662f\u5426\u4e3aDouble\u7c7b\u578b\r\n&nbsp;\/\/\/&nbsp;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;bool&nbsp;IsDouble(object&nbsp;expression)\r\n&nbsp;{\r\n&nbsp;&nbsp;if&nbsp;(expression&nbsp;!=&nbsp;null)\r\n&nbsp;&nbsp;return&nbsp;Regex.IsMatch(expression.ToString(),&nbsp;@\"^([0-9])[0-9]*(.w*)?$\");\r\n\r\n&nbsp;&nbsp;return&nbsp;false;\r\n&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u68c0\u6d4b\u662f\u5426\u7b26\u5408email\u683c\u5f0f\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u8981\u5224\u65ad\u7684email\u5b57\u7b26\u4e32\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;\u5224\u65ad\u7ed3\u679c&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;bool&nbsp;IsValidEmail(string&nbsp;strEmail)\r\n&nbsp;{\r\n&nbsp;&nbsp;return&nbsp;Regex.IsMatch(strEmail,&nbsp;@\"^[w.]+([-]w+)*@[A-Za-z0-9-_]+[.][A-Za-z0-9-_]\");\r\n&nbsp;}\r\n&nbsp;public&nbsp;static&nbsp;bool&nbsp;IsValidDoEmail(string&nbsp;strEmail)\r\n&nbsp;{\r\n&nbsp;&nbsp;return&nbsp;Regex.IsMatch(strEmail,&nbsp;@\"^@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$\");\r\n&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u68c0\u6d4b\u662f\u5426\u662f\u6b63\u786e\u7684Url\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u8981\u9a8c\u8bc1\u7684Url\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;\u5224\u65ad\u7ed3\u679c&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;bool&nbsp;IsURL(string&nbsp;strUrl)\r\n&nbsp;{\r\n&nbsp;&nbsp;return&nbsp;Regex.IsMatch(strUrl,&nbsp;@\"^(http|https):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&amp;amp;%$-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]).(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0).(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0).(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|localhost|([a-zA-Z0-9-]+.)*[a-zA-Z0-9-]+.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{1,10}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&amp;amp;%$#=~_-]+))*$\");\r\n&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5c06\u5b57\u7b26\u4e32\u8f6c\u6362\u4e3a\u6570\u7ec4\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u5b57\u7b26\u4e32\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;\u5b57\u7b26\u4e32\u6570\u7ec4&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;string[]&nbsp;GetStrArray(string&nbsp;str)\r\n&nbsp;{\r\n&nbsp;&nbsp;return&nbsp;str.Split(new&nbsp;char[',']);\r\n&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5c06\u6570\u7ec4\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;List\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u5206\u9694\u7b26\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;String&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;string&nbsp;GetArrayStr(List&lt;string&gt;&nbsp;list,&nbsp;string&nbsp;speater)\r\n&nbsp;{\r\n&nbsp;&nbsp;StringBuilder&nbsp;sb&nbsp;=&nbsp;new&nbsp;StringBuilder();\r\n&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;\r\n&nbsp;\/\/\/&nbsp;object\u578b\u8f6c\u6362\u4e3abool\u578b\r\n&nbsp;\/\/\/&nbsp;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u7f3a\u7701\u503c\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;\u8f6c\u6362\u540e\u7684bool\u7c7b\u578b\u7ed3\u679c&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;bool&nbsp;StrToBool(object&nbsp;expression,&nbsp;bool&nbsp;defValue)\r\n&nbsp;{\r\n&nbsp;&nbsp;if&nbsp;(expression&nbsp;!=&nbsp;null)\r\n&nbsp;&nbsp;return&nbsp;StrToBool(expression,&nbsp;defValue);\r\n\r\n&nbsp;&nbsp;return&nbsp;defValue;\r\n&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;string\u578b\u8f6c\u6362\u4e3abool\u578b\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u7f3a\u7701\u503c\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;\u8f6c\u6362\u540e\u7684bool\u7c7b\u578b\u7ed3\u679c&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;bool&nbsp;StrToBool(string&nbsp;expression,&nbsp;bool&nbsp;defValue)\r\n&nbsp;{\r\n&nbsp;&nbsp;if&nbsp;(expression&nbsp;!=&nbsp;null)\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;if&nbsp;(string.Compare(expression,&nbsp;\"true\",&nbsp;true)&nbsp;==&nbsp;0)\r\n&nbsp;&nbsp;&nbsp;return&nbsp;true;\r\n&nbsp;&nbsp;else&nbsp;if&nbsp;(string.Compare(expression,&nbsp;\"false\",&nbsp;true)&nbsp;==&nbsp;0)\r\n&nbsp;&nbsp;&nbsp;return&nbsp;false;\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;return&nbsp;defValue;\r\n&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5c06\u5bf9\u8c61\u8f6c\u6362\u4e3aInt32\u7c7b\u578b\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u7f3a\u7701\u503c\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;\u8f6c\u6362\u540e\u7684int\u7c7b\u578b\u7ed3\u679c&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;int&nbsp;ObjToInt(object&nbsp;expression,&nbsp;int&nbsp;defValue)\r\n&nbsp;{\r\n&nbsp;&nbsp;if&nbsp;(expression&nbsp;!=&nbsp;null)\r\n&nbsp;&nbsp;return&nbsp;StrToInt(expression.ToString(),&nbsp;defValue);\r\n\r\n&nbsp;&nbsp;return&nbsp;defValue;\r\n&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5c06\u5b57\u7b26\u4e32\u8f6c\u6362\u4e3aInt32\u7c7b\u578b\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u7f3a\u7701\u503c\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;\u8f6c\u6362\u540e\u7684int\u7c7b\u578b\u7ed3\u679c&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;int&nbsp;StrToInt(string&nbsp;expression,&nbsp;int&nbsp;defValue)\r\n&nbsp;{\r\n&nbsp;&nbsp;if&nbsp;(string.IsNullOrEmpty(expression)&nbsp;||&nbsp;expression.Trim().Length&nbsp;&amp;gt;=&nbsp;11&nbsp;||&nbsp;!Regex.IsMatch(expression.Trim(),&nbsp;@\"^([-]|[0-9])[0-9]*(.w*)?$\"))\r\n&nbsp;&nbsp;return&nbsp;defValue;\r\n\r\n&nbsp;&nbsp;int&nbsp;rv;\r\n&nbsp;&nbsp;if&nbsp;(Int32.TryParse(expression,&nbsp;out&nbsp;rv))\r\n&nbsp;&nbsp;return&nbsp;rv;\r\n\r\n&nbsp;&nbsp;return&nbsp;Convert.ToInt32(StrToFloat(expression,&nbsp;defValue));\r\n&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;Object\u578b\u8f6c\u6362\u4e3adecimal\u578b\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u7f3a\u7701\u503c\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;\u8f6c\u6362\u540e\u7684decimal\u7c7b\u578b\u7ed3\u679c&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;decimal&nbsp;ObjToDecimal(object&nbsp;expression,&nbsp;decimal&nbsp;defValue)\r\n&nbsp;{\r\n&nbsp;&nbsp;if&nbsp;(expression&nbsp;!=&nbsp;null)\r\n&nbsp;&nbsp;return&nbsp;StrToDecimal(expression.ToString(),&nbsp;defValue);\r\n\r\n&nbsp;&nbsp;return&nbsp;defValue;\r\n&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;string\u578b\u8f6c\u6362\u4e3adecimal\u578b\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u7f3a\u7701\u503c\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;\u8f6c\u6362\u540e\u7684decimal\u7c7b\u578b\u7ed3\u679c&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;decimal&nbsp;StrToDecimal(string&nbsp;expression,&nbsp;decimal&nbsp;defValue)\r\n&nbsp;{\r\n&nbsp;&nbsp;if&nbsp;((expression&nbsp;==&nbsp;null)&nbsp;||&nbsp;(expression.Length&nbsp;&amp;gt;&nbsp;10))\r\n&nbsp;&nbsp;return&nbsp;defValue;\r\n\r\n&nbsp;&nbsp;decimal&nbsp;intValue&nbsp;=&nbsp;defValue;\r\n&nbsp;&nbsp;if&nbsp;(expression&nbsp;!=&nbsp;null)\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;bool&nbsp;IsDecimal&nbsp;=&nbsp;Regex.IsMatch(expression,&nbsp;@\"^([-]|[0-9])[0-9]*(.w*)?$\");\r\n&nbsp;&nbsp;if&nbsp;(IsDecimal)\r\n&nbsp;&nbsp;&nbsp;decimal.TryParse(expression,&nbsp;out&nbsp;intValue);\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;return&nbsp;intValue;\r\n&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;Object\u578b\u8f6c\u6362\u4e3afloat\u578b\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u7f3a\u7701\u503c\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;\u8f6c\u6362\u540e\u7684int\u7c7b\u578b\u7ed3\u679c&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;float&nbsp;ObjToFloat(object&nbsp;expression,&nbsp;float&nbsp;defValue)\r\n&nbsp;{\r\n&nbsp;&nbsp;if&nbsp;(expression&nbsp;!=&nbsp;null)\r\n&nbsp;&nbsp;return&nbsp;StrToFloat(expression.ToString(),&nbsp;defValue);\r\n\r\n&nbsp;&nbsp;return&nbsp;defValue;\r\n&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;string\u578b\u8f6c\u6362\u4e3afloat\u578b\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u7f3a\u7701\u503c\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;\u8f6c\u6362\u540e\u7684int\u7c7b\u578b\u7ed3\u679c&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;float&nbsp;StrToFloat(string&nbsp;expression,&nbsp;float&nbsp;defValue)\r\n&nbsp;{\r\n&nbsp;&nbsp;if&nbsp;((expression&nbsp;==&nbsp;null)&nbsp;||&nbsp;(expression.Length&nbsp;&amp;gt;&nbsp;10))\r\n&nbsp;&nbsp;return&nbsp;defValue;\r\n\r\n&nbsp;&nbsp;float&nbsp;intValue&nbsp;=&nbsp;defValue;\r\n&nbsp;&nbsp;if&nbsp;(expression&nbsp;!=&nbsp;null)\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;bool&nbsp;IsFloat&nbsp;=&nbsp;Regex.IsMatch(expression,&nbsp;@\"^([-]|[0-9])[0-9]*(.w*)?$\");\r\n&nbsp;&nbsp;if&nbsp;(IsFloat)\r\n&nbsp;&nbsp;&nbsp;float.TryParse(expression,&nbsp;out&nbsp;intValue);\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;return&nbsp;intValue;\r\n&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5c06\u5bf9\u8c61\u8f6c\u6362\u4e3a\u65e5\u671f\u65f6\u95f4\u7c7b\u578b\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u7f3a\u7701\u503c\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;\u8f6c\u6362\u540e\u7684int\u7c7b\u578b\u7ed3\u679c&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;DateTime&nbsp;StrToDateTime(string&nbsp;str,&nbsp;DateTime&nbsp;defValue)\r\n&nbsp;{\r\n&nbsp;&nbsp;if&nbsp;(!string.IsNullOrEmpty(str))\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;DateTime&nbsp;dateTime;\r\n&nbsp;&nbsp;if&nbsp;(DateTime.TryParse(str,&nbsp;out&nbsp;dateTime))\r\n&nbsp;&nbsp;&nbsp;return&nbsp;dateTime;\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;return&nbsp;defValue;\r\n&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5c06\u5bf9\u8c61\u8f6c\u6362\u4e3a\u65e5\u671f\u65f6\u95f4\u7c7b\u578b\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u8981\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;\u8f6c\u6362\u540e\u7684int\u7c7b\u578b\u7ed3\u679c&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;DateTime&nbsp;StrToDateTime(string&nbsp;str)\r\n&nbsp;{\r\n&nbsp;&nbsp;return&nbsp;StrToDateTime(str,&nbsp;DateTime.Now);\r\n&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5c06\u5bf9\u8c61\u8f6c\u6362\u4e3a\u65e5\u671f\u65f6\u95f4\u7c7b\u578b\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u8981\u8f6c\u6362\u7684\u5bf9\u8c61\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;\u8f6c\u6362\u540e\u7684int\u7c7b\u578b\u7ed3\u679c&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;DateTime&nbsp;ObjectToDateTime(object&nbsp;obj)\r\n&nbsp;{\r\n&nbsp;&nbsp;return&nbsp;StrToDateTime(obj.ToString());\r\n&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5c06\u5bf9\u8c61\u8f6c\u6362\u4e3a\u65e5\u671f\u65f6\u95f4\u7c7b\u578b\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u8981\u8f6c\u6362\u7684\u5bf9\u8c61\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u7f3a\u7701\u503c\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;\u8f6c\u6362\u540e\u7684int\u7c7b\u578b\u7ed3\u679c&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;DateTime&nbsp;ObjectToDateTime(object&nbsp;obj,&nbsp;DateTime&nbsp;defValue)\r\n&nbsp;{\r\n&nbsp;&nbsp;return&nbsp;StrToDateTime(obj.ToString(),&nbsp;defValue);\r\n&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5c06\u5bf9\u8c61\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u8981\u8f6c\u6362\u7684\u5bf9\u8c61\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;\u8f6c\u6362\u540e\u7684string\u7c7b\u578b\u7ed3\u679c&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;string&nbsp;ObjectToStr(object&nbsp;obj)\r\n&nbsp;{\r\n&nbsp;&nbsp;if&nbsp;(obj&nbsp;==&nbsp;null)\r\n&nbsp;&nbsp;return&nbsp;\"\";\r\n&nbsp;&nbsp;return&nbsp;obj.ToString().Trim();\r\n&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5224\u65ad\u662f\u5426\u90ae\u7bb1\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&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;bool&nbsp;IsEmail(string&nbsp;expression)\r\n&nbsp;{\r\n&nbsp;&nbsp;return&nbsp;Regex.IsMatch(expression,&nbsp;@\"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$\");\r\n&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5224\u65ad\u662f\u5426\u624b\u673a\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&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;bool&nbsp;IsMobile(string&nbsp;expression)\r\n&nbsp;{\r\n&nbsp;&nbsp;return&nbsp;Regex.IsMatch(expression,&nbsp;@\"^1[3|4|5|6|7|8|9][0-9]{9}$\");\r\n&nbsp;}\r\n\r\n&nbsp;public&nbsp;static&nbsp;bool&nbsp;IsPhone(string&nbsp;telphone)\r\n&nbsp;{\r\n&nbsp;&nbsp;Regex&nbsp;regex&nbsp;=&nbsp;new&nbsp;Regex(@\"^(d{3,4}-)?d{6,8}$\");\r\n&nbsp;&nbsp;return&nbsp;regex.IsMatch(telphone);\r\n&nbsp;}\r\n&nbsp;#endregion\r\n\r\n&nbsp;#region&nbsp;\u5206\u5272\u5b57\u7b26\u4e32\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u5206\u5272\u5b57\u7b26\u4e32\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;public&nbsp;static&nbsp;string[]&nbsp;SplitString(string&nbsp;strContent,&nbsp;string&nbsp;strSplit)\r\n&nbsp;{\r\n&nbsp;&nbsp;if&nbsp;(!string.IsNullOrEmpty(strContent))\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;if&nbsp;(strContent.IndexOf(strSplit)&nbsp;\r\n&nbsp;\/\/\/&nbsp;\u5206\u5272\u5b57\u7b26\u4e32\r\n&nbsp;\/\/\/&nbsp;\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;string[]&nbsp;SplitString(string&nbsp;strContent,&nbsp;string&nbsp;strSplit,&nbsp;int&nbsp;count)\r\n&nbsp;{\r\n&nbsp;&nbsp;string[]&nbsp;result&nbsp;=&nbsp;new&nbsp;string[count];\r\n&nbsp;&nbsp;string[]&nbsp;splited&nbsp;=&nbsp;SplitString(strContent,&nbsp;strSplit);\r\n\r\n&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;\r\n&nbsp;\/\/\/&nbsp;\u5220\u9664\u6700\u540e\u7ed3\u5c3e\u7684\u4e00\u4e2a\u9017\u53f7\r\n&nbsp;\/\/\/&nbsp;\r\n&nbsp;public&nbsp;static&nbsp;string&nbsp;DelLastComma(string&nbsp;str)\r\n&nbsp;{\r\n&nbsp;&nbsp;if&nbsp;(str.Length&nbsp;\r\n&nbsp;\/\/\/&nbsp;\u5220\u9664\u6700\u540e\u7ed3\u5c3e\u7684\u6307\u5b9a\u5b57\u7b26\u540e\u7684\u5b57\u7b26\r\n&nbsp;\/\/\/&nbsp;\r\n&nbsp;public&nbsp;static&nbsp;string&nbsp;DelLastChar(string&nbsp;str,&nbsp;string&nbsp;strchar)\r\n&nbsp;{\r\n&nbsp;&nbsp;if&nbsp;(string.IsNullOrEmpty(str))\r\n&nbsp;&nbsp;return&nbsp;\"\";\r\n&nbsp;&nbsp;if&nbsp;(str.LastIndexOf(strchar)&nbsp;&amp;gt;=&nbsp;0&nbsp;&amp;amp;&amp;amp;&nbsp;str.LastIndexOf(strchar)&nbsp;==&nbsp;str.Length&nbsp;-&nbsp;1)\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;return&nbsp;str.Substring(0,&nbsp;str.LastIndexOf(strchar));\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;return&nbsp;str;\r\n&nbsp;}\r\n&nbsp;#endregion\r\n\r\n&nbsp;#region&nbsp;\u751f\u6210\u6307\u5b9a\u957f\u5ea6\u7684\u5b57\u7b26\u4e32\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u751f\u6210\u6307\u5b9a\u957f\u5ea6\u7684\u5b57\u7b26\u4e32,\u5373\u751f\u6210strLong\u4e2astr\u5b57\u7b26\u4e32\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u751f\u6210\u7684\u957f\u5ea6\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u4ee5str\u751f\u6210\u5b57\u7b26\u4e32\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;string&nbsp;StringOfChar(int&nbsp;strLong,&nbsp;string&nbsp;str)\r\n&nbsp;{\r\n&nbsp;&nbsp;string&nbsp;ReturnStr&nbsp;=&nbsp;\"\";\r\n&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;\r\n&nbsp;\/\/\/&nbsp;\u751f\u6210\u65e5\u671f\u968f\u673a\u7801\r\n&nbsp;\/\/\/&nbsp;\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;string&nbsp;GetRamCode()\r\n&nbsp;{\r\n&nbsp;&nbsp;#region\r\n&nbsp;&nbsp;return&nbsp;DateTime.Now.ToString(\"yyyyMMddHHmmssffff\");\r\n&nbsp;&nbsp;#endregion\r\n&nbsp;}\r\n&nbsp;#endregion\r\n\r\n&nbsp;#region&nbsp;\u751f\u6210\u968f\u673a\u5b57\u6bcd\u6216\u6570\u5b57\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u751f\u6210\u968f\u673a\u6570\u5b57\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u751f\u6210\u957f\u5ea6\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;string&nbsp;Number(int&nbsp;Length)\r\n&nbsp;{\r\n&nbsp;&nbsp;return&nbsp;Number(Length,&nbsp;false);\r\n&nbsp;}\r\n\r\n&nbsp;\/\/\/&nbsp;&lt;summary&gt;\r\n&nbsp;\/\/\/&nbsp;\u751f\u6210\u968f\u673a\u6570\u5b57\r\n&nbsp;\/\/\/&nbsp;&lt;\/summary&gt;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u751f\u6210\u957f\u5ea6\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u662f\u5426\u8981\u5728\u751f\u6210\u524d\u5c06\u5f53\u524d\u7ebf\u7a0b\u963b\u6b62\u4ee5\u907f\u514d\u91cd\u590d\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;string&nbsp;Number(int&nbsp;Length,&nbsp;bool&nbsp;Sleep)\r\n&nbsp;{\r\n&nbsp;&nbsp;if&nbsp;(Sleep)\r\n&nbsp;&nbsp;System.Threading.Thread.Sleep(3);\r\n&nbsp;&nbsp;string&nbsp;result&nbsp;=&nbsp;\"\";\r\n&nbsp;&nbsp;System.Random&nbsp;random&nbsp;=&nbsp;new&nbsp;Random();\r\n&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;\r\n&nbsp;\/\/\/&nbsp;\u751f\u6210\u968f\u673a\u5b57\u6bcd\u5b57\u7b26\u4e32(\u6570\u5b57\u5b57\u6bcd\u6df7\u548c)\r\n&nbsp;\/\/\/&nbsp;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u5f85\u751f\u6210\u7684\u4f4d\u6570\r\n&nbsp;public&nbsp;static&nbsp;string&nbsp;GetCheckCode(int&nbsp;codeCount)\r\n&nbsp;{\r\n&nbsp;&nbsp;string&nbsp;str&nbsp;=&nbsp;string.Empty;\r\n&nbsp;&nbsp;int&nbsp;rep&nbsp;=&nbsp;0;\r\n&nbsp;&nbsp;long&nbsp;num2&nbsp;=&nbsp;DateTime.Now.Ticks&nbsp;+&nbsp;rep;\r\n&nbsp;&nbsp;rep++;\r\n&nbsp;&nbsp;Random&nbsp;random&nbsp;=&nbsp;new&nbsp;Random(((int)(((ulong)num2)&nbsp;&amp;amp;&nbsp;0xffffffffL))&nbsp;|&nbsp;((int)(num2&nbsp;&amp;gt;&amp;gt;&nbsp;rep)));\r\n&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;\r\n&nbsp;\/\/\/&nbsp;\u6839\u636e\u65e5\u671f\u548c\u968f\u673a\u7801\u751f\u6210\u8ba2\u5355\u53f7\r\n&nbsp;\/\/\/&nbsp;\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;string&nbsp;GetOrderNumber()\r\n&nbsp;{\r\n&nbsp;&nbsp;string&nbsp;num&nbsp;=&nbsp;DateTime.Now.ToString(\"yyMMddHHmmss\");\/\/yyyyMMddHHmmssms\r\n&nbsp;&nbsp;return&nbsp;num&nbsp;+&nbsp;Number(2).ToString();\r\n&nbsp;}\r\n&nbsp;private&nbsp;static&nbsp;int&nbsp;Next(int&nbsp;numSeeds,&nbsp;int&nbsp;length)\r\n&nbsp;{\r\n&nbsp;&nbsp;byte[]&nbsp;buffer&nbsp;=&nbsp;new&nbsp;byte[length];\r\n&nbsp;&nbsp;System.Security.Cryptography.RNGCryptoServiceProvider&nbsp;Gen&nbsp;=&nbsp;new&nbsp;System.Security.Cryptography.RNGCryptoServiceProvider();\r\n&nbsp;&nbsp;Gen.GetBytes(buffer);\r\n&nbsp;&nbsp;uint&nbsp;randomResult&nbsp;=&nbsp;0x0;\/\/\u8fd9\u91cc\u7528uint\u4f5c\u4e3a\u751f\u6210\u7684\u968f\u673a\u6570&nbsp;\r\n&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;\r\n&nbsp;\/\/\/&nbsp;\u622a\u53d6\u5b57\u7b26\u957f\u5ea6\r\n&nbsp;\/\/\/&nbsp;\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u5b57\u7b26\r\n&nbsp;\/\/\/&nbsp;&lt;param&gt;\u957f\u5ea6\r\n&nbsp;\/\/\/&nbsp;&lt;returns&gt;&lt;\/returns&gt;\r\n&nbsp;public&nbsp;static&nbsp;string&nbsp;CutString(string&nbsp;inputString,&nbsp;int&nbsp;len)\r\n&nbsp;{\r\n&nbsp;&nbsp;if&nbsp;(string.IsNullOrEmpty(inputString))\r\n&nbsp;&nbsp;return&nbsp;\"\";\r\n&nbsp;&nbsp;inputString&nbsp;=&nbsp;DropHTML(inputString);\r\n&nbsp;&nbsp;ASCIIEncoding&nbsp;ascii&nbsp;=&nbsp;new&nbsp;ASCIIEncoding();\r\n&nbsp;&nbsp;int&nbsp;tempLen&nbsp;=&nbsp;0;\r\n&nbsp;&nbsp;string&nbsp;tempString&nbsp;=&nbsp;\"\";\r\n&nbsp;&nbsp;byte[]&nbsp;s&nbsp;=&nbsp;ascii.GetBytes(inputString);\r\n&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&nbsp;len)\r\n&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;\/\/\u5982\u679c\u622a\u8fc7\u5219\u52a0\u4e0a\u534a\u4e2a\u7701\u7565\u53f7&nbsp;\r\n&nbsp;&nbsp;byte[]&nbsp;mybyte&nbsp;=&nbsp;System.Text.Encoding.Default.GetBytes(inputString);\r\n&nbsp;&nbsp;if&nbsp;(mybyte.Length&nbsp;&amp;gt;&nbsp;len)\r\n&nbsp;&nbsp;tempString&nbsp;+=&nbsp;\"\u2026\";\r\n&nbsp;&nbsp;return&nbsp;tempString;\r\n&nbsp;}\r\n&nbsp;#endregion\r\n\r\n&nbsp;#region&nbsp;\u6e05\u9664HTML\u6807\u8bb0\r\n&nbsp;public&nbsp;static&nbsp;string&nbsp;DropHTML(string&nbsp;Htmlstring)\r\n&nbsp;{\r\n&nbsp;&nbsp;if&nbsp;(string.IsNullOrEmpty(Htmlstring))&nbsp;return&nbsp;\"\";\r\n&nbsp;&nbsp;\/\/\u5220\u9664\u811a\u672c&nbsp;\r\n&nbsp;&nbsp;Htmlstring&nbsp;=&nbsp;Regex.Replace(Htmlstring,&nbsp;@\"&lt;script&gt;]*?&gt;.*?&lt;\/script&gt;\",&nbsp;\"\",&nbsp;RegexOptions.IgnoreCase);\r\n&nbsp;&nbsp;\/\/\u5220\u9664HTML&nbsp;\r\n&nbsp;&nbsp;Htmlstring&nbsp;=&nbsp;Regex.Replace(Htmlstring,&nbsp;@\"]*)&amp;gt;\",&nbsp;\"\",&nbsp;RegexOptions.IgnoreCase);\r\n&nbsp;&nbsp;Htmlstring&nbsp;=&nbsp;Regex.Replace(Htmlstring,&nbsp;@\"([\r\n])[s]+\",&nbsp;\"\",&nbsp;RegexOptions.IgnoreCase);\r\n&nbsp;&nbsp;Htmlstring&nbsp;=&nbsp;Regex.Replace(Htmlstring,&nbsp;@\"--&amp;gt;\",&nbsp;\"\",&nbsp;RegexOptions.IgnoreCase);\r\n&nbsp;&nbsp;Htmlstring&nbsp;=&nbsp;Regex.Replace(Htmlstring,&nbsp;@\"&lt;\/string&gt;<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u4ee5\u4e0a\u5c31\u662f\u7528ASP.NET\u5b9e\u73b0JS-SDK\u652f\u4ed8\u7684\u5b9e\u4f8b\u8be6\u89e3\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>\u6a21\u578b\u5c42\u5b9e\u4f53\u7c7b: &nbsp;public&nbsp;class&nbsp;JsEntities &nbsp;{ &nbsp;\/\/\/&nbsp;&lt;summary&gt; &nbsp;\/\/\/&nbsp;\u516c\u4f17\u53f7id &nbsp;\/\/\/&nbsp;&lt;\/summary&gt; &nbsp;public&nbsp;string&nbsp;appId&nbsp;{&nbsp;get;&nbsp;set;&nbsp;} &nbsp;\/\/\/&nbsp;&lt;summary&gt; &nbsp;\/\/\/&nbsp;\u65f6\u95f4\u6233 &nbsp;\/\/\/&nbsp;&lt;\/summary&gt; &nbsp;public&nbsp;string&nbsp;timeStamp&nbsp;{&nbsp;get;&nbsp;set;&nbsp;} &nbsp;\/\/\/&nbsp;&lt;summary&gt; &nbsp;\/\/\/&nbsp;\u968f\u673a\u5b57\u7b26\u4e32 &nbsp;\/\/\/&nbsp;&lt;\/summary&gt; &nbsp;public&nbsp;string&nbsp;nonceStr&nbsp;{&nbsp;get;&nbsp;set;&nbsp;} &nbsp;\/\/\/&nbsp;&lt;summary&gt; &nbsp;\/\/\/&nbsp;\u8ba2\u5355\u8be6\u60c5\u6269\u5c55\u5b57\u7b26\u4e32 &nbsp;\/\/\/&nbsp;&lt;\/summary&gt; &nbsp;public&nbsp;string&nbsp;package&nbsp;{&nbsp;get;&nbsp;set;&nbsp;} &nbsp;\/\/\/&nbsp;&lt;summary&gt; &nbsp;\/\/\/&nbsp;\u7b7e\u540d\u7c7b\u578b &nbsp;\/\/\/&nbsp;&lt;\/summary&gt; &nbsp;public&nbsp;string&nbsp;signType&nbsp;{&nbsp;get;&nbsp;set;&nbsp;} &nbsp;\/\/\/&nbsp;&lt;summary&gt; &nbsp;\/\/\/&nbsp;\u7b7e\u540d &nbsp;\/\/\/&nbsp;&lt;\/summary&gt; &nbsp;public&nbsp;string&nbsp;paySign&nbsp;{&nbsp;get;&nbsp;set;&nbsp;} &nbsp;} \u767b\u5f55\u540e\u590d\u5236 &nbsp;public&nbsp;class&nbsp;UnifyEntities &nbsp;{ &nbsp;\/\/\/&nbsp;&lt;summary&gt; &nbsp;\/\/\/&nbsp;\u516c\u4f17\u8d26\u53f7ID &nbsp;\/\/\/&nbsp;&lt;\/summary&gt; &nbsp;public&nbsp;string&nbsp;appid&nbsp;{&nbsp;get;&nbsp;set;&nbsp;} &nbsp;\/\/\/&nbsp;&lt;summary&gt; &nbsp;\/\/\/&nbsp;\u5fae\u4fe1\u652f\u4ed8\u5206\u914d\u7684\u5546\u6237\u53f7 &nbsp;\/\/\/&nbsp;&lt;\/summary&gt; &nbsp;public&nbsp;string&nbsp;mch_id&nbsp;{&nbsp;get;&nbsp;set;&nbsp;} &nbsp;\/\/\/&nbsp;&lt;summary&gt; &nbsp;\/\/\/&nbsp;\u5fae\u4fe1\u652f\u4ed8\u5206\u914d\u7684\u7ec8\u7aef\u8bbe\u5907\u53f7 &nbsp;\/\/\/&nbsp;&lt;\/summary&gt; &nbsp;public&nbsp;string&nbsp;device_info&nbsp;{&nbsp;get;&nbsp;set;&nbsp;} &nbsp;\/\/\/&nbsp;&lt;summary&gt; &nbsp;\/\/\/&nbsp;\u968f\u673a\u5b57\u7b26\u4e32\uff0c\u4e0d\u957f\u4e8e32\u4f4d &nbsp;\/\/\/&nbsp;&lt;\/summary&gt; &nbsp;public&nbsp;string&nbsp;nonce_str&nbsp;{&nbsp;get;&nbsp;set;&nbsp;} &nbsp;\/\/\/&nbsp;&lt;summary&gt; &nbsp;\/\/\/&nbsp;\u7b7e\u540d &nbsp;\/\/\/&nbsp;&lt;\/summary&gt; &nbsp;public&nbsp;string&nbsp;sign&nbsp;{&nbsp;get;&nbsp;set;&nbsp;} &nbsp;\/\/\/&nbsp;&lt;summary&gt; &nbsp;\/\/\/&nbsp;\u5546\u54c1\u63cf\u8ff0\u6700\u5927\u957f\u5ea6127 &nbsp;\/\/\/&nbsp;&lt;\/summary&gt; &nbsp;public&nbsp;string&nbsp;body&nbsp;{&nbsp;get;&nbsp;set;&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-29829","post","type-post","status-publish","format-standard","hentry","category-19"],"_links":{"self":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/29829","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=29829"}],"version-history":[{"count":0,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/29829\/revisions"}],"wp:attachment":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/media?parent=29829"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/categories?post=29829"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/tags?post=29829"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}