Aller au contenu principal

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:

  1. Verifica autenticación del usuario
  2. Obtiene la compañía asociada al usuario
  3. Valida que Stripe esté habilitado para la compañía
  4. Verifica que exista método de pago predeterminado
  5. Busca la entrega asociada al serviceCode
  6. Calcula el importe y comisión
  7. Crea PaymentIntent en Stripe
  8. Guarda referencia en la entrega
  9. 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

Pago procesado exitosamente