fix: pass amount to ZarinPal VerifyPaymentAsync — fix verify failure (amount=0 bug)
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 9m38s
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 9m38s
- PackageService.CustomerVerifyPackagePurchase: look up PaymentTransaction.Amount and pass to 3-arg overload - TransactionsService.CustomerPaymentVerification: same fix - VerifyDiscountWalletChargeCommandHandler: look up amount from PaymentTransaction - VerifyPackagePurchaseCommandHandler: fix copy-paste bug (Authority as verificationToken) + add amount - IPaymentGatewayService: throw NotImplementedException in default 3-arg impl to prevent silent amount=0 - MockPaymentGatewayService & DayaPaymentService: add 3-arg overload for compatibility Root cause: ZarinPal requires the exact amount in verify request. The 2-arg overload was sending amount=0 which caused Code=-1 (تأیید تراکنش ناموفق).
This commit is contained in:
@@ -193,6 +193,16 @@ public class DayaPaymentService : IPaymentGatewayService
|
||||
}
|
||||
}
|
||||
|
||||
public Task<PaymentVerificationResult> VerifyPaymentAsync(
|
||||
string refId,
|
||||
string verificationToken,
|
||||
decimal amountInToman,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
// دایا: درگاه دایا مبلغ را در verify نیاز ندارد — از overload بدون مبلغ استفاده میشود
|
||||
return VerifyPaymentAsync(refId, verificationToken, cancellationToken);
|
||||
}
|
||||
|
||||
public async Task<PayoutResult> ProcessPayoutAsync(
|
||||
PayoutRequest request,
|
||||
CancellationToken cancellationToken = default)
|
||||
|
||||
@@ -74,6 +74,16 @@ public class MockPaymentGatewayService : IPaymentGatewayService
|
||||
};
|
||||
}
|
||||
|
||||
public Task<PaymentVerificationResult> VerifyPaymentAsync(
|
||||
string refId,
|
||||
string verificationToken,
|
||||
decimal amountInToman,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
// Mock: مبلغ تفاوتی نمیکند، از همان overload بدون مبلغ استفاده میشود
|
||||
return VerifyPaymentAsync(refId, verificationToken, cancellationToken);
|
||||
}
|
||||
|
||||
public async Task<PayoutResult> ProcessPayoutAsync(
|
||||
PayoutRequest request,
|
||||
CancellationToken cancellationToken = default)
|
||||
|
||||
Reference in New Issue
Block a user