Commit f99ccbc4 authored by 吴春's avatar 吴春

提交支付回调修改

parent 341670f7
......@@ -37,5 +37,11 @@ namespace Edu.Cache
/// </summary>
public static string Student_Frozen_Key = "Edu_Student_Frozen_";
/// <summary>
/// 微信支付回调key
/// </summary>
public static string WeChatPay_Callback_Key = "WeChatPay_Callback_Key_";
}
}
......@@ -71,12 +71,32 @@ namespace Edu.Cache.User
{
TimeSpan ts = GetExpirTime(JwtExpirTime);
redis.StringSet(cacheKey, Data, ts);
}
catch (Exception)
{
}
}
/// <summary>
/// 获取缓存
/// </summary>
/// <param name="cacheKey"></param>
/// <param name="Data"></param>
/// <param name="JwtExpirTime"></param>
public static object Get(string cacheKey, object Data, int JwtExpirTime)
{
try
{
object info = redis.StringGet<object>(cacheKey);
return info;
}
catch (Exception)
{
return "";
}
}
/// <summary>
/// 账号仓储层对象
/// </summary>
......@@ -88,7 +108,7 @@ namespace Edu.Cache.User
/// <param name="Id">账号Id</param>
/// <param name="apiRequestFromEnum">请求来源</param>
/// <returns></returns>
public static UserInfo GetUserLoginInfo(object Id, ApiRequestFromEnum apiRequestFromEnum= ApiRequestFromEnum.WebAdmin)
public static UserInfo GetUserLoginInfo(object Id, ApiRequestFromEnum apiRequestFromEnum = ApiRequestFromEnum.WebAdmin)
{
UserInfo userInfo = null;
if (Id != null)
......@@ -100,7 +120,7 @@ namespace Edu.Cache.User
}
catch (Exception ex)
{
Common.Plugin.LogHelper.Write(ex, "GetUserLoginInfo");
Common.Plugin.LogHelper.Write(ex, "GetUserLoginInfo");
}
if (userInfo == null)
{
......
......@@ -190,5 +190,10 @@ namespace Edu.Model.Entity.Course
/// 补课课时
/// </summary>
public int MakeUpHours { get; set; }
/// <summary>
/// 学生头像
/// </summary>
public string StuIcon { get; set; }
}
}
......@@ -963,7 +963,7 @@ namespace Edu.Module.Course
{
list.Add(new
{
UserIcon = "",
UserIcon = item.StuIcon,
item.Id,
SexStr = item.Sex == 1 ? "男" : "女",
item.GuestName,
......
......@@ -1525,6 +1525,13 @@ namespace Edu.Module.Course
{
LogContent += ",总课时由【" + gModel.TotalHours + "】修改为【" + dmodel.TotalHours + "】";
}
if (gModel.StuIcon != dmodel.StuIcon)
{
LogContent += ",学生头像由【" + gModel.StuIcon + "】修改为【" + dmodel.StuIcon + "】";
}
gModel.StuIcon = dmodel.StuIcon;
gModel.TotalHours = dmodel.TotalHours;
gModel.UpdateTime = dmodel.UpdateTime;
......@@ -1543,6 +1550,19 @@ namespace Edu.Module.Course
School_Id = dmodel.School_Id,
SourceId = gModel.OrderId
});
if (!string.IsNullOrWhiteSpace(dmodel.StuIcon))//更新学生表中的头像
{
var orderGuestModel = student_OrderGuestRepository.GetStrOrderGuestListRepository(new RB_Student_OrderGuest_ViewModel { ClassId = gModel.ClassId, OrderId = gModel.OrderId, GuestId = gModel.Id }).FirstOrDefault();
if (orderGuestModel != null && orderGuestModel.Student_Id > 0)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Student_ViewModel.StuIcon),dmodel.StuIcon},
};
studentRepository.Update(fileds, new WhereHelper(nameof(RB_Student_ViewModel.StuId), orderGuestModel.Student_Id));
}
}
}
}
else
......@@ -1603,12 +1623,13 @@ namespace Edu.Module.Course
School_Id = classmodel.School_Id,
Status = DateStateEnum.Normal,
StuBirth = dmodel.BirthDate,
StuIcon = "",
StuIcon = dmodel.StuIcon,
StuName = dmodel.GuestName,
StuSex = dmodel.Sex - 1,
StuTel = dmodel.Mobile,
UpdateBy = dmodel.CreateBy,
UpdateTime = DateTime.Now
UpdateTime = DateTime.Now,
});
int AccountId = accountRepository.Insert(new Model.Entity.User.RB_Account()
{
......@@ -1650,7 +1671,7 @@ namespace Edu.Module.Course
Group_Id = dmodel.Group_Id,
LogContent = LogContent,
School_Id = dmodel.School_Id,
SourceId = dmodel.OrderId
SourceId = dmodel.OrderId,
});
}
}
......
......@@ -1435,6 +1435,23 @@ namespace Edu.WebApi.Controllers.Course
bool retult = classModule.UpdateTimeClassVideo(extModel.VideoUrl, extModel.ClassTimeId);
return retult ? ApiResult.Success("课堂视频更新成功") : ApiResult.Failed("课堂视频更新失败");
}
/// <summary>
/// 获取学员列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Microsoft.AspNetCore.Authorization.AllowAnonymous]
public ApiResult GetStudentByClassId()
{
var classId = base.ParmJObj.GetInt("ClassId");
var schoolId = 0;
var Group_Id = base.ParmJObj.GetInt("Group_Id", 100000);
var data = classModule.GetClassStudentListModule(classId, schoolId, Group_Id);
return ApiResult.Success(data: data);
}
#endregion
}
......
......@@ -883,6 +883,7 @@ namespace Edu.WebApi.Controllers.Course
x.VolunteerMajor,
x.Price,
x.StudyRemark,
x.StuIcon
});
return ApiResult.Success("", pageModel);
}
......@@ -920,7 +921,8 @@ namespace Edu.WebApi.Controllers.Course
Price=base.ParmJObj.GetDecimal("Price"),
StudyRemark=base.ParmJObj.GetStringValue("StudyRemark"),
BirthDate=base.ParmJObj.GetDateTime("BirthDate"),
TotalHours=base.ParmJObj.GetInt("TotalHours")
TotalHours=base.ParmJObj.GetInt("TotalHours"),
StuIcon = base.ParmJObj.GetStringValue("StuIcon"),
};
if (dmodel.OrderId <= 0)
{
......
......@@ -93,10 +93,14 @@ namespace Edu.WebApi.Controllers.WeChatPay
var resource = wxPayNotifyModel?.resource ?? new WxPayResourceModel();
var decryptStr = AesGcmHelper.AesGcmDecrypt(resource.associated_data, resource.nonce, resource.ciphertext, WxPayConst.APIV3Key);
LogHelper.WriteInfo("订单回调信息decryptStr" + decryptStr);
var decryptModel = Common.Plugin.JsonHelper.DeserializeObject<WxPayResourceDecryptModel>(decryptStr); //decryptStr.ToObject<WxPayResourceDecryptModel>();
var payModel = Common.Plugin.JsonHelper.DeserializeObject<WxPayResourceDecryptModel>(decryptStr); //decryptStr.ToObject<WxPayResourceDecryptModel>();
if (string.IsNullOrEmpty(decryptModel.out_trade_no))
if (payModel.trade_state == "SUCCESS")
{
viewModel.code = "SUCCESS";
viewModel.message = "";
}
if (string.IsNullOrEmpty(payModel.out_trade_no))
{
viewModel.code = "FAIL";
viewModel.message = "数据解密失败";
......@@ -104,137 +108,14 @@ namespace Edu.WebApi.Controllers.WeChatPay
}
else
{
var payModel = await QueryOrder(decryptModel.out_trade_no);
if (payModel != null && payModel.trade_state == "SUCCESS")//生成财务单据
{
lock (_lock)
{
int contractId = Convert.ToInt32(payModel.out_trade_no[17..]);
var orderModle = educationContractModule.GetEducationContractModule(contractId);
var orderModel = orderModule.GetClassOrderInfo(orderModle.OrderId);
var financeConfig = educationContractModule.GetFinanceConfigList(new Model.ViewModel.Course.RB_Finance_Config_ViewModel { Group_Id = orderModle.Group_Id, Type = Common.Enum.Course.FinanceConfigTypeEnum.Tuition }).FirstOrDefault();
if (financeConfig == null)
{
financeConfig = new Model.ViewModel.Course.RB_Finance_Config_ViewModel();
}
var userInfo = employeeModule.GetEmployeeListModule(new Model.ViewModel.User.Employee_ViewModel { Id = orderModel.EnterID, Group_Id = orderModel.Group_Id }).ToList().FirstOrDefault();
var OriginalFee = Math.Round((Convert.ToDecimal(Config.SettlementRate) / 100) * (Convert.ToDecimal(payModel.amount.payer_total) / 100), 2, MidpointRounding.AwayFromZero);//手续费
RB_Online_Trade_Detail model = new RB_Online_Trade_Detail();
RB_Finance_OrderRecord orderRecordModel = new RB_Finance_OrderRecord
{
ID = 0,
Type = 1,
FinanceId = 0,
OrderId = orderModle.OrderId,
ContractId = orderModle.Id,
CreateDate = System.DateTime.Now,
RB_Group_Id = orderModle.Group_Id,
RB_School_Id = orderModle.School_Id,
OutTradeNo = payModel.out_trade_no,
TransactionId = payModel.transaction_id,
TotalPrice = Convert.ToDecimal(payModel.amount.payer_total) / 100,
ServiceFee = OriginalFee
};
var detailList = new List<object>();
detailList.Add(new
{
CostTypeId = financeConfig?.CostTypeId ?? 533,
Number = 1,
OriginalMoney = Convert.ToDecimal(payModel.amount.payer_total) / 100,
UnitPrice = Convert.ToDecimal(payModel.amount.payer_total) / 100,
Remark = orderModle.StudentName + orderModle.CourseName + payModel.out_trade_no
});
var financeObj = new
{
IsPublic = 1,
BType = 1,//item.AccountType,
AccountId = financeConfig?.ClientID ?? 54,
WBMoney = Convert.ToDecimal(payModel.amount.payer_total) / 100,
TradeDate = System.DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"),
AccountNumber = System.DateTime.Now.AddDays(-1).ToString("yyyyMMdd"),
TemplateId = financeConfig?.TempleteId ?? 139,
OrderSource = 17,
Remark = System.DateTime.Now.ToString("yyyy年MM月dd日") + "自动生成财务单据",
detailList,
OriginalFee,
CreateBy = userInfo.Id,
RemitterName = orderModle.StudentName,
RB_Branch_Id = userInfo.School_Id,
RB_Group_Id = userInfo.Group_Id,
RB_Depart_Id = userInfo.Dept_Id,
RB_CreateByName = userInfo.EmployeeName,
RB_DepartName = userInfo.DeptName,
RB_BranchName = userInfo.SchoolName,
RB_GroupName = userInfo.GroupName,
FinanceType = 2,
GuestId = orderModle.GuestId,
OrderId = orderModle.OrderId,
TCIDList = orderModel.ClassId > 0 ? new List<int>() { orderModel.ClassId } : new List<int>(),
};
string sign = EncryptionHelper.AesEncrypt(JsonHelper.Serialize(financeObj), Config.FinanceKey);
var resultInfo = new
{
msg = sign,
};
string apiResult = Common.Plugin.HttpHelper.HttpPost(Config.ReadConfigKey("IncomeFinanceApi"), JsonHelper.Serialize(resultInfo), "");
JObject parmsJob = JObject.Parse(apiResult);
string resultCode = parmsJob.GetStringValue("resultCode");
int frid = parmsJob.GetInt("data", 0);
if (resultCode == "1" && frid > 0)//新增记录
{
orderRecordModel.FinanceId = frid;
model = new RB_Online_Trade_Detail
{
ID = 0,
Type = 1,
OrderSource = 18,
OrderId = orderModle.OrderId,
Pay_Order = "",
Trade_Order = payModel.out_trade_no,
Third_Order = payModel.transaction_id,
Money = Convert.ToDecimal(payModel.amount.payer_total) / 100,
Pay_Way = 1,
Interface_Company = 0,
Version = "",
Mch_Id = WxPayConst.mchid,
User_Id = orderModle.GuestId.ToString(),
Is_follow = 0,
AppId = WxPayConst.appid,
OpenId = payModel?.payer?.openid ?? "",
Currency_Type = payModel.amount.payer_currency,
Institution_Type = "",
Card_Type = 0,
Remarks = "教育订单信息财务单据:" + frid,
Pay_Result = 0,
Pay_Date = !string.IsNullOrWhiteSpace(payModel?.success_time ?? "") ? DateTime.SpecifyKind(Convert.ToDateTime(payModel.success_time), DateTimeKind.Utc) : Convert.ToDateTime("1990-01-01"),
Payer_Id = orderModle.GuestId,
Payer_Type = 0,
Data_Source = frid,
RB_Group_Id = orderModle.Group_Id,
RB_Branch_Id = orderModle.School_Id,
IsRefund = 0,
RefundTrade_Order = "",
RefundMoney = 0,
RefundStatus = 0,
FinanceId = 0,
};
}
bool result = educationContractModule.SetEducationContractFinance(model, orderRecordModel);
}
if (payModel != null && payModel.trade_state == "SUCCESS")//生成财务单据
{ //然后进行数据库更新处理……等等其他操作
UpdateFinance(payModel);//生成财务单据以及生成支付记录
viewModel.code = "SUCCESS";
viewModel.message = "数据接收成功";
viewModel.message = "";
}
//然后进行数据库更新处理……等等其他操作
}
}
catch (Exception ex)
{
......@@ -244,6 +125,161 @@ namespace Edu.WebApi.Controllers.WeChatPay
return viewModel;
}
/// <summary>
/// 生成财务单据以及生成支付记录
/// </summary>
/// <param name="payModel"></param>
/// <returns></returns>
[AllowAnonymous]
public async Task UpdateFinance(WxPayResourceDecryptModel payModel)
{
LogHelper.WriteInfo("我是回调" + System.DateTime.Now);
int contractId = Convert.ToInt32(payModel.out_trade_no[17..]);
bool isAdd = false;
if (!Cache.User.UserReidsCache.Exists(Cache.CacheKey.WeChatPay_Callback_Key + payModel.out_trade_no))
{
LogHelper.WriteInfo(payModel.out_trade_no + "我是回调:" + System.DateTime.Now);
Cache.User.UserReidsCache.Set(Cache.CacheKey.WeChatPay_Callback_Key + payModel.out_trade_no, payModel.out_trade_no, 1800);
isAdd = true;
Cache.User.UserReidsCache.Set(Cache.CacheKey.WeChatPay_Callback_Key + payModel.out_trade_no, payModel.out_trade_no, 1800);
var oldOrderRecordModel = educationContractModule.GetOrderRecordList(new RB_Finance_OrderRecord { ContractId = contractId, OutTradeNo = payModel.out_trade_no }).FirstOrDefault();
if (oldOrderRecordModel == null || oldOrderRecordModel.ID == 0)
{
isAdd = true;
}
if (isAdd)
{
LogHelper.WriteInfo(payModel.out_trade_no + "我要新增财务单据啦...." + System.DateTime.Now);
var orderModle = educationContractModule.GetEducationContractModule(contractId);
var orderModel = orderModule.GetClassOrderInfo(orderModle.OrderId);
var financeConfig = educationContractModule.GetFinanceConfigList(new Model.ViewModel.Course.RB_Finance_Config_ViewModel { Group_Id = orderModle.Group_Id, Type = Common.Enum.Course.FinanceConfigTypeEnum.Tuition }).FirstOrDefault();
if (financeConfig == null)
{
financeConfig = new Model.ViewModel.Course.RB_Finance_Config_ViewModel();
}
var userInfo = employeeModule.GetEmployeeListModule(new Model.ViewModel.User.Employee_ViewModel { Id = orderModel.EnterID, Group_Id = orderModel.Group_Id }).ToList().FirstOrDefault();
var OriginalFee = Math.Round((Convert.ToDecimal(Config.SettlementRate) / 100) * (Convert.ToDecimal(payModel.amount.payer_total) / 100), 2, MidpointRounding.AwayFromZero);//手续费
RB_Online_Trade_Detail model = new RB_Online_Trade_Detail();
RB_Finance_OrderRecord orderRecordModel = new RB_Finance_OrderRecord
{
ID = 0,
Type = 1,
FinanceId = 0,
OrderId = orderModle.OrderId,
ContractId = orderModle.Id,
CreateDate = System.DateTime.Now,
RB_Group_Id = orderModle.Group_Id,
RB_School_Id = orderModle.School_Id,
OutTradeNo = payModel.out_trade_no,
TransactionId = payModel.transaction_id,
TotalPrice = Convert.ToDecimal(payModel.amount.payer_total) / 100,
ServiceFee = OriginalFee
};
#region 财务单据数据组装
var detailList = new List<object>();
detailList.Add(new
{
CostTypeId = financeConfig?.CostTypeId ?? 533,
Number = 1,
OriginalMoney = Convert.ToDecimal(payModel.amount.payer_total) / 100,
UnitPrice = Convert.ToDecimal(payModel.amount.payer_total) / 100,
Remark = orderModle.StudentName + orderModle.CourseName + payModel.out_trade_no
});
var financeObj = new
{
IsPublic = 1,
BType = 1,//item.AccountType,
AccountId = financeConfig?.ClientID ?? 54,
WBMoney = Convert.ToDecimal(payModel.amount.payer_total) / 100,
TradeDate = System.DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"),
AccountNumber = System.DateTime.Now.AddDays(-1).ToString("yyyyMMdd"),
TemplateId = financeConfig?.TempleteId ?? 139,
OrderSource = 17,
Remark = System.DateTime.Now.ToString("yyyy年MM月dd日") + "自动生成财务单据",
detailList,
OriginalFee,
CreateBy = userInfo.Id,
RemitterName = orderModle.StudentName,
RB_Branch_Id = userInfo.School_Id,
RB_Group_Id = userInfo.Group_Id,
RB_Depart_Id = userInfo.Dept_Id,
RB_CreateByName = userInfo.EmployeeName,
RB_DepartName = userInfo.DeptName,
RB_BranchName = userInfo.SchoolName,
RB_GroupName = userInfo.GroupName,
FinanceType = 2,
GuestId = orderModle.GuestId,
OrderId = orderModle.OrderId,
TCIDList = orderModel.ClassId > 0 ? new List<int>() { orderModel.ClassId } : new List<int>(),
};
#endregion
string sign = EncryptionHelper.AesEncrypt(JsonHelper.Serialize(financeObj), Config.FinanceKey);
var resultInfo = new
{
msg = sign,
};
string apiResult = Common.Plugin.HttpHelper.HttpPost(Config.ReadConfigKey("IncomeFinanceApi"), JsonHelper.Serialize(resultInfo), "");
JObject parmsJob = JObject.Parse(apiResult);
string resultCode = parmsJob.GetStringValue("resultCode");
int frid = parmsJob.GetInt("data", 0);
if (resultCode == "1" && frid > 0)//新增记录
{
orderRecordModel.FinanceId = frid;
model = new RB_Online_Trade_Detail
{
ID = 0,
Type = 1,
OrderSource = 18,
OrderId = orderModle.OrderId,
Pay_Order = "",
Trade_Order = payModel.out_trade_no,
Third_Order = payModel.transaction_id,
Money = Convert.ToDecimal(payModel.amount.payer_total) / 100,
Pay_Way = 1,
Interface_Company = 0,
Version = "",
Mch_Id = WxPayConst.mchid,
User_Id = orderModle.GuestId.ToString(),
Is_follow = 0,
AppId = WxPayConst.appid,
OpenId = payModel?.payer?.openid ?? "",
Currency_Type = payModel.amount.payer_currency,
Institution_Type = "",
Card_Type = 0,
Remarks = "教育订单信息财务单据:" + frid,
Pay_Result = 0,
Pay_Date = !string.IsNullOrWhiteSpace(payModel?.success_time ?? "") ? DateTime.SpecifyKind(Convert.ToDateTime(payModel.success_time), DateTimeKind.Utc) : Convert.ToDateTime("1990-01-01"),
Payer_Id = orderModle.GuestId,
Payer_Type = 0,
Data_Source = frid,
RB_Group_Id = orderModle.Group_Id,
RB_Branch_Id = orderModle.School_Id,
IsRefund = 0,
RefundTrade_Order = "",
RefundMoney = 0,
RefundStatus = 0,
FinanceId = 0,
};
}
bool result = educationContractModule.SetEducationContractFinance(model, orderRecordModel);
}
Cache.User.UserReidsCache.Set(Cache.CacheKey.WeChatPay_Callback_Key + payModel.out_trade_no, payModel.out_trade_no, 1);
}
else {
LogHelper.WriteInfo("存在Key" + System.DateTime.Now);
}
}
[AllowAnonymous]
public async Task<WxPayStatusRespModel> QueryOrder(string orderNumber)
{
......@@ -292,49 +328,47 @@ namespace Edu.WebApi.Controllers.WeChatPay
//我没有使用官方的那种验证数据安全性的方法,我解密出来数据之后,直接拿着商户退款订单号再去查询一下订单状态,然后再更新到数据库中。我嫌麻烦……
var resource = wxPayNotifyModel?.resource ?? new RefundsCallbackResourceModel();
var decryptStr = AesGcmHelper.AesGcmDecrypt(resource.associated_data, resource.nonce, resource.ciphertext, WxPayConst.APIV3Key);
var decryptModel = Common.Plugin.JsonHelper.DeserializeObject<RefundsCallbackDecryptModel>(decryptStr); //decryptStr.ToObject<RefundsCallbackDecryptModel>();
var payModel = Common.Plugin.JsonHelper.DeserializeObject<RefundsCallbackDecryptModel>(decryptStr); //decryptStr.ToObject<RefundsCallbackDecryptModel>();
var viewModel = new RefundsCallbackRespModel();
if (string.IsNullOrEmpty(decryptModel.out_trade_no))
if (string.IsNullOrEmpty(payModel.out_trade_no))
{
viewModel.code = "FAIL";
viewModel.message = "数据解密失败";
}
else
{
var payModel = await QueryRefunds(decryptModel.out_refund_no);
if (payModel != null && payModel.status == "SUCCESS")//生成财务单据
// var payModel = await QueryRefunds(decryptModel.out_refund_no);
if (payModel != null && payModel.refund_status == "SUCCESS")//生成财务单据
{
lock (_lock)
int contractId = Convert.ToInt32(payModel.out_trade_no[17..]);
var orderModle = educationContractModule.GetEducationContractModule(contractId);
var orderModel = orderModule.GetClassOrderInfo(orderModle.OrderId);
var oldOrderRecordModel = educationContractModule.GetOrderRecordList(new RB_Finance_OrderRecord { ContractId = contractId, OutTradeNo = payModel.out_trade_no }).FirstOrDefault();
var userInfo = employeeModule.GetEmployeeListModule(new Model.ViewModel.User.Employee_ViewModel { Id = orderModel.EnterID, Group_Id = orderModel.Group_Id }).ToList().FirstOrDefault();
var OriginalFee = Math.Round(Convert.ToDecimal((Convert.ToDecimal(Config.SettlementRate) / 100) * (Convert.ToDecimal(payModel.amount.payer_total) / 100)), 2, MidpointRounding.AwayFromZero);//手续费
RB_Online_Trade_Detail model = new RB_Online_Trade_Detail();
RB_Finance_OrderRecord orderRecordModel = new RB_Finance_OrderRecord
{
int contractId = Convert.ToInt32(payModel.out_trade_no[17..]);
var orderModle = educationContractModule.GetEducationContractModule(contractId);
var orderModel = orderModule.GetClassOrderInfo(orderModle.OrderId);
var oldOrderRecordModel = educationContractModule.GetOrderRecordList(new RB_Finance_OrderRecord { ContractId = contractId, OutTradeNo = payModel.out_trade_no }).FirstOrDefault();
var userInfo = employeeModule.GetEmployeeListModule(new Model.ViewModel.User.Employee_ViewModel { Id = orderModel.EnterID, Group_Id = orderModel.Group_Id }).ToList().FirstOrDefault();
var OriginalFee = Math.Round(Convert.ToDecimal((Convert.ToDecimal(Config.SettlementRate) / 100) * (Convert.ToDecimal(payModel.amount.payer_total) / 100)), 2, MidpointRounding.AwayFromZero);//手续费
RB_Online_Trade_Detail model = new RB_Online_Trade_Detail();
RB_Finance_OrderRecord orderRecordModel = new RB_Finance_OrderRecord
{
ID = 0,
Type = 2,
FinanceId = 0,
OrderId = orderModle.OrderId,
ContractId = orderModle.Id,
CreateDate = System.DateTime.Now,
RB_Group_Id = orderModle.Group_Id,
RB_School_Id = orderModle.School_Id,
OutTradeNo = payModel.out_refund_no,
OrderRecordId = oldOrderRecordModel?.ID ?? 0,
TransactionId = payModel.refund_id,
TotalPrice = Convert.ToDecimal(payModel.amount.payer_total) / 100,
ServiceFee = OriginalFee
};
bool result = educationContractModule.SetEducationContractFinance(model, orderRecordModel);
}
ID = 0,
Type = 2,
FinanceId = 0,
OrderId = orderModle.OrderId,
ContractId = orderModle.Id,
CreateDate = System.DateTime.Now,
RB_Group_Id = orderModle.Group_Id,
RB_School_Id = orderModle.School_Id,
OutTradeNo = payModel.out_refund_no,
OrderRecordId = oldOrderRecordModel?.ID ?? 0,
TransactionId = payModel.refund_id,
TotalPrice = Convert.ToDecimal(payModel.amount.payer_total) / 100,
ServiceFee = OriginalFee
};
bool result = educationContractModule.SetEducationContractFinance(model, orderRecordModel);
viewModel.code = "SUCCESS";
viewModel.message = "数据接收成功";
viewModel.message = "";
}
//然后进行数据库更新处理……等等其他操作
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment