lcl 2 лет назад
Родитель
Сommit
100695d531

+ 42 - 0
AppStart/Helper/RSAForJava.cs

@@ -100,6 +100,15 @@ namespace MySystem
             AsymmetricKeyParameter priKey = PrivateKeyFactory.CreateKey(privateInfoByte);
             return priKey;
         }
+        private AsymmetricKeyParameter GetPrivateKeyParameter2(string s)
+        {
+            s = s.Replace("\r", "").Replace("\n", "").Replace(" ", "");
+            byte[] privateInfoByte = System.Text.Encoding.UTF8.GetBytes(s);
+            // Asn1Object priKeyObj = Asn1Object.FromByteArray(privateInfoByte);//这里也可以从流中读取,从本地导入   
+            // PrivateKeyInfo privateKeyInfo = PrivateKeyInfoFactory.CreatePrivateKeyInfo(privateKey);
+            AsymmetricKeyParameter priKey = PrivateKeyFactory.CreateKey(privateInfoByte);
+            return priKey;
+        }
         public string EncryptByPrivateKey(string s, string key)
         {
             //非对称加密算法,加解密用  
@@ -154,5 +163,38 @@ namespace MySystem
                 return ex.Message;
             }
         }
+
+        public string DecryptByPrivateKey(string s, string key)
+        {
+            s = s.Replace("\r", "").Replace("\n", "").Replace(" ", "");
+            //非对称加密算法,加解密用  
+            IAsymmetricBlockCipher engine = new Pkcs1Encoding(new RsaEngine());
+
+
+            //解密
+
+            try
+            {
+                engine.Init(false, GetPrivateKeyParameter2(key));
+                byte[] byteData = Convert.FromBase64String(s);
+                string result = "";
+                List<byte> cache = new List<byte>();
+                for (int i = 0; i < byteData.Length; i++)
+                {
+                    cache.Add(byteData[i]);
+                    if ((i + 1) % 256 == 0 || i + 1 == byteData.Length)
+                    {
+                        var ResultData = engine.ProcessBlock(cache.ToArray(), 0, cache.ToArray().Length);
+                        result += System.Text.Encoding.UTF8.GetString(ResultData);
+                        cache.Clear();
+                    }
+                }
+                return result;
+            }
+            catch (Exception ex)
+            {
+                return ex.Message;
+            }
+        }
     }
 }

+ 47 - 12
AppStart/Helper/SetDepositPostService.cs

@@ -1004,16 +1004,16 @@ namespace MySystem
         #region 联动
 
         //测试环境
-        string LDRequestUrl = "http://111.14.221.188:18066/CloudTerminalServiceAction/";
-        string AgentNo = "LD110014";
-        string LDPublicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3WG04QXTzWBg2rj4BbSmnXVTqQiCk2lZ7yi2vur2LxsSc+KN0o1W9y2AkCHcFIAk2aAfMEMQYTO3HQ+F/Vcb27BNBSjnaOLfGv0PXNHKyVzC4EQLe4M5Pqd1wMl6NaZK+HnyrPBTnfsGeywhGJc1Ke96ANrydhk7UbwezydC7nQIDAQAB";
-        string LDPrivateKey = "";
+        // string LDRequestUrl = "http://111.14.221.188:18066/CloudTerminalServiceAction/";
+        // string AgentNo = "LD110014";
+        // string LDPublicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3WG04QXTzWBg2rj4BbSmnXVTqQiCk2lZ7yi2vur2LxsSc+KN0o1W9y2AkCHcFIAk2aAfMEMQYTO3HQ+F/Vcb27BNBSjnaOLfGv0PXNHKyVzC4EQLe4M5Pqd1wMl6NaZK+HnyrPBTnfsGeywhGJc1Ke96ANrydhk7UbwezydC7nQIDAQAB";
+        // string LDPrivateKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJwUiLkXb6zTpvNmB+zTZtuJi97/XCdGBWgiMn/2ayVEtRuarPOvMUQo0aX4Pb/JrfdFyQccXiXFGtmh/m5Mhfuj03t0pOTC4bniQAy2veytDhnRImL1xY9YjSMX+YRXI44VRcNUSefyNmBjL7V1HgbJOfnq/PmVkcBClTf1gtefAgMBAAECgYBRbYkS/34crWNJUq7JyFS+LllRounh9270r/qmtdmaXOkbmKuoinrqc11E+GjGuSJQghDp68vWaqmiZxhFVRkEqPzaesYyMJr73GB/efXhIRWWGCqQvARs3QgOFmCL2YsC/Vq7niI72mmNLC9jOUFN30vCnJH7xI2PljfQKBLwkQJBAN1/JRJmt+2ms/eeGsI/tgClciCAfHzTtAhPHRs7XL98mzk8IDGFjysKsiSacAym5e0xV1uB6ijsuAm61go4b8cCQQC0ZLVyKdUPadhzXSjyOqtk4HVzorHW6OkDCnMazL0CYLxdJOQzrpicPhww0TB397rqLC+FuGEOEcjrDnYyGQlpAkEAq4OU9VbM/h2kJg4rslcbXAzA/yH/Q7m7IuQAKeIhw7V9jShd1XsSjcXOhEGCmolyaeVXO+ixpdcH+6DNtURWaQJACh5L/ydRiBfLyEzFazDXREVC0UWi7AcMats/MZWiVGvQpPjYw/1bGghx1FsneNMwbMolsD5zUzK0LlsVTiIRYQJAZT0p0Mg3kqSaYO2JlC6fTkI9aHMJ50iDr8qLJ2JnrNFylDxxoHwKfA7GxA2KGotguGTKhw7xCp+IyrXtXiuNrQ==";
 
         //生产环境
