Confirm.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using Web.Api.Common;
  2. using Web.Api.Extensions;
  3. using MediatR;
  4. using System.Security.Claims;
  5. namespace Web.Api.Endpoints.Payment;
  6. /// <summary>결제 승인</summary>
  7. internal sealed class Confirm : IEndpoint
  8. {
  9. public sealed record Request(string OrderID, string TransactionID, string Method);
  10. public void MapEndpoint(IEndpointRouteBuilder app)
  11. {
  12. /// 다날 결제 완료 후 승인 API 호출 → 지갑 포인트 충전
  13. app.MapPost("api/payment/confirm", async (
  14. Request body,
  15. ClaimsPrincipal user,
  16. ISender sender,
  17. CancellationToken ct
  18. ) => {
  19. var memberID = user.GetRequiredMemberID();
  20. var command = new Application.Features.Api.Payment.Confirm.Command(
  21. body.OrderID,
  22. body.TransactionID,
  23. body.Method,
  24. memberID
  25. );
  26. var data = await sender.Send(command, ct);
  27. return ApiResponse.Ok(data);
  28. })
  29. .WithTags("Payment")
  30. .RequireAuthorization();
  31. }
  32. }