using System; using System.Collections.Generic; using System.Linq; using System.Web; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Http; using System.IO; using Library; using LitJson; using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; namespace MySystem.Areas.Api.Controllers { [Area("Api")] [Route("Api/[controller]/[action]")] public class TestController : Admin.Controllers.BaseController { public TestController(IHttpContextAccessor accessor, ILogger logger, IOptions setting) : base(accessor, logger, setting) { } public string test() { Dictionary data = new Dictionary(); //商户 // data.Add("MerNo", "5678679878"); // data.Add("MerName", "测试商户"); // data.Add("MerMobile", "13584849565"); // data.Add("ProductType", "6"); // data.Add("MerSnNo", "00005702830310395949"); // data.Add("MerRegDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); // data.Add("MerBindDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); // data.Add("MerIdcardNo", "624369198812120369"); // data.Add("MerRealName", "唐明皇"); // data.Add("BizEnterNo", ""); // data.Add("BizEnterName", ""); // data.Add("SourceType", ""); // data.Add("Province", "四川省"); // data.Add("City", "成都市"); // data.Add("Remark", "商户入驻"); // data.Add("CreateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); // data.Add("UpdateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); //激活 // data.Add("MerNo", "5678679878"); // data.Add("MerName", "测试商户"); // data.Add("MerMobile", "13584849565"); // data.Add("ProductType", "6"); // data.Add("MerSnNo", "00005702830310395949"); // data.Add("MerRegDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); // data.Add("AssessMonth", "202201"); // data.Add("AssessMonthCount", "1"); // data.Add("ActivateStatus", "1"); // data.Add("ActivateDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); // data.Add("MerRealName", "唐明皇"); // data.Add("MerIdcardNo", "624369198812120369"); // data.Add("BizEnterNo", ""); // data.Add("BizEnterName", ""); // data.Add("ActVerifyFlag", "1"); // data.Add("Remark", "机具激活"); // data.Add("CreateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); // data.Add("UpdateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); //交易 // data.Add("TradeSerialNo", "T0000002343445654656"); // data.Add("MerNo", "5678679878"); // data.Add("MerName", "测试商户"); // data.Add("TradeAmount", "8000.00"); // data.Add("TradeReferNo", "T0000002343445654656"); // data.Add("BankAuthCode", "46498763614"); // data.Add("DiscountRateFlag", "1"); // data.Add("ProductType", "6"); // data.Add("Trade_status", "1"); // data.Add("ErrorCode", "00"); // data.Add("ErrorMsg", ""); // data.Add("TradeDate", DateTime.Now.ToString("yyyyMMdd")); // data.Add("TradeTime", DateTime.Now.ToString("HHmmss")); // data.Add("TradeType", "1"); // data.Add("SerEntryMode", "021"); // data.Add("BankCardType", "0001"); // data.Add("TradeSnNo", "00005702830310395949"); // data.Add("DeviceType", "1"); // data.Add("MerMobile", "13584849565"); // data.Add("DigAmtFlag", "1"); // data.Add("DigAmt", "298"); // data.Add("IsStoreCashier", "2"); // data.Add("ReceiptType", "KuaiPOS"); // data.Add("Remark", "刷卡交易"); // data.Add("CreateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); // data.Add("UpdateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); // 流量卡交易 // data.Add("TradeSerialNo", "T0000002343445654656"); // data.Add("MerNo", "5678679878"); // data.Add("MerName", "测试商户"); // data.Add("TradeAmount", "8000.00"); // data.Add("ProductType", "6"); // data.Add("TradeStatus", "1"); // data.Add("TradeDate", DateTime.Now.ToString("yyyyMMdd")); // data.Add("TradeTime", DateTime.Now.ToString("HHmmss")); // data.Add("BankCardType", "0001"); // data.Add("TradeSnNo", "00005702830310395949"); // data.Add("DigAmtFlag", "1"); // data.Add("DigAmt", "298"); // data.Add("Remark", "流量卡交易"); // data.Add("CreateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); // data.Add("UpdateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); // data.Add("BankCardNo", "3565978645364"); // data.Add("FeeAmount", "10.00"); // data.Add("SettleMethod", "1"); // data.Add("SettleFee", "1"); // data.Add("SmallDouble", "1"); // data.Add("BizEnterNo", ""); // data.Add("BizEnterName", ""); // data.Add("SourceType", "1"); // data.Add("BillType", "1"); // data.Add("KqTradeSeq", ""); // data.Add("InputModel", ""); // data.Add("TerminalNo", "554569879797"); // data.Add("DeviceNetwork", "4G"); // 商户在网达标 data.Add("AgentName", "快闪刷"); data.Add("MerNo", "5678679878"); data.Add("MerName", "测试商户"); data.Add("ProductType", "6"); data.Add("MerBindDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); data.Add("MerSnNo", "00005702830310395949"); data.Add("ActNo", "1"); data.Add("ActName", "测试活动"); data.Add("MerStdStage", "1"); data.Add("MerStdDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); data.Add("MerStdStatus", "1"); data.Add("NewFlag", "1"); data.Add("Remark", "商户在网达标"); data.Add("CreateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); data.Add("UpdateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); string req = Newtonsoft.Json.JsonConvert.SerializeObject(data); string result = function.PostWebRequest(Host + "kss/stagerwd/6", req, "application/json"); return result; } public string GetLog(string date, string filename = "金控推送消息") { string[] datelist = date.Split('-'); return function.ReadInstance("/log/" + filename + "/" + datelist[0] + "/" + datelist[1] + "/" + datelist[2] + "/content.log"); } public string test2() { //{"Cache-Control":["max-age=259200"],"Connection":["keep-alive"],"Via":["1.1 T-IntPay3-squid01 (squid/3.1.23)"],"Content-Type":["application/json"],"Accept":["application/json, application/*+json"],"Accept-Encoding":["gzip,deflate"],"Host":["sp.kexiaoshuang.com"],"User-Agent":["Apache-HttpClient/4.5.13 (Java/11.0.11)"],"Content-Length":["1050"],"X-Forwarded-For":["10.84.1.137, 110.43.212.253"],"X-Forwarded-Proto":["http"],"paas-sw8":["1-OGQ2YzBiMGQ2NDYwNDViOWIyNWM1NmU5NDQ3NGFiYmMuMTMyLjE2NDY2NDE0NjYyNjIwMTU5-OGQ2YzBiMGQ2NDYwNDViOWIyNWM1NmU5NDQ3NGFiYmMuMTMyLjE2NDY2NDE0NjYyNjIwMTU4-0-cGFhcy1wdXNoLXNlcnZpY2U=-NzM5ZTJhZGVlOWUyNDdkNDg5ZmQxYWU2MzA1ZGM1ZmZAMTcyLjE2OC43LjE4MA==-L3RyYW5zT3JkZXJOb2ZpdHk=-c3Aua2V4aWFvc2h1YW5nLmNvbTo4MA=="],"paas-sw8-correlation":[""],"paas-sw8-x":["0-"],"X-Security":["RSA"],"X-Client-ID":["mfe88"],"X-TopOrgNum":["1243966544896"],"X-Sign":["pCgL/g5DWTz1oRVvUeVy17fEfSJe2NdaJV6Eyx0IYNrWvNSX5J6k1Fz9Bp2TtISOk7YzADNYdrNMqKVQGAJjLQRDpPWsdCbJH2OZ1t3MddFQSYv1NEiuyMK67mLZhr0G07Y/kZZbIrUlKnybcBnmg1UX1vWppmsusBSpF3JlH+k="]} //{"trace":"N/A","param":"cMhBkf3eK5E0KXQQjSlbWaM0HZFeYEjh1vB0WFa4WerjYWu3hmQCpZuicojVy9hewRZq8rlCZBB3asKLjRZpEWfJI/C6cSnTd4uk2d3epQ6AcEx6dG8PA/N8RMPimniMYx0gWVkq36PDlkwYmcMNl7wY3lnAtTCiivJTDzSnzjhNTWfcaR85WTx1wYjY/1rgoo89gpLFxpJP2xO4+RPLYdfzF7ZTHg98lzkg+BNcC6R7urBYk1KAQFTDcdAWxno579wSUOqwPM1VAAv6Dq8Q14ZL/MqavngBhvHpD8rgH4dsZfIlCPIdhKPmKKptJATG3qEwt20+cWHKwad0YOGzvE0hVGYEaR0niY9l+13CoSQN//750bZ0b0ygl+ZGsTbXl41qfArPZdwMzIarJq4l1owhaGkgo+oX2oPfUeJNQe0SREiosvLc9l/ow+QOxmn4D/lgwjBgveEH9O22IO62meviqUN+xmMB3uS4Svol8K4Yjgkt9zyrVFnA1jA+0YlKe9hn5pouFSGOqvmfyWqjaMe7ra3j/OGPYFhUj1IuK0BPiv9koU6kS9fOoWkc5P4BXKMWZSGYjizHhe3PQJwPKBVVgj9HwHQRrSxfbcGLBjyMWcTSIhStN3akI0jdD20DXwCX0ZUX4QhQyabxi8+CY95/fSGVuemlqnO3n1a8+yIwNyTnTxmr7OdbmiquqjKZAuXwGBaAIMQR81VVaxzOGiyxHWaT2qdbQIywt5IyybgKn2afPaZVckw21YoleXjmsXTbxpOfx4IcQXw3hJ99Fy2EOb1tRUd9+hcksfpAbmQ+PcV49MoGBL94rMHrHpBHlHQd3+ddW7YtQPECxcqCNFNS9hdOFcf9QO55QQn6fDbxFw7FWvgPY7ixeiK24MzI0lxRSMFtQQkcrfImpkP0oA18Pp72NSvI6FsHb40k2lgM7LdawnluVvTc+g/WkrK61M98wqviWnazr7KR/ZBgIavjVkP1DtjxhSsIlpDdTBrv5QukWpMUqUWhvvuEPMI+"} string signStr = "pCgL/g5DWTz1oRVvUeVy17fEfSJe2NdaJV6Eyx0IYNrWvNSX5J6k1Fz9Bp2TtISOk7YzADNYdrNMqKVQGAJjLQRDpPWsdCbJH2OZ1t3MddFQSYv1NEiuyMK67mLZhr0G07Y/kZZbIrUlKnybcBnmg1UX1vWppmsusBSpF3JlH+k="; string param = "cMhBkf3eK5E0KXQQjSlbWaM0HZFeYEjh1vB0WFa4WerjYWu3hmQCpZuicojVy9hewRZq8rlCZBB3asKLjRZpEWfJI/C6cSnTd4uk2d3epQ6AcEx6dG8PA/N8RMPimniMYx0gWVkq36PDlkwYmcMNl7wY3lnAtTCiivJTDzSnzjhNTWfcaR85WTx1wYjY/1rgoo89gpLFxpJP2xO4+RPLYdfzF7ZTHg98lzkg+BNcC6R7urBYk1KAQFTDcdAWxno579wSUOqwPM1VAAv6Dq8Q14ZL/MqavngBhvHpD8rgH4dsZfIlCPIdhKPmKKptJATG3qEwt20+cWHKwad0YOGzvE0hVGYEaR0niY9l+13CoSQN//750bZ0b0ygl+ZGsTbXl41qfArPZdwMzIarJq4l1owhaGkgo+oX2oPfUeJNQe0SREiosvLc9l/ow+QOxmn4D/lgwjBgveEH9O22IO62meviqUN+xmMB3uS4Svol8K4Yjgkt9zyrVFnA1jA+0YlKe9hn5pouFSGOqvmfyWqjaMe7ra3j/OGPYFhUj1IuK0BPiv9koU6kS9fOoWkc5P4BXKMWZSGYjizHhe3PQJwPKBVVgj9HwHQRrSxfbcGLBjyMWcTSIhStN3akI0jdD20DXwCX0ZUX4QhQyabxi8+CY95/fSGVuemlqnO3n1a8+yIwNyTnTxmr7OdbmiquqjKZAuXwGBaAIMQR81VVaxzOGiyxHWaT2qdbQIywt5IyybgKn2afPaZVckw21YoleXjmsXTbxpOfx4IcQXw3hJ99Fy2EOb1tRUd9+hcksfpAbmQ+PcV49MoGBL94rMHrHpBHlHQd3+ddW7YtQPECxcqCNFNS9hdOFcf9QO55QQn6fDbxFw7FWvgPY7ixeiK24MzI0lxRSMFtQQkcrfImpkP0oA18Pp72NSvI6FsHb40k2lgM7LdawnluVvTc+g/WkrK61M98wqviWnazr7KR/ZBgIavjVkP1DtjxhSsIlpDdTBrv5QukWpMUqUWhvvuEPMI+"; string prikey = "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAJvzrW657LXbnZZ1Lwo94EH6+bkAgEQpyWx8HNUtjVxleKIRsicKaypPp9I74DrCNbImLEYLNkgKZTGF0HO6jcO7ZhNu6j59GVXoNbWZuC4FXz+Xb4sm+G3SOXzsnw3iyQVTO8B5gqlYNfp0LpwvOObmfIjU6sJCrSWxY8QwMI0DAgMBAAECgYAjE0dqo/6NWHu1H14ZG5mYvW31Ihu3OP7Im5GQkNI+ecQMD5bWGQ3JUmkYa8ce8BdLnjJO/q6SvWPNI5+ip87CYPH1SMXKUiSLzaCrw4xMySW9PSnudTzJwhrmlmyjYTAg70tHf2YQC4YkNvtkR+PJ2yf6JEKGFVgP5p2KyeKXgQJBANjGryxyu95QC3jIaggcYmGD36sVO/ns8Uyu8PkAHYOscuXRcV0L8LghIzPolcehj9bTbDLjiuNgeuyjNs2YBvMCQQC4K4uIXt0kVDLYzlJfhN1CsV90vQitcKdD8wTO0JRKfMCQ6UDSumU7lq+z4TxTlRYxmZjpgIqH+N0WohmEiwWxAkBEfuMzBD3gjSJS0+DNF0ruzSCLinYdDoVgWZbC1wp8ZK0ZeQh9AhzZ0X6yFDffkGlG1B9IJSXpmr68rwXOCM+JAkBkrKEUxc6bGk/FRluvDWEqIO2uUdtZfBhjQ4ggSdKWOUXGsUsXJn9KKKAZc4lXo0rDiFQXaIXRuE+bHLdYReqxAkAj0Kol0LkJgdl2PoBAeyQHTpt9nxaeNX56W7CN/srBA1O2wr+aoQiJaKsu9I0EeW3zaMJlLi3VyjU4wnF+yAsB"; string pubkey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCy8cg6/tXbSj2i1tyi7VztwJw7uNmqc3bS6sVIZkDYhTmcXhpV17jq4j2zz/tURwX8b3MdK1A1HTR1XRd7hl0w2UF9iFk6UezByJ5tdNDoffMCGJtVSThq+MCV+WQI26tJ/ub6bm7GPrzTR79fntN+nTniRM4trjONN2WzEhHEcwIDAQAB"; return sign(param, signStr, prikey, pubkey); } //设置押金 public string SetDeposit(string sn, decimal num) { string content = PublicImportDataService.Instance.SetDeposit(sn, num); JsonData obj = JsonMapper.ToObject(content); if (obj["code"].ToString() == "000000") { content += "\n" + PublicImportDataService.Instance.Decrypt(obj["data"].ToString()); } return content; } //设置费率 public string SetFee(string merNo, string sn, decimal fee = 0.6M) { string content = PublicImportDataService.Instance.SetFee(merNo, sn, fee); // JsonData obj = JsonMapper.ToObject(content); // if (obj["code"].ToString() == "000000") // { // content += "\n" + PublicImportDataService.Instance.Decrypt(obj["data"].ToString()); // } return content; } public string sign(string data, string signStr, string privateKey, string publicKey) { using (var x509 = new X509Certificate2(Convert.FromBase64String(publicKey))) { using (var rsa = x509.GetRSAPublicKey()) { var signstr = rsa.VerifyData(System.Text.Encoding.UTF8.GetBytes(data), System.Text.Encoding.UTF8.GetBytes(signStr), HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1); //签名 return signstr.ToString(); } } // var toDecryptArray = Convert.FromBase64String(data); // var rsa2 = RSA.Create(); // rsa2.ImportPkcs8PrivateKey(Convert.FromBase64String(privateKey), out _); // string result = ""; // List cache = new List(); // for (int i = 0; i < toDecryptArray.Length; i++) // { // cache.Add(toDecryptArray[i]); // if ((i + 1) % 128 == 0 || i + 1 == toDecryptArray.Length) // { // var ContentArray = rsa2.Decrypt(cache.ToArray(), RSAEncryptionPadding.Pkcs1); // result += System.Text.Encoding.UTF8.GetString(ContentArray); // cache.Clear(); // } // } // return result; } } }