-        // string LDRequestUrl = "http://ldys.umpay.com/service_exter/CloudTerminalServiceAction/";
-        // string AgentNo = "LD112692";
-        // string LDPublicKey = "";
-        // string LDPrivateKey = "";
+        string LDRequestUrl = "http://ldys.umpay.com/service_exter/CloudTerminalServiceAction/";
+        string AgentNo = "LD112692";
+        string LDPublicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCGtWShTeFEgSSFx3PJXcjCOmS+OgtcUvPOHhpALY3Orm6t7rl1E0n3j7XlM049YwwtGRJI4OWhgrtR4/AnOMBXdyMBoKxF23uay1WQiNekzfUrTwil7/CRrQ+VlGgPe6dr3WQT2/HLbzMnJHeoIZ4KSIj/7pgAwTF4ciL1UC3awwIDAQAB";
+        string LDPrivateKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJwUiLkXb6zTpvNmB+zTZtuJi97/XCdGBWgiMn/2ayVEtRuarPOvMUQo0aX4Pb/JrfdFyQccXiXFGtmh/m5Mhfuj03t0pOTC4bniQAy2veytDhnRImL1xY9YjSMX+YRXI44VRcNUSefyNmBjL7V1HgbJOfnq/PmVkcBClTf1gtefAgMBAAECgYBRbYkS/34crWNJUq7JyFS+LllRounh9270r/qmtdmaXOkbmKuoinrqc11E+GjGuSJQghDp68vWaqmiZxhFVRkEqPzaesYyMJr73GB/efXhIRWWGCqQvARs3QgOFmCL2YsC/Vq7niI72mmNLC9jOUFN30vCnJH7xI2PljfQKBLwkQJBAN1/JRJmt+2ms/eeGsI/tgClciCAfHzTtAhPHRs7XL98mzk8IDGFjysKsiSacAym5e0xV1uB6ijsuAm61go4b8cCQQC0ZLVyKdUPadhzXSjyOqtk4HVzorHW6OkDCnMazL0CYLxdJOQzrpicPhww0TB397rqLC+FuGEOEcjrDnYyGQlpAkEAq4OU9VbM/h2kJg4rslcbXAzA/yH/Q7m7IuQAKeIhw7V9jShd1XsSjcXOhEGCmolyaeVXO+ixpdcH+6DNtURWaQJACh5L/ydRiBfLyEzFazDXREVC0UWi7AcMats/MZWiVGvQpPjYw/1bGghx1FsneNMwbMolsD5zUzK0LlsVTiIRYQJAZT0p0Mg3kqSaYO2JlC6fTkI9aHMJ50iDr8qLJ2JnrNFylDxxoHwKfA7GxA2KGotguGTKhw7xCp+IyrXtXiuNrQ==";
 
         public string LDEncrypt(string data)
         {
@@ -1023,8 +1023,9 @@ namespace MySystem
         public string LDDecrypt(string data)
         {
             var toDecryptArray = Convert.FromBase64String(data);
+            var toKey = Convert.FromBase64String(LDPrivateKey);
             var rsa = RSA.Create();
-            rsa.ImportPkcs8PrivateKey(Convert.FromBase64String(LDPrivateKey), out _);
+            rsa.ImportPkcs8PrivateKey(toKey, out _);
             string result = "";
             List<byte> cache = new List<byte>();
             for (int i = 0; i < toDecryptArray.Length; i++)
@@ -1040,7 +1041,7 @@ namespace MySystem
             return result;
         }
 
-        public string LDServiceFee(string SnList, decimal ServiceFee, int BrandId)
+        public string LDServiceFee(string SnList, int ServiceFee, int BrandId)
         {
             function.WriteLog(DateTime.Now.ToString(), "设置联动机具服务费");
             function.WriteLog(SnList, "设置联动机具服务费");
@@ -1053,15 +1054,49 @@ namespace MySystem
             reqdic.Add("snList", SnList.Split(',').ToList()); //SN号
             reqdic.Add("posType", PosType); //2:电签 3 大pos
             reqdic.Add("terminalModeName", TerminalModeName); //终端模式名
-            reqdic.Add("fwfRate", ServiceFee.ToString("f2")); //服务费
+            reqdic.Add("fwfRate", ServiceFee); //服务费
             string req = Newtonsoft.Json.JsonConvert.SerializeObject(reqdic);
             function.WriteLog(req, "设置联动机具服务费");
+            req = LDEncrypt(req);
+            function.WriteLog(req, "设置联动机具服务费");
+            Dictionary<string, object> datadic = new Dictionary<string, object>();
+            datadic.Add("encryptedData", req);
+            string data = Newtonsoft.Json.JsonConvert.SerializeObject(datadic);
             function.WriteLog("请求地址:" + LDRequestUrl + "terminalSelfDistribute", "设置联动机具服务费");
-            string result = function.PostWebRequest(LDRequestUrl + "terminalSelfDistribute", req, "application/json");
+            string result = function.PostWebRequest(LDRequestUrl + "terminalSelfDistribute", data, "application/json");
             function.WriteLog(result + "\n\n", "设置联动机具服务费");
             return result;
         }
 
+        public string LDFeeRate(string MerNo, decimal Fee, int BrandId)
+        {
+            function.WriteLog(DateTime.Now.ToString(), "设置联动机具费率");
+            function.WriteLog(MerNo, "设置联动机具费率");
+            Dictionary<string, object> reqdic = new Dictionary<string, object>();
+            string RequestId = DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8);
+            string MercModel = BrandId == 10 ? "DZA" : "DZDA";
+            int PosType = BrandId == 10 ? 2 : 3;
+            reqdic.Add("rpid", RequestId); // 请求流水(2字母开头+13位数字)
+            reqdic.Add("agentNumber", AgentNo); // 代理编号
+            reqdic.Add("mercModel", MercModel); // 商户模式
+            reqdic.Add("rate", 0.0063M); // 费率 如 0.0053
+            reqdic.Add("addRate", 0); // 附加费 如0
+            reqdic.Add("rateType", "M015"); // 秒刷 M015 扫码 S010 特惠 T015
+            reqdic.Add("mercId", MerNo); // 商户编号
+            reqdic.Add("cardType", "01"); // 01 贷记卡 02 扫码
+            string req = Newtonsoft.Json.JsonConvert.SerializeObject(reqdic);
+            function.WriteLog(req, "设置联动机具费率");
+            req = LDEncrypt(req);
+            function.WriteLog(req, "设置联动机具费率");
+            Dictionary<string, object> datadic = new Dictionary<string, object>();
+            datadic.Add("encryptedData", req);
+            string data = Newtonsoft.Json.JsonConvert.SerializeObject(datadic);
+            function.WriteLog("请求地址:" + LDRequestUrl + "updateMercRate", "设置联动机具费率");
+            string result = function.PostWebRequest(LDRequestUrl + "updateMercRate", data, "application/json");
+            function.WriteLog(result + "\n\n", "设置联动机具费率");
+            return result;
+        }
+
         #endregion
 
     }

