BUG:在TASK内调用支付拦截器时,外层的代码把参数内容改了。
This commit is contained in:
parent
4400bd4883
commit
e438bbf1f2
@ -16,7 +16,7 @@ namespace Admin.NET.Core.Service;
|
||||
[ApiDescriptionSettings(Order = 210, Description = "微信支付")]
|
||||
public class SysWechatPayService : IDynamicApiController, ITransient
|
||||
{
|
||||
private static readonly List<WechatPayEventInterceptor> wechatPayEventHandlers = [new WechatPayEventInterceptor() { Order = int.MaxValue }];
|
||||
private static readonly List<WechatPayEventInterceptor> wechatPayEventHandlers = new List<WechatPayEventInterceptor>();
|
||||
|
||||
/// <summary>
|
||||
/// 注册支付记录变化事件处理器
|
||||
@ -311,7 +311,8 @@ public class SysWechatPayService : IDynamicApiController, ITransient
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!await eh.PayInforChanged(wechatPayOld, wechatPayNew))
|
||||
//这里一定要用 DeepCopy 来创一个新的对象传进不,不然会被外面的 主线程改变就麻烦了
|
||||
if (!await eh.PayInforChanged(wechatPayOld, wechatPayNew.DeepCopy()))
|
||||
break;
|
||||
}
|
||||
catch (Exception ex)
|
||||
@ -322,7 +323,7 @@ public class SysWechatPayService : IDynamicApiController, ITransient
|
||||
});
|
||||
}
|
||||
// 下面这里创建一个新的对象,是因为不想把全部字段都返回
|
||||
wechatPayNew = new SysWechatPay()
|
||||
var result = new SysWechatPay()
|
||||
{
|
||||
AppId = _wechatPayOptions.AppId,
|
||||
MerchantId = _wechatPayOptions.MerchantId,
|
||||
@ -338,7 +339,7 @@ public class SysWechatPayService : IDynamicApiController, ITransient
|
||||
SuccessTime = response.SuccessTime.HasValue ? response.SuccessTime.Value.DateTime : DateTime.Now // 支付完成时间
|
||||
};
|
||||
|
||||
return wechatPayNew;
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user