Gestionează abonamente și facturi
Gestionează abonamente și facturi
Namespace-ul client.billing împachetează /api/v1/billing/* — Stripe Checkout pentru abonamente noi, redirecționarea către portalul clientului Stripe, statusul curent al abonamentului, istoricul facturilor și anularea sau reactivarea abonamentului. Vezi documentația REST corespondentă la API Facturare.
Eșecurile la nivel HTTP apar ca EBonApiError — vezi Erori și /ro/api/errors.
Pornește o sesiune Stripe Checkout
Apelează client.billing.createSubscription(body) pentru a crea o sesiune Stripe Checkout pe care clientul tău o poate finaliza în browser.
async createSubscription(body: CreateSubscriptionBody): Promise<CreateSubscriptionResult>
| Nume | Tip | Obligatoriu | Note |
|---|---|---|---|
priceId | string | nu | Suprascrie prețul Stripe implicit. |
successUrl | string | da | URL la care Stripe redirecționează după un checkout reușit. |
cancelUrl | string | da | URL la care Stripe redirecționează dacă checkout-ul este anulat. |
Returnează { sessionId, url, clientSecret } — redirecționează browserul la url sau folosește clientSecret cu componenta Checkout încorporată Stripe.
const session = await client.billing.createSubscription({
successUrl: 'https://app.example.com/billing/success',
cancelUrl: 'https://app.example.com/billing/cancel',
});
window.location.href = session.url;
Deschide portalul clientului Stripe
Apelează client.billing.getPortalUrl(body) pentru a obține un URL Stripe Customer Portal de scurtă durată unde clientul poate gestiona metodele de plată, descărca facturi și actualiza datele de facturare.
async getPortalUrl(body: PortalBody): Promise<PortalResult>
| Nume | Tip | Obligatoriu | Note |
|---|---|---|---|
returnUrl | string | da | URL la care Stripe redirecționează când utilizatorul termină. |
Returnează { url: string }.
const { url } = await client.billing.getPortalUrl({
returnUrl: 'https://app.example.com/billing',
});
Verifică statusul curent al abonamentului
Apelează client.billing.getSubscription() pentru a citi planul curent și starea abonamentului.
async getSubscription(): Promise<SubscriptionInfo>
Fără parametri. Returnează { plan, status, subscription: { id, status, currentPeriodEnd, cancelAtPeriodEnd } | null }.
const info = await client.billing.getSubscription();
if (info.subscription?.cancelAtPeriodEnd) {
console.warn('Abonamentul nu se va reînnoi.');
}
Listează facturile
Apelează client.billing.getInvoices(query?) pentru a parcurge facturile anterioare folosind un cursor în stil Stripe.
async getInvoices(query?: ListInvoicesQuery): Promise<ListInvoicesResult>
| Nume | Tip | Obligatoriu | Note |
|---|---|---|---|
startingAfter | string | nu | Cursor — trimite ID-ul ultimei facturi din pagina anterioară. |
Returnează { invoices: InvoiceData[], hasMore: boolean }.
const { invoices, hasMore } = await client.billing.getInvoices();
Anulează un abonament la sfârșitul perioadei
Apelează client.billing.cancelSubscription() pentru a programa anularea la sfârșitul perioadei de facturare curente.
async cancelSubscription(): Promise<undefined>
Fără parametri. Returnează undefined la succes. Abonamentul rămâne activ până la currentPeriodEnd; apelează client.billing.resumeSubscription() pentru a inversa anularea înainte de acel moment.
await client.billing.cancelSubscription();
Reactivează un abonament anulat
Apelează client.billing.resumeSubscription() pentru a anula o anulare programată cât timp abonamentul este încă în fereastra de grație.
async resumeSubscription(): Promise<undefined>
Fără parametri. Returnează undefined la succes. Funcționează doar cât timp abonamentul este încă în fereastra de grație a anulării.
await client.billing.resumeSubscription();
Prezentare generală SDK
Ce este clientul TypeScript @e-bon/sdk, cum se instalează, cum se instanțiază cu o cheie API sau JWT și cele zece accesoare de resurse pe care le expune.
client.apiKeys
Referință pentru ApiKeysResource — listează, creează, actualizează și revocă cheile API programatice, oglindind /api/v1/org/api-keys.