Comunidade

Ask a Question
Back to All

Ao criar um pedido é acrescentado o parâmetro "/pay" automaticamente?

Estou consumindo a api usando a lib Feign e Java + spring e me deparo com o seguinte erro.

   "message": "[403 Forbidden] during [POST] to [https://sandbox.api.pagseguro.com/create-order/pay] 
   [PagBankClient#pagarPedido(String,Charges)]: [{\"message\":\"Forbidden\"}\n]",
    "path": "/create-order"

Observe que a minha entrada pra criar um pedido é /create-order. Mas automaticamente ele tá criando e pagando o pedido usando o link [https://sandbox.api.pagseguro.com/orders/create-order/pay].

Isso é algo comum? Pois não estou assimilando o processo.

Veja como está o meu código:

`@FeignClient(name = "pagseguro-api", url = "https://sandbox.api.pagseguro.com", configuration = FeignConfig.class)
public interface PagBankClient {

    @PostMapping("/orders")
    OrderResponse createOrder(@RequestBody OrderRequest dto);
    @PostMapping("/{order_id}/pay")
    PaymentResponse pagarPedido(@PathVariable("order_id") String orderId, @RequestBody Charges charges);

}
@RestController
@RequestMapping(name = "/create-order")
public class OrderController {

    @Autowired
    private OrderService service;

    @PostMapping
    public ResponseEntity<OrderResponse> createOrder(@RequestBody OrderRequest dto) {
        OrderResponse response = service.createOrder(dto);
        return ResponseEntity.status(HttpStatus.CREATED).body(response);
    }
}
@RestController
@RequestMapping(name = "/create-pay")
public class PaymentController {

    @Autowired
    private PaymentService service;

    @PostMapping("/{order_id}")
    public ResponseEntity<Charges> pagarPedido(@PathVariable("order_id") String orderId,
                                               @RequestBody Charges dto) {
        PaymentResponse responseDto  = service.pay(orderId, dto);
        return ResponseEntity.status(HttpStatus.CREATED).body(dto);
    }
}
    @Transactional
    public OrderResponse createOrder(OrderRequest dto) {
        OrderResponse orderResponse = client.createOrder(dto);
        return orderResponse;
    }
    @Transactional
    public PaymentResponse pay(String orderId, Charges dto) {
        PaymentResponse paymentResponse = client.pagarPedido(orderId, dto);
        return paymentResponse;
    }