+ 14 - 0
AppStart/Helper/SycnSpServer/SycnSpBindService.cs

@@ -107,6 +107,20 @@ namespace MySystem
                                     db.SaveChanges();
                                 }
 
+                                string IdBrand = pos.BuyUserId + "_" + pos.BrandId;
+                                PxcModels.UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
+                                if (userData == null)
+                                {
+                                    userData = db.UserMachineData.Add(new PxcModels.UserMachineData()
+                                    {
+                                        IdBrand = IdBrand,
+                                    }).Entity;
+                                    db.SaveChanges();
+                                }
+                                userData.BindCount -= 1;
+                                userData.UnBindCount += 1;
+                                db.SaveChanges();
+
                                 BindRecord edit = spdb.BindRecord.FirstOrDefault(m => m.Id == Bind.Id);
                                 if (edit != null)
                                 {

+ 10 - 9
AppStart/Helper/SycnSpServer/SycnSpMerchantService.cs

@@ -47,15 +47,16 @@ namespace MySystem
                                 {
                                     TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
                                 }
-                                int BrandId = int.Parse(Mer.ProductType);
-                                if (BrandId == 1 && Mer.MerNo.StartsWith("M900"))
-                                {
-                                    BrandId = 3;
-                                }
-                                if (BrandId == 4 && Mer.Field1 == "200")
-                                {
-                                    BrandId = 5;
-                                }
+                                int BrandId = pos.BrandId;
+                                // int BrandId = int.Parse(Mer.ProductType);
+                                // if (BrandId == 1 && Mer.MerNo.StartsWith("M900"))
+                                // {
+                                //     BrandId = 3;
+                                // }
+                                // if (BrandId == 4 && Mer.Field1 == "200")
+                                // {
+                                //     BrandId = 5;
+                                // }
 
                                 PxcModels.PosMerchantInfo add = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == Mer.MerNo);
                                 if (add == null)

