Poradniki
Przepis: kredyty API
Sprzedawaj przedpłacone kredyty do API lub funkcji AI i pobieraj jeden za zapytanie. Gdy saldo nie wystarcza — odpowiedź 402 z linkiem do doładowania.
Kupujący z góry opłacają pakiet kredytów; każde zapytanie zużywa kilka. Rozliczenie prowadzi Perly Pay: zużycie to jedno atomowe wywołanie, które nie schodzi poniżej zera, a każdy kupujący ma własną stronę doładowania. Nic nie jest pobierane samo — gdy kredyty się skończą, kupujący doładowuje. Wszystko o kredytach jest w Sell credits; tutaj przepis wokół nich.
sell-credits wtyczki Perly Pay. Działający przykład to examples/api-credits (MIT) w repozytorium wtyczki.Jak to działa
- 1
Pakiet kredytów
Produkt i cena z
model: "credit_pack",unit_amountw centach icredits. Raz na tryb. - 2
Twoi użytkownicy to klienci
Tworzeni raz z
external_id(Twoim identyfikatorem użytkownika); potemcredits.*przyjmują ten identyfikator. - 3
Doładowanie
credits.topUpUrl(userId)to własna strona kupującego: wybiera pakiet i płaci. Każdy opłacony pakiet dodaje kredyty. - 4
Zużycie za zapytanie
Najpierw
credits.consume(userId, cost, { idempotencyKey }), potem praca. Ponowienie z tym samym kluczem zwraca pierwsze pobranie, więc klucz dla każdego zapytania tworzy Twój serwer i nigdy nie bierze go od wywołującego. - 5
Brakuje?
insufficient_credits(409) niczego nie pobiera: odpowiedz402ze stroną doładowania, a nie 500.
Uruchom przykład
- 1
Zainstaluj
npm installwexamples/api-credits(Node 20.12+). - 2
Klucz
Skopiuj
.env.exampledo.envi wpisz klucz testowy (sk_test_…) wPERLY_PAY_SECRET_KEY. - 3
Przygotuj
npm run setuptworzy produkt i cenę Twoim kluczem i drukuje ich identyfikatory do.env. - 4
Uruchom
npm start(lubnpm run dev), jak mówi jego README. - 5
Zapłać bez portfela
Wywołaj
POST /v1/shout(402), otwórz stronę, którą dajePOST /top-up, wybierz pakiet, kliknij Simulate payment na fakturze i wywołaj ponownie: 200 iX-Credits-Remaining: 499.
Pułapki
- Zużycie bez klucza idempotencji: powtórzone zapytanie pobiera dwa razy.
- Klucz pobrania z tego, co wysyła klient (nagłówek
Idempotency-Key): ten sam klucz zwraca pierwsze pobranie jako sukces i klient znowu dostaje pracę bez zapłaty. - Sprawdzanie salda, a potem pobieranie w dwóch krokach.
consumesam nie schodzi poniżej zera; saldo służy do wyświetlania. - Najpierw praca, potem zużycie. Odwrotnie: najpierw zużycie.
- Testowe identyfikatory z kluczem produkcyjnym. Produkty, ceny i webhooki należą do jednego trybu: przed startem powtórz konfigurację z
sk_live_….