Comunidade
Ao criar um pedido é acrescentado o parâmetro "/pay" automaticamente?
about 1 year ago by Jean Fernandine Santos
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;
}