NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky

Tržba je Money z money-for-laravel zabalené v DTO Revenue, takže suma je presná v akejkoľvek veľkosti a nikdy neprejde cez float:

use RoundlyConsulting\Money\Money;
use RoundlyConsulting\Plausible\DataTransferObjects\Revenue;

Revenue::of('49', 'eur');                       // {"currency":"EUR","amount":"49.00"}
Revenue::of('1500', 'JPY');                     // {"currency":"JPY","amount":"1500"}
Revenue::make(Money::ofMinor(1299, 'USD'));     // {"currency":"USD","amount":"12.99"}
Revenue::make($order->total);                   // any Money you already hold

Revenue::of('92233720368547758.08', 'USD');     // beyond int64 — sent exactly

Na udalosti

use RoundlyConsulting\Plausible\DataTransferObjects\Revenue;
use RoundlyConsulting\Plausible\Facades\Plausible;
use RoundlyConsulting\Plausible\Requests\Events\CaptureEventRequest;

// With the event() shortcut
Plausible::events()->fromRequest(request())->event(
    'purchase',
    url: 'https://my-site.com/checkout',
    revenue: Revenue::make($order->total),
);

// Or on an explicit request, queued
Plausible::events()
    ->fromRequest(request())
    ->captureQueued(CaptureEventRequest::make(
        site: 'my-site.com',
        url: 'https://my-site.com/checkout',
        name: 'purchase',
        revenue: Revenue::of('49.00', 'EUR'),   // or Revenue::make($order->total)
        props: ['plan' => 'pro'],
    ));

Pravidlá

  • of() berie hlavné jednotky ako desatinný reťazec alebo int — variant pre float neexistuje.
  • make() berie akékoľvek Money, ktoré už máte, napríklad sumu objednávky.
  • Suma v payloade je desatinný reťazec meny (toDecimal()); Plausible ju prijíma ako reťazec.
  • Revenue za vás nikdy nezaokrúhľuje — ak má hodnota viac desatinných miest, než mena pripúšťa, zaokrúhlite ju najprv cez money.

Validácia

Tržbu, ktorej Plausible nerozumie, potichu zahodí, preto sa čokoľvek neplatné odmietne vopred výnimkou RoundlyConsulting\Plausible\Exceptions\InvalidRevenue (PlausibleException); výnimka z money je dostupná cez getPrevious():

  • neznámy alebo chybný kód meny (EURO);
  • vlastná mena mimo ISO 4217, napríklad vernostné body — Plausible prevádza len ISO meny a tržbu by potichu zahodil;
  • viac desatinných miest, než mena pripúšťa (12.999 USD);
  • chybne zapísaná suma (1,50 alebo 1e3).
use RoundlyConsulting\Plausible\Exceptions\InvalidRevenue;

try {
    Revenue::of('12.999', 'USD');   // more decimals than USD allows
} catch (InvalidRevenue $e) {
    $e->getMessage();               // "Invalid revenue amount [12.999]: …"
    $e->getPrevious();              // the underlying money-for-laravel exception
}

Revenue::of('49', 'EURO');          // InvalidRevenue — not a 3-letter ISO 4217 code
Revenue::of('1,50', 'EUR');         // InvalidRevenue — malformed amount
Revenue::of('1e3', 'EUR');          // InvalidRevenue — malformed amount

Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

Ďalšie spôsoby podpory vrátane kryptomien

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.