Procesar pago de servicio
POST/payment/pay
Procesa el pago de un servicio utilizando el método de pago predeterminado en Stripe.
Flujo técnico:
- Verifica autenticación del usuario
- Obtiene la compañía asociada al usuario
- Valida que Stripe esté habilitado para la compañía
- Verifica que exista método de pago predeterminado
- Busca la entrega asociada al serviceCode
- Calcula el importe y comisión
- Crea PaymentIntent en Stripe
- Guarda referencia en la entrega
- Envía email de confirmación
Validaciones:
- Usuario debe estar autenticado (JWT válido)
- Usuario debe pertenecer a una compañía válida
- Stripe debe estar habilitado para la compañía
- Debe existir método de pago predeterminado
- serviceCode debe corresponder a una entrega existente
Parámetros requeridos:
- serviceCode: Código único del servicio a pagar
Ejemplo de request:
{
"serviceCode": "DEL123456"
}
Ejemplo de respuesta exitosa:
{
"success": true
}
Casos de error:
- 400 Bad Request:
- serviceCode no proporcionado
- serviceCode no válido
- 401 Unauthorized:
- Token JWT inválido
- Usuario no tiene compañía asociada
- Stripe no habilitado para la compañía
- No hay método de pago predeterminado
- 500 Internal Server Error: Error al procesar pago en Stripe
Ejemplo de uso en frontend:
// Frontend: Procesar pago de servicio
const processPayment = async (serviceCode) => {
try {
const response = await axios.post(
'/truckers/payment/pay',
{ serviceCode },
{ headers: { Authorization: `Bearer ${token}` } }
);
if (response.data.success) {
showPaymentSuccess(); // Mostrar confirmación
}
} catch (error) {
handleError(error);
}
};
Notas importantes:
- Usa el método de pago predeterminado configurado
- El importe se calcula automáticamente según la subasta
- Se aplica una comisión del 6% por defecto
- Genera un registro de PaymentIntent en Stripe
- Envía email de confirmación a ambas partes
Request
Responses
- 200
- 400
- 401
Pago procesado exitosamente
Solicitud incorrecta. Posibles causas:
- Falta parámetro serviceCode
- serviceCode no válido o no encontrado
No autorizado o fallo en pago. Posibles causas:
- Token JWT inválido
- Usuario no tiene compañía asociada
- Stripe no habilitado para la compañía
- No hay método de pago predeterminado
- Fallo al procesar pago en Stripe