+ 20 - 7
AppStart/Helper/SycnSpServer/SycnSpTradeService.cs

@@ -173,15 +173,28 @@ namespace MySystem
                                             if (trade.TradeType == "200") QrPayFlag = 1;
                                             if (trade.Field1 == "1") VipFlag = 1;
                                         }
-                                        int BrandId = int.Parse(trade.ProductType);
-                                        if (BrandId == 1 && trade.MerNo.StartsWith("M900"))
+                                        else if (pos.BrandId == 10 || pos.BrandId == 11)
                                         {
-                                            BrandId = 3;
-                                        }
-                                        if (BrandId == 4 && trade.DeviceType == "200")
-                                        {
-                                            BrandId = 5;
+                                            if (trade.BankCardType == "01")
+                                            {
+                                                BankCardType = 1;
+                                            }
+                                            else if (trade.BankCardType == "00")
+                                            {
+                                                BankCardType = 0;
+                                            }
+                                            if (trade.TradeType == "F010") QrPayFlag = 1;
                                         }
+                                        int BrandId = pos.BrandId;
+                                        // int BrandId = int.Parse(trade.ProductType);
+                                        // if (BrandId == 1 && trade.MerNo.StartsWith("M900"))
+                                        // {
+                                        //     BrandId = 3;
+                                        // }
+                                        // if (BrandId == 4 && trade.DeviceType == "200")
+                                        // {
+                                        //     BrandId = 5;
+                                        // }
                                         decimal SourceTradeAmount = TradeAmount;
                                         if (pos.Sort == 0 && pos.BrandId == 7)
                                         {

+ 14 - 4
AppStart/Helper/SycnSpServer/SycnSpUnBindService.cs

@@ -43,23 +43,33 @@ namespace MySystem
                             PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forSnNo.SnId);
                             if (pos.ActivationState == 0 && pos.BuyUserId > 0 && pos.BindingState == 0)
                             {
+                                string BrandName = RelationClass.GetKqProductsInfo(pos.BrandId);
                                 if (forMerNo != null)
                                 {
                                     // 删除对应商户
-                                    PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
+                                    PxcModels.MachineForMerNo MerEdit = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == MerNo);
+                                    if (MerEdit != null)
+                                    {
+                                        db.MachineForMerNo.Remove(MerEdit);
+                                        db.SaveChanges();
+                                    }
+                                    PxcModels.PosMachinesTwo EditPos = db.PosMachinesTwo.FirstOrDefault(m => m.PosSn == PosSn) ?? new PxcModels.PosMachinesTwo();
+                                    PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == EditPos.BindMerchantId);
                                     if(merchant != null)
                                     {
+                                        pos.BindMerchantId = 0;
+                                        pos.BindingState = 0;
+                                        pos.BindingTime = null;
                                         db.PosMerchantInfo.Remove(merchant);
+                                        db.SaveChanges();
                                     }
