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:
- Verifica autenticación del usuario
- Obtiene la compañía asociada al usuario
- Consulta planes disponibles en la base de datos
- Obtiene precios de Stripe usando toolsStripe.getPricesList()
- Crea una sesión de checkout por cada plan
- Asocia el cliente Stripe si existe
- 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
- 200
- 401
Lista de URLs de pago con detalles de cada plan
No autorizado. Posibles causas:
- Token JWT inválido
- Usuario no pertenece a una compañía válida
- Error al conectar con Stripe