Cargando…

Esto está tardando más de lo esperado.

Volver al centro de ayuda

Pruebas gratuitas y cupones

Deja que un suscriptor nuevo pruebe un plan de pago antes de pagar, y acepta códigos promocionales de Stripe en el checkout.

Dos cosas suavizan el primer pago: un periodo de prueba en todo plan de pago, y un campo de código promocional en Stripe Checkout. Ambas son interruptores en config/pricing.php, leídos del entorno, y ambas actúan sólo en el momento en que una suscripción se crea por Checkout.

Opción Variable Valor por omisión Efecto
Prueba gratuita BILLING_FREE_TRIAL_ENABLED false Las suscripciones de pago nuevas empiezan con una prueba en lugar de un cargo.
Duración de la prueba BILLING_FREE_TRIAL_DAYS 14 Días de prueba. 0 o menos deshabilita la prueba aunque esté encendida.
Cupones BILLING_COUPONS_ENABLED true Checkout muestra un campo para un código promocional.

Cómo funciona la prueba

La prueba es genérica: una sola duración para todo plan de pago, aplicada cuando un usuario sin suscripción se suscribe a un plan de pago desde /account/plans. No se configura por plan, y no es una prueba sobre el cliente que termine antes de elegir un plan.

Qué pasa, paso a paso:

  1. El usuario hace clic en Suscribirse en un plan de pago. La sesión de Checkout se crea con un trial_end de hoy más BILLING_FREE_TRIAL_DAYS. Stripe exige que esa fecha esté al menos 48 horas adelante, así que una prueba de un día se vuelve de dos.
  2. Checkout pide una tarjeta. Stripe recoge un método de pago aunque el primer pago sea cero, y el kit no cambia eso, así que una prueba nunca es sin tarjeta.
  3. La suscripción se crea en Stripe con estatus trialing, y el webhook la guarda localmente con su trial_ends_at. Desde entonces el usuario está suscrito: el plan se muestra como actual, los límites aplican, /app está abierto.
  4. Cuando la prueba termina Stripe emite la primera factura y cobra la tarjeta. Si tiene éxito el estatus pasa a active y llega invoice.paid, que es cuando se registran las recompensas de referidos y los ingresos. Si falla el estatus pasa a past_due, la pantalla de cobro muestra Pago fallido y la tarjeta del plan ofrece Reintentar pago.

Dónde no aplica la prueba:

  • Un plan gratuito. No hay nada que diferir, así que un precio 0 se suscribe directo.
  • Un cambio de plan. Pasar de un plan gratuito a uno de pago, aunque pase por Checkout para recoger la tarjeta, no lleva prueba; tampoco una subida ni una bajada.
  • Un suscriptor que vuelve tras terminar su suscripción. Suscribirse de nuevo crea un Checkout nuevo, y el código le aplica la prueba como a cualquier otra suscripción nueva; el kit no recuerda que ya se usó una prueba. Si vendes pruebas una vez por cliente, hazlo cumplir en la configuración propia de Stripe.

La prueba también cubre el arranque por complemento: cuando un usuario sin suscripción compra un complemento de pago, Checkout se abre con el plan gratuito más el complemento, y la misma prueba se aplica a esa sesión. Ver Vende complementos.

Con la prueba encendida y los planes vivos, las tarjetas de planes, en /account/plans y en la página de inicio, muestran la línea "¡Comienza con una prueba gratuita de :days días!" arriba del selector de intervalo.

Qué ve el usuario durante y después de la prueba

En /account/billing la etiqueta de estatus lee el estatus de Stripe, Trialing, y Próximo pago muestra la fecha en que termina la prueba, leída en vivo desde Stripe. Cancelar durante la prueba sigue la regla ordinaria, cancelar al final del periodo: Stripe termina la suscripción cuando acaba la prueba y no se cobra nada.

El kit no envía ningún correo sobre una prueba que está por terminar, y no maneja el evento customer.subscription.trial_will_end. Los recordatorios vienen de Stripe: su configuración de correos al cliente en el Dashboard incluye un correo de fin de prueba, enviado unos días antes del primer cargo; enciéndelo ahí. Un pago que necesita la autenticación del cliente es el único caso sobre el que el kit puede enviar correo, mediante CASHIER_PAYMENT_NOTIFICATION; ver Activa los planes y el cobro.

Quién está en prueba

El panel de administración no tiene filtro de prueba. Dónde se ve una prueba:

  • La página de precios de un plan, /admin/billing-plans/{id}/pricing/{country}, lista a sus suscriptores con una columna Estatus; una prueba muestra trialing, y pasa a active después del primer pago.
  • La lista de usuarios cuenta una suscripción en prueba como plan actual, así que la columna Plan actual y el filtro Plan las incluyen.
  • La métrica Suscripciones creadas del tablero del panel cuenta una suscripción el día en que se creó, con prueba o sin ella. Ingresos diarios sólo cuenta facturas pagadas, así que una prueba aparece ahí el día en que se cobra por primera vez.
  • En la base de datos, subscriptions.stripe_status es trialing y subscriptions.trial_ends_at guarda la fecha de fin. En código, $subscription->onTrial().

Pruebas en complementos

La tabla de derechos que otorga complementos conoce una fuente trial, con fecha de inicio y de fin, y el resolutor la respeta: una cuenta con una fila así tiene la capacidad hasta que la fila expira. Nada en el catálogo crea una; existe para tu propio código, $account->grantAddOn('feature_key', 'trial', ['ends_at' => now()->addDays(14)]). Cuando expira, la capacidad se retira en la siguiente revisión, y no se envía ninguna notificación.

Cupones y códigos promocionales

Con BILLING_COUPONS_ENABLED encendido, la sesión de Checkout se crea con allow_promotion_codes, y Stripe muestra un campo Agregar código promocional en la página de pago. El kit no tiene pantalla propia de cupones: crea el cupón en el Dashboard de Stripe, en Product catalog, Coupons, y dale un código promocional, que es el texto que el cliente escribe. Stripe aplica el descuento, la factura lo refleja, y el evento SubscriptionPaid lleva el monto con descuento, así que las recompensas de referidos se calculan sobre lo que realmente se pagó.

El campo aparece en los dos Checkout que un plan puede abrir: una suscripción de pago nueva, y el cambio de un plan gratuito a uno de pago sin tarjeta guardada. No se ofrece en el Checkout de complementos, y un cambio de plan que ocurre dentro de la aplicación, un intercambio entre planes de pago o un cambio de intervalo, nunca muestra Checkout y por lo tanto nunca pide un código. Apagar la opción oculta el campo; los cupones ya adjuntos a una suscripción siguen aplicando, porque viven en Stripe.