💳 Crear pago¶
Este endpoint permite realizar el pago de una orden existente utilizando un token de pago generado por una plataforma como Stripe. Al procesar correctamente el pago, la orden se actualiza a "pagada".
🧠 ¿Cuándo usar este endpoint?¶
- Inmediatamente después de que el usuario confirme su compra.
- Para enviar la información de pago al backend y registrar la transacción.
- Para actualizar el estado de una orden a "pagada".
🔐 Requiere autenticación¶
Debes enviar un token JWT válido en el encabezado:
Authorization: Bearer <token>
📋 Headers¶
Nombre | Valor |
---|---|
Authorization | Bearer |
Content-Type | application/json |
📦 Body (JSON)¶
- Método:
POST
- Ruta:
/payments/create
{
"method": "card",
"orderId": "aeb7903e-b0cc-4fc7-ade7-441580fdf20b",
"description": "aca va algo",
"paymentDetails": {
"token": "tok_abc123",
"email": "user@example.com"
}
}
🚀 Ejemplo curl¶
curl -X POST "http://localhost:3000/api/payments/create" \
-H "Authorization: Bearer <tu_token_jwt_aqui>" \
-H "Content-Type: application/json" \
-d '{
"method": "card",
"orderId": "aeb7903e-b0cc-4fc7-ade7-441580fdf20b",
"description": "Pago de la orden",
"paymentDetails": {
"token": "tok_abc123",
"email": "user@example.com"
}
}'
📄 Respuesta exitosa¶
HTTP/1.1 200 OK
Content-Type: application/json
{
"success": true,
"message": "succes",
"data": {
"id": "2ced9b1e-0702-4fc4-bcce-7323727f625b",
"method": "card",
"updatedAt": "2025-03-19T17:41:58.060Z",
"createdAt": "2025-03-19T17:41:58.060Z"
}
}
❌ Respuesta de error¶
Código | Motivo | Solución |
---|---|---|
400 | Datos de pago inválidos | Verifica que todos los campos requeridos estén presentes y sean válidos. |
404 | Orden no encontrada | Asegúrate de que la orden exista y el ID sea correcto. |
402 | Pago no autorizado | Verifica que el token de pago sea válido y que la tarjeta tenga fondos suficientes. |
500 | Error interno del servidor | Intenta nuevamente más tarde o contacta al administrador del sistema. |
💡 ¿Y si el pago falla?¶
El estado de la orden no se actualiza si el pago es rechazado. Puedes reintentar el proceso usando otro token válido.