From 9d17f174af225d369de860217ae1eb5e8d23071d Mon Sep 17 00:00:00 2001 From: masoodafar-web Date: Mon, 21 Sep 2026 21:35:42 +0330 Subject: [PATCH] feat(config): add CallbackBaseUrl to configuration for payment processing - Introduced CallbackBaseUrl in both cms-config.yaml and appsettings.Staging.json to support dynamic callback URLs for payment processing. - Updated PackageService to utilize the new CallbackBaseUrl for enhanced security and flexibility in payment integration. --- k8s/staging/cms-config.yaml | 1 + src/CMSMicroservice.WebApi/Services/PackageService.cs | 9 +++++++-- src/CMSMicroservice.WebApi/appsettings.Staging.json | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/k8s/staging/cms-config.yaml b/k8s/staging/cms-config.yaml index 17332ba..cd3e94e 100644 --- a/k8s/staging/cms-config.yaml +++ b/k8s/staging/cms-config.yaml @@ -30,6 +30,7 @@ stringData: "TerminalUsername": "ea5y1biehi", "TerminalPassword": "SaLamAT@1404!", "CreditPortalUrl": "https://userpanel.20card.ir/", + "CallbackBaseUrl": "https://kbs2.ir", "Packages": { "4": { "GatewayAmountToman": 9700000, diff --git a/src/CMSMicroservice.WebApi/Services/PackageService.cs b/src/CMSMicroservice.WebApi/Services/PackageService.cs index f0ebdd2..58607b6 100644 --- a/src/CMSMicroservice.WebApi/Services/PackageService.cs +++ b/src/CMSMicroservice.WebApi/Services/PackageService.cs @@ -227,8 +227,13 @@ public class PackageService : PackageContract.PackageContractBase .FirstOrDefaultAsync(cancellationToken); // Callback URL از config — نه از ورودی کاربر (امنیت) - var frontOfficeBaseUrl = _configuration["FrontOfficeBaseUrl"] ?? "https://localhost:5268"; - var callbackUrl = $"{frontOfficeBaseUrl}/profile/payment-callback?orderId={purchase.Id}"; + // ۲۰کارت: CallbackBaseUrl اختیاری (مثلاً استیج → kbs2.ir چون دامنه استیج در ترمینال ثبت نیست) + var frontOfficeBaseUrl = isTwentyCard + ? (_configuration["TwentyCard:CallbackBaseUrl"] + ?? _configuration["FrontOfficeBaseUrl"] + ?? "https://localhost:5268") + : (_configuration["FrontOfficeBaseUrl"] ?? "https://localhost:5268"); + var callbackUrl = $"{frontOfficeBaseUrl.TrimEnd('/')}/profile/payment-callback?orderId={purchase.Id}"; var paymentGateway = _paymentGatewayResolver.Get(gatewayProvider); var payerName = $"{user?.FirstName} {user?.LastName}".Trim(); diff --git a/src/CMSMicroservice.WebApi/appsettings.Staging.json b/src/CMSMicroservice.WebApi/appsettings.Staging.json index 4009c39..6ce4bc3 100644 --- a/src/CMSMicroservice.WebApi/appsettings.Staging.json +++ b/src/CMSMicroservice.WebApi/appsettings.Staging.json @@ -10,6 +10,7 @@ "TerminalUsername": "ea5y1biehi", "TerminalPassword": "SaLamAT@1404!", "CreditPortalUrl": "https://userpanel.20card.ir/", + "CallbackBaseUrl": "https://kbs2.ir", "Packages": { "4": { "GatewayAmountToman": 9700000,