70 lines
2.5 KiB
C#
70 lines
2.5 KiB
C#
using AyCode.Core.Consts;
|
|
using AyCode.Core.Loggers;
|
|
using AyCode.Core.Server.Loggers;
|
|
using AyCode.Entities;
|
|
using AyCode.Entities.Server.LogItems;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Cors;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Newtonsoft.Json.Linq;
|
|
using System.Text.Json;
|
|
using TIAM.Database.DataLayers.Admins;
|
|
using TIAM.Database.DataLayers.Users;
|
|
using TIAM.Entities.Emails;
|
|
using TIAM.Entities.Transfers;
|
|
using TIAM.Services.Server;
|
|
using TIAM.Services.Server.Logins;
|
|
using TIAMWebApp.Server.Services;
|
|
using TIAMWebApp.Shared.Application.Models;
|
|
using TIAMWebApp.Shared.Application.Models.ClientSide.Payment;
|
|
using TIAMWebApp.Shared.Application.Models.PageModels;
|
|
|
|
namespace TIAMWebApp.Server.Controllers
|
|
{
|
|
[Authorize]
|
|
[ApiController]
|
|
[EnableCors("_myAllowSpecificOrigins")]
|
|
[Route("api/v1/[controller]")]
|
|
public class PaymentAPIController : ControllerBase
|
|
{
|
|
|
|
|
|
private AdminDal _adminDal;
|
|
private SumupService _sumupService;
|
|
private readonly TIAM.Core.Loggers.ILogger _logger;
|
|
private readonly IMessageSenderService _messageSenderService;
|
|
|
|
public PaymentAPIController(AdminDal adminDal, SumupService sumupService, IMessageSenderService messageSenderService, IEnumerable<IAcLogWriterBase> logWriters)
|
|
{
|
|
|
|
|
|
_adminDal = adminDal;
|
|
_sumupService = sumupService;
|
|
_messageSenderService = messageSenderService;
|
|
_logger = new TIAM.Core.Loggers.Logger<PaymentAPIController>(logWriters.ToArray());
|
|
}
|
|
|
|
|
|
[AllowAnonymous]
|
|
[HttpPost]
|
|
[Route(APIUrls.CreatePaymentRouteName)]
|
|
public async Task<string> CreatePayment([FromBody] JsonElement paymentItem)
|
|
{
|
|
_logger.Detail($"CreatePayment called! {paymentItem.ToString()}");
|
|
var transferToPay = JObject.Parse(paymentItem.GetRawText()).ToObject<Transfer>();
|
|
var paymentRequest = new SumupPaymentRequest
|
|
{
|
|
CheckoutReference = transferToPay.OrderId.ToString(),
|
|
Amount = transferToPay.Price.ToString(),
|
|
Currency = "HUF",
|
|
PayToEmail = "adam.g@aycode.com",
|
|
Description = "Test transfer payment"
|
|
};
|
|
var result = await _sumupService.CreateCheckout(paymentRequest);
|
|
_logger.Detail($"CreatePayment result: {result}");
|
|
var checkoutUrl = result.CheckoutUrl;
|
|
return checkoutUrl;
|
|
}
|
|
|
|
}
|
|
} |