Configuració a Stripe
Stripe permet configurar diferents models de preus esglaonats:
• Usage-based: El preu final es basa en l’últim nivell assolit, per la qual cosa requereix un esdeveniment de mesura a Stripe.
• Per tier: Cada nivell d’ús té un preu fix associat.
• Volume: Un preu únic s’aplica a totes les unitats consumides dins del rang.
A la teva compte de Stripe, has de:
1. Crear un preu (price_id) amb el model de pricing desitjat.
2. Definir els rangs d’unitats i els seus costos al panell de preus de Stripe.
3. Crear un Meter Event i associar-lo al price_id.
Crear la suscripció a Laravel
Per iniciar una subscripció amb preus esglaonats a Laravel, pots utilitzar el següent codi després d’integrar Stripe Elements:
public function processSubscription(Request $request)
{
$partner = auth('partner')->user();
$paymentMethod = $request->input('payment_method');
$partner->createOrGetStripeCustomer();
$partner->addPaymentMethod($paymentMethod);
$price_id = 'price_1...'; //Price ID
$partner->newSubscription('default')
->meteredPrice($price_id)
->create($paymentMethod);
return redirect()->route('subscription.form')->with('success', 'Subscription started!');
}
Reportar ús a Stripe amb Laravel
Perquè Stripe calculi correctament les factures en models “usage-based”, has d’enviar periòdicament la informació d’ús (consum). Això es fa mitjançant usageRecords.
A Laravel, pots reportar-ho amb un Command que s’executi segons la freqüència desitjada (per exemple, cada hora o al final del dia).
$subscription = $user->subscriptions()->first();
if ($subscription && $subscription->items->first()) {
$user->reportMeterEvent('meter_id', quantity: 10);
}
Es importante entender que Stripe va acumulando las cantidades que envíes en cada evento de uso (usage record). Esto significa que si estás cobrando según el número de usuarios, solo necesitas reportar los usuarios nuevos que se suman, en lugar de informar el total cada vez. Lo mismo se aplica si en lugar de “usuarios” quieres medir tokens, mensajes o cualquier otra métrica: basta con enviar los incrementos reales de uso y Stripe hará el recuento acumulado para la facturación.
Programa este comando en tu app/Console/Kernel.php o ejecútalo en tu flujo de trabajo, y Stripe se encargará de facturar el uso acumulado en cada ciclo de facturación.
Conclusión
És important entendre que Stripe va acumulant les quantitats que enviïs en cada esdeveniment d’ús. Això significa que, si estàs cobrant segons el nombre d’usuaris, només necessites reportar els nous usuaris que s’afegeixen, en lloc d’informar del total cada vegada.
El mateix s’aplica si, en lloc de “usuaris”, vols mesurar tokens, missatges o qualsevol altra mètrica: n’hi ha prou amb enviar els increments reals d’ús, i Stripe farà el recompte acumulat per a la facturació.