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

Open source

Purchases for Laravel

Inštalácia
composer require roundly-consulting/purchases-for-laravel
Vyžaduje: PHP ^8.4 · Laravel ^13.0

Prehľad

Jednotná sada nástrojov pre in-app nákupy a platby v Laraveli: jedno API pre nákupy a predplatné z Apple App Store, Google Play a Stripe. Podpísané dáta každého obchodu natívne overí, dekóduje do jedného výsledku nezávislého od poskytovateľa, uloží ako Eloquent modely a spustí udalosti životného cyklu, na ktoré môžete reagovať — vrátane refundácií, chargebackov, obdobia odkladu platby (grace period) a pozastaveného predplatného — a fakturuje cez Stripe: zákazníci, predplatné na miesta, podľa spotreby aj so zmiešanými intervalmi, skúšobné obdobie bez karty a Customer Portal. Balík je pod licenciou MIT a stojí len na HTTP klientovi Laravelu a vlastných balíkoch Roundly pre kryptografiu, enumy, peniaze a package-toolkit — bez stripe/stripe-php, bez google/apiclient, bez SDK tretích strán.

Čo získate

Jedno API, tri obchody

Apple App Store, Google Play a Stripe za jednou fasádou Purchases — overenie, dekódovanie a uloženie jedným volaním.

Natívne overovanie

ES256 JWS s pripnutými certifikátmi Apple, OAuth2 JWT-bearer grant pre Google a HMAC webhooky Stripe — bez SDK.

Jednotný výsledok

Každý payload sa mapuje na jeden ProviderResult: typ, stav, cena, dátumy, položky aj pôvodné dáta.

Modely, scopy a udalosti

Nákupy, predplatné a refundácie ako Eloquent modely s udalosťami životného cyklu vrátane obdobia odkladu a chargebackov.

Presné peniaze

Ceny ako Money s ľubovoľnou presnosťou v najmenších jednotkách meny, prevedené podľa pravidiel každého obchodu.

Audit, fronta a replay

Zaznamenajte každý overený payload, spracujte každú udalosť obchodu len raz, ukladajte cez frontu a uložené notifikácie znova spracujte jedným príkazom.

Fakturácia cez Stripe

Zákazníci, predplatné na počet miest aj podľa spotreby, plány so zmiešanými intervalmi, skúšobné obdobie bez karty, jedno predplatné na vlastníka, merače spotreby a Customer Portal.

Fasáda, DI alebo akcie

Jedna fasáda Purchases nad injektovateľným PurchasesManager a verejnými akciami, plus zaznamenávajúci fake, v ktorom beží skutočný pipeline.

Dokumentácia

Inštalácia

Inštalácia cez Composer, publikovanie migrácií (len cez publish) a voliteľne konfigurácie a súboru webhook rout.

Konfigurácia

Každý konfiguračný kľúč a env premenná — modely, poskytovatelia, audit, fronta, webhook routy a prístupové údaje Apple, Google a Stripe.

Fasáda Purchases

Všetky metódy fasády Purchases — result() a handle() pre požiadavky, sync() a replay() pre hotové výsledky, for($owner) a vyhľadanie poskytovateľov.

DI a akcie

Namiesto fasády injektujte PurchasesManager alebo spustite akciu za handle(), sync() či replay() — vždy beží ten istý kód.

Jednotný výsledok

Každý poskytovateľ sa mapuje na jeden ProviderResult — typ, stav, identifikátory, cena, dátumy, položky a pôvodný payload obchodu.

Ukladanie výsledkov

Ako handle(), sync() a replay() premenia výsledok na Purchase, Subscription alebo PurchaseRefund — s auditom, idempotentne, udalosti len pri zmene.

Udalosti

Štrnásť udalostí — nákupy, predplatné, obdobie odkladu, pozastavenie a obnovenie, refundácie, chargebacky a signály Stripe o skúšobnom období a platbe.

Modely a trait vlastníka

Sedem vymeniteľných Eloquent modelov, trait HasPurchases pre vlastníka, scopy a pomocníky predplatného a databázová schéma.

Peniaze a ceny

Ceny ako Money z money-for-laravel s ľubovoľnou presnosťou, uložené v dvoch stĺpcoch a presne prevedené z formátu každého obchodu.

Refundácie a chargebacky

Refundácie a spory z Apple, Google a Stripe sa dekódujú do záznamov PurchaseRefund prepojených s nákupom, ktorý rušia.

Apple App Store

Overujte podpísané serverové notifikácie App Store, vyhľadávajte transakcie cez App Store Server API a mapujte stavy Apple.

Google Play

Overujte jednorazové produkty a nákupy subscriptionsv2, automaticky ich potvrdzujte a dekódujte real-time developer notifikácie.

Stripe

Overujte podpisy webhookov Stripe natívne, mapujte udalosti platieb, predplatného, faktúr a sporov a čítajte REST objekty.

Fakturácia cez Stripe

Fakturácia v Stripe — zákazníci, predplatné na miesta aj podľa spotreby, zmiešané intervaly, skúšobné obdobie bez karty, jedno na vlastníka, merače.

Callbacky z klienta

Overte, čo pošle klient — účtenku Apple, token Google, session id zo Stripe — a rozlíšte chybný vstup od výpadku obchodu či prístupových údajov.

Overovanie podpisov a dôvera

Ako sa overuje podpis každého obchodu — primitíva z crypto-for-laravel, pripnuté certifikáty Apple a validovaná tolerancia posunu hodín.

Webhook routy

Voliteľný endpoint POST /purchases/webhooks/{provider}, ktorý overí, uloží, spustí udalosti a odpovie 204.

Fronta, auditný log a replay

Ukladajte overené notifikácie cez frontu, veďte auditný log každého payloadu a znova ho spracujte príkazom purchases:replay.

Vlastní poskytovatelia

Pridajte vlastného platobného poskytovateľa implementáciou kontraktu Provider a vrátením GenericResult.

Enumy a výnimky

Enumy Status a ResultType s pomocníkmi pre výberové zoznamy a validáciu, ako aj typy výnimiek balíka.

Artisan príkazy

Inštalujte a nastavte poskytovateľov, vypíšte ich pripravenosť, overte prístupové údaje priamo v obchodoch a znova spracujte notifikácie.

Testovanie

Testujte nákupné toky bez skutočných platieb a sieťových volaní — Purchases::fake() zaznamená handle(), sync() aj replay(); FakeResult a PayloadFactory.

Požiadavky

PHP 8.4+ s ext-bcmath, Laravel 13 a balíky Roundly pre kryptografiu, enumy, peniaze a package-toolkit — bez SDK tretích strán.

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.