Zum Inhalt

Start

Schnellstart mit npx

Ein Befehl richtet Perly Pay in Ihrem Projekt ein: eine Bezahl-Route, eine Webhook-Route mit Signaturprüfung, einen Pay-Button und Ihren Testschlüssel.

Als Markdown ansehen

npx perly-pay init liest Ihr Projekt, schreibt Code für sein Framework und bringt Sie bis auf einen Klick an eine Testzahlung heran. Es richtet nur den Testmodus ein; live schalten Sie im Dashboard.

Ausführen

bash
npx perly-pay init

Es erkennt Framework und Paketmanager, öffnet Dashboard → Developers und fragt nach einem Testschlüssel (sk_test_…). Einen Live-Schlüssel lehnt es ab.

Was es schreibt

FrameworkErkannt anDateien
Next.js (App Router)nextlib/perly-pay.ts, app/api/perly-pay/checkout/route.ts, app/api/perly-pay/webhook/route.ts, components/PayButton.tsx, app/perly-pay/page.tsx
Expressexpresslib/perly-pay.js, routes/perly-pay.js
Honohonolib/perly-pay.ts, routes/perly-pay.ts
Laravelartisan, laravel/frameworkapp/Http/Controllers/PerlyPayController.php, routes/perly-pay.php, config/perly-pay.php, resources/views/perly-pay/button.blade.php
Node.jsjede andere package.jsonlib/perly-pay.js, perly-pay.js (node:http)

TypeScript oder JavaScript, ES-Module oder CommonJS – wie in Ihrem Projekt, und in src/, wenn der Code dort liegt. npm, pnpm, yarn, bun und Composer.

  • Bezahlen. Der Button sendet ein Formular an /perly-pay/checkout (/api/perly-pay/checkout in Next.js). Es öffnet eine Rechnung und schickt den Käufer zum Bezahlen.
  • Webhook. /perly-pay/webhook prüft Perly-Signature auf dem rohen Body. Bei invoice.fulfilled ruft es grantAccess() auf – das einzige TODO, das Sie schreiben.
  • Pläne. Einmalverkäufe und Credit-Pakete, in PLANS oben im Hauptmodul. Der Plan, seine Credits und Ihre Nutzer-ID reisen in den Metadaten der Rechnung mit und kommen im Webhook zurück.
  • Schlüssel. PERLY_PAY_SECRET_KEY und PERLY_PAY_WEBHOOK_SECRET in .env.local (Next.js) oder .env, und die Datei selbst in .gitignore. Verfolgt git die Datei schon, schreibt init den Schlüssel nicht hinein und zeigt, wie Sie die Verfolgung aufheben.
init ersetzt nie eine vorhandene Datei oder einen vorhandenen Wert. --force ersetzt.

Webhook anbinden

Perly Pay muss Ihre Webhook-Adresse erreichen. Fügen Sie sie unter Dashboard → Developers → Webhooks für invoice.fulfilled hinzu und setzen Sie ihr Secret whsec_… in PERLY_PAY_WEBHOOK_SECRET. Oder lassen Sie init beides erledigen:

bash
npx perly-pay init --webhook-url https://your-app.example/perly-pay/webhook

Auf einem Laptop gibt ein Tunnel die öffentliche Adresse: cloudflared tunnel --url http://localhost:3000. Mehr unter Webhooks.

Eine Zahlung im Testmodus

  1. 1

    App starten

    Express und Node lesen .env mit node --env-file=.env oder dotenv.

  2. 2

    /perly-pay öffnen

    Klicken Sie auf Pay with crypto. Sie sind auf der Zahlungsseite.

  3. 3

    Simulate payment

    Die Rechnung wird bezahlt, dann erfüllt. Siehe Testmodus.

  4. 4

    grantAccess arbeiten sehen

    Ihr Webhook erhält invoice.fulfilled. Jetzt schreiben Sie, was er freischaltet.

Mit einem AI-Assistenten

--yes fragt nichts, daher führen Claude Code, Cursor oder Codex es für Sie aus. Geben Sie den Schlüssel und das, was Sie verkaufen:

bash
npx perly-pay init --yes --key sk_test_… --product "Logo review" --amount 4900

--json gibt ein Ergebnis aus, das der Assistent lesen kann.

Optionen

FlagWas es tut
--yes, -yOhne Rückfragen. Für AI-Assistenten und Skripte.
--framework <name>next, express, hono, laravel oder node, wenn falsch erkannt.
--key <sk_test_…>Ihr Testschlüssel. Standard: PERLY_PAY_SECRET_KEY, sonst wird gefragt.
--webhook-url <url>Registriert die Adresse für invoice.fulfilled und speichert ihr Secret.
--product <name>, --amount <cents>, --currency <code>Was Sie verkaufen, in USD oder EUR. --amount 4900 sind $49.00.
--installInstalliert auch das SDK. Sonst wird der Befehl ausgegeben.
--forceErsetzt vorhandene Dateien und Werte.
--plugin, --mcpZeigt, wie Sie das Claude-Code-Plugin und den Server perly-pay-mcp hinzufügen.
--dry-runSagt, was es tun würde, schreibt nichts.
--jsonGibt das Ergebnis als JSON aus.
--api <origin>, --dir <path>Ein anderes Perly Pay (lokal), ein anderer Ordner.

Live gehen

  • Verbinden Sie Live-Wallet-Schlüssel unter Dashboard → Wallets.
  • Erstellen Sie einen Live-Schlüssel (sk_live_…) und einen Live-Webhook.
  • Setzen Sie sie dort, wo die App läuft. Der Code bleibt, wie er ist. Den Rest der API finden Sie unter SDKs.