feat: 优化支付宝回调通知记录功能

- 新增SignStr字段记录支付宝回调的原始签名字符串
- 修改日志记录格式,使用键值对形式记录回调通知数据
- 更新PayManager.RecordPayNoticeAsync方法支持记录原始签名字符串
- 移除AlipayManager中冗余的注释说明
This commit is contained in:
chenchun
2025-08-13 18:21:05 +08:00
parent f0cf6bf5c8
commit 2b3fad16fd
4 changed files with 19 additions and 8 deletions

View File

@@ -12,10 +12,10 @@ namespace Yi.Framework.AiHub.Domain.Managers;
/// </summary>
public class PayManager : DomainService
{
private readonly ISqlSugarRepository<PayNoticeRecordAggregateRoot, Guid> _payNoticeRepository;
private readonly ICurrentUser _currentUser;
private readonly ISqlSugarRepository<PayOrderAggregateRoot, Guid> _payOrderRepository;
public PayManager(
ISqlSugarRepository<PayNoticeRecordAggregateRoot, Guid> payNoticeRepository,
ICurrentUser currentUser, ISqlSugarRepository<PayOrderAggregateRoot, Guid> payOrderRepository)
@@ -82,26 +82,31 @@ public class PayManager : DomainService
{
order.TradeNo = tradeNo;
}
await _payOrderRepository.UpdateAsync(order);
}
/// <summary>
/// 记录支付通知
/// </summary>
/// <param name="notifyData">通知数据</param>
/// <param name="signStr"></param>
/// <returns></returns>
public async Task RecordPayNoticeAsync(Dictionary<string, string> notifyData)
public async Task RecordPayNoticeAsync(Dictionary<string, string> notifyData, string signStr)
{
var payNotice = new PayNoticeRecordAggregateRoot
{
NotifyTime =DateTime.Parse(notifyData.GetValueOrDefault("notify_time", string.Empty)) ,
NotifyTime = DateTime.Parse(notifyData.GetValueOrDefault("notify_time", string.Empty)),
TradeNo = notifyData.GetValueOrDefault("trade_no", string.Empty),
OutTradeNo = notifyData.GetValueOrDefault("out_trade_no", string.Empty),
BuyerId = notifyData.GetValueOrDefault("buyer_id", string.Empty),
TradeStatus = ParseTradeStatus(notifyData.GetValueOrDefault("trade_status", string.Empty)),
TotalAmount = decimal.TryParse(notifyData.GetValueOrDefault("total_amount", "-1"), out var amount) ? amount : 0,
TotalAmount = decimal.TryParse(notifyData.GetValueOrDefault("total_amount", "-1"), out var amount)
? amount
: 0,
NotifyData = JsonSerializer.Serialize(notifyData),
SignStr = signStr
};
await _payNoticeRepository.InsertAsync(payNotice);