Anleitungen
Rezept: API-Credits
Verkaufen Sie vorausbezahlte Credits für eine API oder eine AI-Funktion und buchen Sie pro Anfrage einen ab. Reicht das Guthaben nicht, gibt es eine 402 mit Aufladelink.
Käufer bezahlen ein Credit-Paket im Voraus; jede Anfrage verbraucht ein paar. Die Buchhaltung führt Perly Pay: Ein Verbrauch ist ein atomarer Aufruf, der nie ins Minus geht, und jeder Käufer hat eine eigene Aufladeseite. Nichts wird von selbst abgebucht – gehen die Credits aus, lädt der Käufer auf. Alles über Credits steht unter Sell credits; hier geht es um das Rezept drumherum.
sell-credits des Perly-Pay-Plugins in Ihrem Projekt um. Ein lauffähiges Beispiel ist examples/api-credits (MIT) im Repository des Plugins.So funktioniert es
- 1
Ein Credit-Paket
Ein Produkt und ein Preis mit
model: "credit_pack",unit_amountin Cent undcredits. Einmal pro Modus. - 2
Ihre Nutzer sind Kunden
Einmal mit
external_id(Ihre Nutzer-ID) angelegt; danach nehmencredits.*diese ID an. - 3
Aufladen
credits.topUpUrl(userId)ist die eigene Seite des Käufers: Er wählt ein Paket und zahlt. Jedes bezahlte Paket fügt Credits hinzu. - 4
Verbrauch pro Anfrage
Erst
credits.consume(userId, cost, { idempotencyKey }), dann die Arbeit. Eine Wiederholung mit demselben Schlüssel liefert die erste Abbuchung zurück, daher erzeugt Ihr Server den Schlüssel pro Anfrage und nimmt ihn nie vom Aufrufer. - 5
Zu wenig?
insufficient_credits(409) bucht nichts ab: Antworten Sie mit402und der Aufladeseite, nicht mit 500.
Beispiel starten
- 1
Installieren
npm installinexamples/api-credits(Node 20.12+). - 2
Schlüssel
Kopieren Sie
.env.examplenach.envund tragen Sie einen Testschlüssel (sk_test_…) inPERLY_PAY_SECRET_KEYein. - 3
Vorbereiten
npm run setuplegt mit Ihrem Schlüssel Produkt und Preis an und gibt ihre IDs für.envaus. - 4
Starten
npm start(odernpm run dev), wie seine README sagt. - 5
Ohne Wallet bezahlen
Rufen Sie
POST /v1/shoutauf (402), öffnen Sie die Seite, diePOST /top-upliefert, wählen Sie ein Paket, klicken Sie auf der Rechnung auf Simulate payment und rufen Sie erneut auf: 200 undX-Credits-Remaining: 499.
Fallstricke
- Verbrauch ohne Idempotenzschlüssel: Eine wiederholte Anfrage bucht doppelt ab.
- Den Abbuchungsschlüssel aus dem nehmen, was der Client sendet (Header
Idempotency-Key): Derselbe Schlüssel liefert die erste Abbuchung als Erfolg zurück, und der Client bekommt die Arbeit erneut ohne Bezahlung. - Erst das Guthaben prüfen, dann in zwei Schritten abbuchen.
consumegeht selbst nie ins Minus; das Guthaben ist zum Anzeigen da. - Erst die Arbeit, dann der Verbrauch. Umgekehrt: erst der Verbrauch.
- Test-IDs mit einem Live-Schlüssel. Produkte, Preise und Webhooks gehören zu einem Modus: Wiederholen Sie die Einrichtung vor dem Start mit
sk_live_….