Passa al contenuto principale

Obtener URLs de pago para planes de suscripción

GET 

/payment/urls

Devuelve URLs de checkout de Stripe para los diferentes planes de suscripción disponibles.

Flujo técnico:

  1. Verifica autenticación del usuario
  2. Obtiene la compañía asociada al usuario
  3. Consulta planes disponibles en la base de datos
  4. Obtiene precios de Stripe usando toolsStripe.getPricesList()
  5. Crea una sesión de checkout por cada plan
  6. Asocia el cliente Stripe si existe
  7. Devuelve URLs listas para redireccionar al usuario

Detalles importantes:

  • Usa modo "subscription" para pagos recurrentes
  • Asocia automáticamente el cliente Stripe si existe
  • Usa el email de facturación de la compañía si no hay cliente Stripe
  • Genera un client_reference_id único para cada compañía

Información incluida por plan:

  • id_plan: Identificador único del plan
  • name: Nombre del plan
  • description: Descripción del plan
  • price: Precio del plan
  • url: URL de checkout de Stripe

Validaciones:

  • Usuario debe estar autenticado (JWT válido)
  • Usuario debe pertenecer a una compañía válida
  • La compañía debe tener email de facturación configurado

Ejemplo de respuesta:

[
{
"id_plan": "plan_basic",
"name": "Plan Básico",
"description": "Acceso a funciones básicas",
"price": 9.99,
"url": "https://checkout.stripe.com/pay/cs_test_abc123"
},
{
"id_plan": "plan_premium",
"name": "Plan Premium",
"description": "Acceso completo a todas las funciones",
"price": 19.99,
"url": "https://checkout.stripe.com/pay/cs_test_xyz456"
}
]

Ejemplo de uso en frontend:

// Frontend: Obtener URLs de pago
const getPaymentUrls = async () => {
try {
const response = await axios.get('/truckers/payment/urls', {
headers: { Authorization: `Bearer ${token}` }
});

if (response.data.length > 0) {
displayPlans(response.data); // Mostrar planes disponibles
}
} catch (error) {
handleError(error);
}
};

Casos de error:

  • 401 Unauthorized:
    • Token JWT inválido
    • Usuario no tiene compañía asociada
    • Error al conectar con Stripe
  • 404 Not Found: No hay planes disponibles

Responses

Lista de URLs de pago con detalles de cada plan