Compare commits

..

4 Commits

Author SHA1 Message Date
khwezi b09af460f1 Merge pull request 'Refactored usaged of merchant payment id usage' (#117) from payments into master
Reviewed-on: #117
2026-06-13 21:21:21 +02:00
Khwezi Mngoma 7c5b5f1728 Refactored usaged of merchant payment id usage
continuous-integration/drone/pr Build is passing
2026-06-13 21:20:30 +02:00
khwezi 50db61b3ee Merge pull request 'Refactored idempotency check to observe completed status' (#116) from payments into master
Reviewed-on: #116
2026-06-13 18:04:17 +02:00
Khwezi Mngoma 94b0084d75 Refactored idempotency check to observe completed status
continuous-integration/drone/pr Build is passing
2026-06-13 18:03:40 +02:00
2 changed files with 3 additions and 4 deletions
@@ -66,7 +66,7 @@ public sealed class PayfastPaymentConfirmationReceivedEventHandler(IServiceProvi
{
OrderId = orderResult.Value.Id,
PaymentId = paymentResult.Value.Id,
PaymentGatewayReference = payload.PaymentId!,
PaymentGatewayReference = payload.MerchantPaymentId!,
Status = LedgerStatuses.Completed,
CustomerId = orderResult.Value.CustomerId,
}, cancellationToken);
@@ -91,7 +91,7 @@ public sealed class PayfastPaymentConfirmationReceivedEventHandler(IServiceProvi
{
OrderId = orderResult.Value.Id,
PaymentId = paymentResult.Value.Id,
PaymentGatewayReference = payload.PaymentId!,
PaymentGatewayReference = payload.MerchantPaymentId!,
Status = ledgerStatus,
CustomerId = orderResult.Value.CustomerId,
}, cancellationToken);
@@ -123,8 +123,7 @@ public sealed class PaymentService(IDbContextFactory<MidrandBooksDbContext> cont
await using var context = await contextFactory.CreateDbContextAsync(cancellationToken);
var exists = await context.Ledger.AnyAsync(l =>
l.OrderId == orderId &&
l.PaymentId == paymentId, cancellationToken);
l.OrderId == orderId && l.PaymentId == paymentId && l.Status == LedgerStatuses.Completed, cancellationToken);
return Result.Ok(exists);
}