package pl.polskalokalnie.promotion; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; /** * Publiczny endpoint powiadomien AutoPay (ITN - Instant Transaction Notification). * * Bramka nie ma tokenu JWT - uwierzytelnienie nadawcy opiera sie wylacznie na podpisie liczonym * kluczem konfiguracyjnym, weryfikowanym w {@link AutoPayItnService}. Adres ITN ustawia sie w panelu * AutoPay: Ustawienia serwisu -> Konfiguracja techniczna serwisu -> Edytuj -> "Adres ITN" * (pole widac dopiero w formularzu edycji): https://polskalokalnie.pl/api/payments/autopay/itn */ @RestController @RequestMapping("/api/payments/autopay") public class AutoPayItnController { private final AutoPayItnService itnService; public AutoPayItnController(AutoPayItnService itnService) { this.itnService = itnService; } /** Notyfikacja o statusie transakcji. Odpowiedz: podpisany XML z CONFIRMED/NOTCONFIRMED. */ @PostMapping(value = "/itn", produces = MediaType.APPLICATION_XML_VALUE) public ResponseEntity itn(@RequestParam("transactions") String transactions) { return ResponseEntity.ok() .contentType(MediaType.APPLICATION_XML) .body(itnService.handle(transactions)); } }