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(),
};