-                                    db.MachineForMerNo.Remove(forMerNo);
-                                    db.SaveChanges();
                                 }
                                 db.MachineUnBind.Add(new PxcModels.MachineUnBind()
                                 {
                                     CreateDate = DateTime.Now,
                                     MerchantId = pos.BindMerchantId,
                                     AuditDate = DateTime.Now,
-                                    AuditDesc = "乐刷推送解绑",
+                                    AuditDesc = BrandName + "推送解绑",
                                     AuditStatus = 1,
                                     SnNo = pos.PosSn,
                                     BrandId = pos.BrandId,

+ 3 - 1
Controllers/HomeController.cs

@@ -1174,7 +1174,9 @@ namespace MySystem.Controllers
 
         public string test6()
         {
-            string result = SetDepositPostService.Instance.LDServiceFee("33150000002", 299, 8);
+            string result = SetDepositPostService.Instance.LDServiceFee("0000320226636450126740", 99, 11);
+            // string content = "IARp4zPEPPcsJJiFrflSJn2dC+K8M1Aig1ch+39tCejtYfIZf62+0963QDhK6DDr9gh0V817KifLVEaMJwKeoXhH1ez58HvGeQz0xahzhUz8nLnQ1Uf5uw98/fHJabW3kZ0tdEN/2w/0m9g6hLsyQ5TQOoF9a//Pu1jbgQRro9w9GtsEi+IHd3Vlkf/B5vwu1ITAUycopfc27g8JwVC4Q+q+lKz6N00LDxUfBUWbZeidEHeq5rNtffZnSp5rrJ7ZUKqC/OlNYbLICPA/XcbgV7xKRxYAIcqa/mumlF9KyIQO4iYvf65sj5LVP9vh0YaWcEhBYyczwHvTxRni9VV4RCMHiQ9fTOMiPnTn0RyPcOMKzNYyxraDuEmla2c/lKRzZvHNwxIrUzpaTaXs+VmEtpEU/T8BBYxowE5gMt+bm5riJ6qbHmZfrBnqXRsRdk3/STZqZ3Goz9nE7bV0kyqYnpK/sg/qrhLGtAjpu9WvTBo7IrF00rahV4IpVXXKLFvjh+0ghKVglQ7ahUU3jx8RsoK8PTSm9LvKEoEDdmOdK7m2atzm6rG/EB67Rs/Mp1yxZTvjlMBuBMnna3LmLFfCkMRBQlIpha2GZKcc1NyH5z2EMOtxTfrt8rYlMRbYRhviDWk96N2Ha169/jzhye495pFJbbIkWssn9XwbvoB2z0Vmsuk7A+IvQ2paogmgeZGpaguWD5YBRTw5zMKlKMHN/Ph5JLaOvjYaHlYOCRPCrFt7WrAKj/Gobrs3MeMT+Bp1z8TpUWL/PqmGP8q/T+rZ7bX9d6F0QO2wKo631eXe0Z6EOXYaAEd/OAfn2NsSyw6BP5DtHxzLMCLJmMoi3E4llA==";
+            // string result = SetDepositPostService.Instance.LDDecrypt(content);
             return result;
         }