Com configurar preus esglaonats a Laravel amb Stripe

Si necessites cobrar als teus clients segons la quantitat d’usuaris a la teva plataforma utilitzant Stripe i Laravel, aquest article et mostrarà com configurar correctament Stripe amb els models de facturació “Usage-based”, “Per tier” i “Volume”.

03.02.2025 — Marc Bernet — 2 min read

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);
}

É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ó.

Conclusió

Configurar els preus per nivells a Stripe amb Laravel és senzill si defineix correctament els nivells a Stripe i informeu correctament de l'ús. Aquest enfocament permet la facturació automàtica en funció del nombre d'usuaris sense necessitat de gestionar manualment les subscripcions.

💡 Quant costa desenvolupar una app per al teu negoci? Descobreix els preus