diff --git a/ServiceHost/Areas/Client/Controllers/FinancialController.cs b/ServiceHost/Areas/Client/Controllers/FinancialController.cs index e5f7efb3..48325d12 100644 --- a/ServiceHost/Areas/Client/Controllers/FinancialController.cs +++ b/ServiceHost/Areas/Client/Controllers/FinancialController.cs @@ -10,6 +10,7 @@ using ServiceHost.BaseControllers; namespace ServiceHost.Areas.Client.Controllers; +public record CreateFinancialPayRequest(long Id, string BaseUrl); public class FinancialController : ClientBaseController { private readonly IFinancialStatmentApplication _financialStatementApplication; @@ -48,22 +49,26 @@ public class FinancialController : ClientBaseController /// /// [HttpPost("CreatePay")] - public async Task>> CreatePay(long id,string baseUrl,CancellationToken cancellationToken) + public async Task>> CreatePay([FromBody] CreateFinancialPayRequest request, CancellationToken cancellationToken) { var op = new OperationResult(); - var balanceAmount = await _financialStatementApplication.GetBalanceAmount(id); + var balanceAmount = await _financialStatementApplication.GetBalanceAmount(request.Id); if (balanceAmount.Amount<=0) { return op.Failed("موجودی حساب شما صفر است"); } - var callBack = baseUrl+ "/api/CallBack"; + var callbackUrl = Url.Action( + action: "OnGetCallBack", + controller: "General", // نام کنترلر بدون کلمه‌ی "Controller" + values: null, + protocol: Request.Scheme); // http یا https var transactionCommand = new CreatePaymentTransaction() { Amount = balanceAmount.Amount, ContractingPartyId = balanceAmount.ContractingPartyId, - CallBackUrl = baseUrl + CallBackUrl = request.BaseUrl }; var transaction = await _paymentTransactionApplication.Create(transactionCommand); @@ -75,7 +80,7 @@ public class FinancialController : ClientBaseController var command = new CreatePaymentGatewayRequest() { - CallBackUrl = callBack, + CallBackUrl = callbackUrl, Amount = balanceAmount.Amount/10, InvoiceId = transaction.SendId.ToString(), };