123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 |
- 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<Admin.Controllers.BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
- {
- }
- public string test()
- {
- Dictionary<string, object> data = new Dictionary<string, object>();
- //商户
- // 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<byte> cache = new List<byte>();
- // 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;
- }
- }
- }
|