|
@@ -53,50 +53,53 @@ namespace MySystem.Controllers
|
|
|
MerchantAddInfo merchantAdd = db.MerchantAddInfo.FirstOrDefault(m => m.Id == order.MerchantId) ?? new MerchantAddInfo();
|
|
|
|
|
|
//获取结算金额
|
|
|
- string settleString = HaoDaHelper.Instance.QueryOrderDivideDetail(merchantAdd.OutMchtNo, order.SeoTitle);
|
|
|
- JsonData jsonData = JsonMapper.ToObject(settleString);
|
|
|
- if(jsonData["resultCode"].ToString() == "1")
|
|
|
+ if(order.SettleAmount == 0)
|
|
|
{
|
|
|
- string settleAmountString = jsonData["data"]["settleAmount"].ToString();
|
|
|
- order.SettleAmount = int.Parse(settleAmountString);
|
|
|
-
|
|
|
- //发起分账
|
|
|
- decimal fee = order.PayMoney;
|
|
|
- if (fee >= 1)
|
|
|
+ string settleString = HaoDaHelper.Instance.QueryOrderDivideDetail(merchantAdd.OutMchtNo, order.SeoTitle);
|
|
|
+ JsonData jsonData = JsonMapper.ToObject(settleString);
|
|
|
+ if(jsonData["resultCode"].ToString() == "1")
|
|
|
{
|
|
|
- string applyNo = "FZ" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8); //批次号
|
|
|
- string mchtNo = merchantAdd.OutMchtNo; //慧掌柜商户号
|
|
|
- string orderNo = order.SeoTitle; //交易订单号(好哒平台订单号,G开头)
|
|
|
- string acctNo = AppConfig.Haoda.AcctNo; //账户号,分账接收方账户号
|
|
|
- string sacctNo = merchantAdd.MchtNo; //账户号,收款商户号
|
|
|
- string acctType = "0"; //账户类型(0:商户收款账户(大B),1:分账接收方账户(小B))
|
|
|
+ string settleAmountString = jsonData["data"]["settleAmount"].ToString();
|
|
|
+ order.SettleAmount = int.Parse(settleAmountString);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //发起分账
|
|
|
+ decimal fee = order.PayMoney;
|
|
|
+ if (fee >= 1 && order.SettleAmount > 0)
|
|
|
+ {
|
|
|
+ string applyNo = "FZ" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8); //批次号
|
|
|
+ string mchtNo = merchantAdd.OutMchtNo; //慧掌柜商户号
|
|
|
+ string orderNo = order.SeoTitle; //交易订单号(好哒平台订单号,G开头)
|
|
|
+ string acctNo = AppConfig.Haoda.AcctNo; //账户号,分账接收方账户号
|
|
|
+ string sacctNo = merchantAdd.MchtNo; //账户号,收款商户号
|
|
|
+ string acctType = "0"; //账户类型(0:商户收款账户(大B),1:分账接收方账户(小B))
|
|
|
|
|
|
- decimal settleAmount = (decimal)order.SettleAmount / 100M;
|
|
|
- decimal divideAmt = (1 - 0.0038M) * order.PayMoney;
|
|
|
- divideAmt = decimal.Parse(divideAmt.ToString("f2"));
|
|
|
- decimal hdfee = 0.0038M * order.PayMoney * (1 - set.GetPercent / 100 - 0.01M);
|
|
|
- hdfee = decimal.Parse(hdfee.ToString("f2"));
|
|
|
- decimal servicefee = 0.01M * order.PayMoney - hdfee;
|
|
|
- servicefee = decimal.Parse(servicefee.ToString("f2"));
|
|
|
- decimal amount = order.PayMoney * (1 - 0.0038M) - servicefee;
|
|
|
- amount = decimal.Parse(amount.ToString("f2"));
|
|
|
- decimal otherAmt = settleAmount - servicefee - amount;
|
|
|
- if (otherAmt != 0)
|
|
|
- {
|
|
|
- amount += otherAmt;
|
|
|
- }
|
|
|
+ decimal settleAmount = (decimal)order.SettleAmount / 100M;
|
|
|
+ decimal divideAmt = (1 - 0.0038M) * order.PayMoney;
|
|
|
+ divideAmt = decimal.Parse(divideAmt.ToString("f2"));
|
|
|
+ decimal hdfee = 0.0038M * order.PayMoney * (1 - set.GetPercent / 100 - 0.01M);
|
|
|
+ hdfee = decimal.Parse(hdfee.ToString("f2"));
|
|
|
+ decimal servicefee = 0.01M * order.PayMoney - hdfee;
|
|
|
+ servicefee = decimal.Parse(servicefee.ToString("f2"));
|
|
|
+ decimal amount = order.PayMoney * (1 - 0.0038M) - servicefee;
|
|
|
+ amount = decimal.Parse(amount.ToString("f2"));
|
|
|
+ decimal otherAmt = settleAmount - servicefee - amount;
|
|
|
+ if (otherAmt != 0)
|
|
|
+ {
|
|
|
+ amount += otherAmt;
|
|
|
+ }
|
|
|
|
|
|
- amount = amount * 100; //金额(分)
|
|
|
- servicefee = servicefee * 100;
|
|
|
- string seviceAmount = servicefee.ToString("f0"); //服务费
|
|
|
- string amountAmount = amount.ToString("f0");
|
|
|
- string result = HaoDaHelper.Instance.OrderDivideAccounts(OrderDivideAccountsUtil.AddValue(applyNo, mchtNo, orderNo, acctNo, sacctNo, acctType, amountAmount, seviceAmount), merchantAdd.BrandId);
|
|
|
- order.DivideLog = "请求分账日志:" + result;
|
|
|
- order.TradePayNo = applyNo;
|
|
|
- if (result.Contains("\"resultCode\":\"0\"") && (result.Contains("分账金额不足") || result.Contains("不存在")))
|
|
|
- {
|
|
|
- Status = 1;
|
|
|
- }
|
|
|
+ amount = amount * 100; //金额(分)
|
|
|
+ servicefee = servicefee * 100;
|
|
|
+ string seviceAmount = servicefee.ToString("f0"); //服务费
|
|
|
+ string amountAmount = amount.ToString("f0");
|
|
|
+ string result = HaoDaHelper.Instance.OrderDivideAccounts(OrderDivideAccountsUtil.AddValue(applyNo, mchtNo, orderNo, acctNo, sacctNo, acctType, amountAmount, seviceAmount), merchantAdd.BrandId);
|
|
|
+ order.DivideLog = "请求分账日志:" + result;
|
|
|
+ order.TradePayNo = applyNo;
|
|
|
+ if (result.Contains("\"resultCode\":\"0\"") && (result.Contains("分账金额不足") || result.Contains("不存在")))
|
|
|
+ {
|
|
|
+ Status = 1;
|
|
|
}
|
|
|
}
|
|
|
}
|