Pagamentos
Nosso sistema de vendas online terá uma integração com a FictionalPay (FP), onde o usuário irá fazer o pagamento usando o sistema de pagamentos da FP. Após o pagamento ser confirmado, a FP dispara um webhook com os dados de pagamento, conforme exemplo:
{
"transaction_id": "c9a6001f-b900-4b3a-989b-576aea4c87a2",
"value": 5000,
"currency": "BRL",
"status": "paid"
}
Os seguintes endpoints devem ser adicionados à API:
POST /products/{product_id}/transaction
Usado para iniciar uma nova compra de um produto. Exemplo de resposta:
{
"id": 12345,
"product_id": 12345,
"status": "waiting",
"total_price": 5000,
"payment_url": "https://fictional.pay/payments/c9a6001f-b900
-4b3a-989b-576aea4c87a2"
}
DELETE /transactions/{transaction_id}
Cancela uma transação anteriormente iniciada.
POST /transactions/{transaction_id}/update-fictional-pay-status
Endpoint interno usado pelo webhook da FictionalPay para atualizar o estado de pagamento de uma transação. O endpoint deve fazer a seguinte validação:
- Se
status
forpaid
: Atualiza o estado da transação para pago. - Se não: Ignora a requisição e não faz nada.
GET /transactions/{transaction_id}
Retorna os dados da transação. Exemplo de resposta:
{
"id": 12345,
"product_id": 12345,
"status": "waiting",
"total_price": 5000,
"payment_url": "https://fictional.pay/payments/c9a6001f-b900
-4b3a-989b-576aea4c87a2",
"product": {
"id": 12345,
"name": "Product X",
"image_url": "https://s.com/object/abc-123/image.jpeg",
"price": 5000
}
}