From 161f796cd4fe1daa6243ccf19db2c7578236a1cd Mon Sep 17 00:00:00 2001 From: masoodafar-web Date: Thu, 26 Feb 2026 02:34:47 +0330 Subject: [PATCH] Phase 7b: Embed orderId in callback URL for CustomerPurchasePackage - CustomerPurchasePackage: append orderId to callback URL before sending to gateway - Ensures PaymentCallback page receives orderId via query string for verification --- src/CMSMicroservice.WebApi/Services/PackageService.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/CMSMicroservice.WebApi/Services/PackageService.cs b/src/CMSMicroservice.WebApi/Services/PackageService.cs index 3d99a43..d8e961a 100644 --- a/src/CMSMicroservice.WebApi/Services/PackageService.cs +++ b/src/CMSMicroservice.WebApi/Services/PackageService.cs @@ -207,13 +207,17 @@ public class PackageService : PackageContract.PackageContractBase .Select(u => new { u.Mobile }) .FirstOrDefaultAsync(context.CancellationToken); + // Embed orderId in callback URL so FrontOffice can pass it back for verification + var separator = request.CallbackUrl.Contains('?') ? "&" : "?"; + var callbackWithOrder = $"{request.CallbackUrl}{separator}orderId={purchase.Id}"; + var paymentResult = await _paymentGateway.InitiatePaymentAsync(new PaymentRequest { Amount = package.Price, UserId = userId, Mobile = user?.Mobile ?? string.Empty, Description = $"خرید پکیج {package.Title}", - CallbackUrl = request.CallbackUrl + CallbackUrl = callbackWithOrder }, context.CancellationToken); if (!paymentResult.IsSuccess)