Zum Inhalt

Krypto-Zahlungen in Next.js annehmen

So richten Sie Krypto-Checkout in Next.js ein: Ablauf, Anbieterwahl, Sicherheit und Server-Routen für Zahlungsbestätigung.

Payora11 Min. LesezeitEN · RU · UK · ES · DE · FR · IT · PL · PT · HI · ZH
Krypto-Zahlungen in Next.js annehmen

Verstehen Sie den Zahlungsablauf und die Anforderungen

Wenn Sie lernen möchten, wie man Krypto-Zahlungen auf einer Next.js-Website annimmt, beginnen Sie mit dem Ablauf, nicht mit dem Code. Wenn Sie Krypto Zahlungen in Next.js annehmen wollen, besteht ein Krypto-Checkout in der Regel aus 4 Schritten: Bestellung anlegen, Zahlungsanforderung anzeigen, Blockchain überwachen und die Bestellung erst nach der Verifizierung als bezahlt markieren.

Das klingt einfach. In der Praxis ist es das selten.

„Krypto akzeptieren“ auf einer Next.js-Seite bedeutet nicht, dass Ihre App selbst Coins hält. In den meisten Fällen erstellt Ihre Website eine Zahlungsanforderung für einen Kunden, der Kunde sendet die Mittel aus einer Wallet, und ein Zahlungsdienst oder Ihr eigenes Backend bestätigt die Überweisung. Ein guter Checkout braucht außerdem ein Zeitlimit, denn ein Kurs, der um 10:00 fair war, kann 20 Minuten später schon nicht mehr passen.

Sie müssen auch wissen, welche Netzwerke und Assets Sie unterstützen. Ein Shop, der USDT auf Ethereum, Polygon und BNB Chain akzeptiert, erledigt nicht dieselbe Aufgabe wie eine Seite, die nur BTC auf einer einzigen Chain annimmt. Die Netzwerkwahl beeinflusst Gebühren, Bestätigungszeit und die Art der Wallet, die Ihr Kunde benötigt. Wenn Sie das falsche Netzwerk akzeptieren, kann die Zahlung dort ankommen, wo Sie sie keiner Bestellung zuordnen können.

Ein praktischer Test ist hier: Kann ein Erstkunde den Checkout in unter 2 Minuten abschließen? Wenn nicht, muss der Ablauf verbessert werden. Eine Wallet, ein Betrag, eine klare Adresse, eine klare Statusseite. Genau diese Klarheit erwarten die Menschen.

Wählen Sie einen Krypto-Zahlungsanbieter oder eine Wallet-Integration

Sie können Krypto-Checkout auf 3 grundlegende Arten umsetzen. Erstens: ein gehosteter Checkout eines Anbieters. Zweitens: eine direkte Wallet-Integration, bei der Ihre App mit einer Wallet-Bibliothek spricht. Drittens: ein Payment-Gateway, das zwischen Nutzer und Blockchain sitzt. Jede Option hat andere Einrichtungskosten, und die richtige Wahl hängt davon ab, ob Sie Geschwindigkeit, Kontrolle oder beides wollen.

Ein gehosteter Checkout ist meist am schnellsten live. Sie erstellen eine Rechnung, leiten den Kunden auf eine gehostete Seite weiter, und der Anbieter übernimmt die Erkennung der Zahlung. Eine direkte Wallet-Integration kann sich in Ihrem Produkt stimmiger anfühlen, bedeutet aber oft mehr Code, mehr Sonderfälle und mehr Verantwortung bei der Zahlungsbestätigung. Ein Gateway sitzt dazwischen und ist im Handel oft die praktikable Wahl, weil es Rechnungen erstellen, Bestätigungen verfolgen und Webhooks bereitstellen kann.

Prüfen Sie vor der Entscheidung 5 Dinge: unterstützte Coins, unterstützte Chains, Webhook-Unterstützung, Ablauf der Rechnung und wie viel Backend-Code der Anbieter von Ihnen erwartet. Wenn Sie Optionen für einen Shop vergleichen, ist der Leitfaden zum Krypto Zahlungsanbieter für E-Commerce ein guter Einstieg, weil er dieselbe Entscheidung aus Sicht eines Verkäufers einordnet. Ein Freelancer, der Kunden abrechnet, achtet möglicherweise stärker auf Rechnungen und Zahlungslinks als ein Onlineshop — deshalb ist auch der Blick auf Krypto-Zahlungsgateways für Freelancer wichtig.

Noch ein Hinweis: Wenn ein Anbieter Unterstützung für „alle wichtigen Assets“ behauptet, verlangen Sie eine genaue Liste. „Alle“ ist zu ungenau. „BTC, ETH, USDC auf 3 Netzwerken“ ist eine Entscheidung, mit der Sie tatsächlich arbeiten können.

Richten Sie Ihr Next.js-Projekt für Zahlungen ein

Beginnen Sie mit einer sauberen App-Struktur. In einem Next.js-App-Router-Projekt legen Sie die Zahlungslogik in Server-Routen oder Server Actions ab und halten geheime Schlüssel vom Client fern. Ein einfaches Layout könnte 1 Produktseite, 1 Checkout-Formular, 1 API-Route zum Erstellen von Rechnungen und 1 Webhook-Route für Zahlungsereignisse umfassen. Wenn Sie Next.js Krypto Checkout einrichten, lohnt sich diese Trennung von Anfang an.

Ihre Umgebungsvariablen sollten den geheimen Schlüssel des Zahlungsanbieters, den Webhook-Secret und öffentliche API-Werte abdecken, die im Browser sichtbar sein dürfen. Platzieren Sie den geheimen Schlüssel niemals in einer Client-Komponente. Dieser Fehler kann das gesamte Konto gefährden und gehört zu den wenigen Problemen, die schnell teuer werden.

Wenn Ihr Anbieter ein SDK bereitstellt, installieren Sie es nur in der Server-Schicht. Wenn er einfache HTTP-Endpunkte anbietet, funktioniert das ebenfalls. Die Grundidee bleibt gleich: Der Browser bittet Ihr Next.js-Backend darum, eine Zahlungsanforderung zu erstellen, und das Backend spricht mit dem Anbieter. Der Browser sollte niemals entscheiden, dass eine Bestellung bezahlt ist.

Für Teams, die von Kartenzahlungen umsteigen, ist die Struktur nicht sehr anders als bei einem Stripe-Ablauf — nur mit anderen Prüfschritten. Wenn Ihnen dieser Vergleich hilft, lesen Sie wie Sie von Stripe migrieren, bevor Sie die API-Routen planen. Eine API-Route reicht für einen Prototypen; 3 oder 4 Routen können sinnvoller sein, sobald Sie Wiederholungsversuche, Rückerstattungen und eine Historie des Bestellstatus hinzufügen.

Erstellen Sie die Checkout-Oberfläche in Next.js

Die Checkout-Oberfläche kann eine Produktkarte, eine Warenkorbseite oder ein einfacher Button sein, der eine Zahlung startet. In einer Client-Komponente von Next.js sendet der Button in der Regel die Bestelldaten an Ihre Server-Route, wartet auf eine Antwort und leitet den Kunden dann weiter oder zeigt Wallet-Anweisungen an.

Halten Sie das Formular kurz. Produktname, Betrag, E-Mail und vielleicht eine Bestellnotiz reichen oft aus. Wenn Sie 9 Felder abfragen, rechnen Sie mit mehr Abbrüchen. Wenn Sie 3 abfragen, schließen mehr Menschen den Vorgang ab. Ein Checkout, der 30 Sekunden dauert, fühlt sich besser an als einer, der 3 Minuten benötigt — selbst wenn beide mit derselben Zahlung enden.

Bei einem Zahlungsbutton sollte die Aktion klar sein: „Mit Krypto bezahlen“. Nicht „Weiter“ oder „Fortfahren“. Solche Beschriftungen verschleiern die nächste Hürde. Wenn der Button geklickt wird, rufen Sie Ihr Backend auf, holen die Zahlungsanforderung ab und zeigen dann Wallet-Adresse, QR-Code und Betrag in derselben Ansicht an.

Ein nützliches Muster ist, die Bestellübersicht sichtbar zu lassen, während die Zahlungsinformationen geladen werden. So sieht der Kunde den genauen Artikel und den exakten Betrag zusammen. Das reduziert Verwirrung, wenn der Zahlungswert in USD festgelegt ist, aber in einem volatilen Asset bezahlt wird.

Erstellen Sie Zahlungsadressen, Rechnungen oder Zahlungslinks

Jede Bestellung sollte genau 1 eindeutigen Zahlungsauftrag haben. Das kann eine Wallet-Adresse, ein Zahlungslink oder ein Rechnungsobjekt Ihres Anbieters sein. Wenn Sie für jeden Kunden dieselbe Adresse wiederverwenden, wird die Zuordnung unübersichtlich und erzeugt unnötigen Supportaufwand.

Für einen kleinen Shop könnten Sie pro Bestellung eine neue Adresse erzeugen und Adresse, erwarteten Betrag, Asset und Ablaufzeit in Ihrer Datenbank speichern. Bei einem flow mit Anbieter kann der Anbieter stattdessen eine Rechnungs-ID und einen gehosteten Zahlungslink zurückgeben. In jedem Fall sollten Sie die Zahlungsanforderung vorab mit der Bestell-ID verknüpfen, bevor der Kunde sie sieht.

Zeigen Sie dem Kunden die Angaben in klarer Form: Asset, Chain, Betrag und Zieladresse. Ein QR-Code hilft, sollte aber den Text nicht ersetzen. Manche Wallets scannen QR-Codes nur schlecht; manche Nutzer kopieren die Daten manuell. Eine klare Adresse bleibt die wichtigste Absicherung.

Wenn Sie adressenbasierte Abrechnung für Dienstleistungen oder Rechnungen unterstützen müssen, sind die Muster ähnlich wie im Artikel zu Krypto-Zahlungsgateways für Freelancer. Ein Zahlungslink ist oft einfacher für einzelne Bestellungen; ein eigener Rechnungsdatensatz ist besser, wenn Sie Zahlungshistorie und Erinnerungen brauchen.

Bestätigen Sie Blockchain-Zahlungen und aktualisieren Sie den Bestellstatus

Die Zahlungsbestätigung ist der Punkt, an dem viele Teams schlampig werden. Markieren Sie eine Bestellung nicht als bezahlt, nur weil eine Wallet eine ausstehende Überweisung anzeigt. Vertrauen Sie nicht allein dem Browser. Ihr Backend sollte die Transaktion verifizieren, indem es die Chain direkt prüft oder einen signierten Webhook des Zahlungsanbieters empfängt.

Der übliche Ablauf ist einfach. Der Anbieter erkennt die Zahlung, sendet einen Webhook an Ihre Next.js-Route, und Ihr Server prüft die Signatur, bevor er den Bestellstatus ändert. Wenn Sie diesen Schritt selbst umsetzen, müssen Sie den Transaktions-Hash, die Zieladresse, das Asset, den Betrag und die Anzahl der Bestätigungen prüfen, die Ihre Richtlinie verlangt. Eine Zahlung kann echt aussehen, bevor sie endgültig ist.

Nutzen Sie ein 3-Stufen-Modell für Bestellungen: pending, confirmed, paid. Pending bedeutet, dass die Anforderung existiert. Confirmed bedeutet, dass die Chain die Zahlung gesehen hat und sie genügend Bestätigungen hat. Paid bedeutet, dass Ihre App die Auslieferung oder den Zugriff freigegeben hat. Halten Sie diese Zustände getrennt, damit ein Support-Mitarbeiter weiß, ob ein Kunde wartet, verifiziert ist oder bereits beliefert wurde.

Wenn Webhooks Teil Ihres Stacks sind, validieren Sie sie jedes Mal. Der Artikel zu wie man signierte Payora-Webhooks überprüft ist auch dann nützlich, wenn Sie kein PHP verwenden, denn das Grundprinzip ist dasselbe: Nachrichten ablehnen, die nicht beweisen, dass sie vom Anbieter stammen. Genau dieser eine Check kann gefälschte Zahlungsereignisse sofort stoppen.

Behandeln Sie Sonderfälle, Sicherheit und Tests

Krypto-Checkout scheitert auf mehr Arten als Karten-Checkout. Ein Kurs kann ablaufen. Ein Kunde kann Gelder auf das falsche Netzwerk senden. Eine Wallet kann um einen kleinen Betrag zu wenig überweisen. Ein Browser kann mitten im Vorgang neu laden. Jeder dieser Fälle braucht eine Antwort, und jede Antwort sollte den Nutzer zum nächsten Schritt führen.

Abgelaufene Kurse sollten nicht in der Schwebe bleiben. Wenn ein Zahlungslink 15 Minuten gültig ist, zeigen Sie diesen Timer deutlich an und erstellen Sie eine neue Anforderung, wenn er abläuft. Überweisungen auf dem falschen Netzwerk brauchen einen Supportpfad, denn das Geld kann vorhanden sein, aber nicht dort, wo Ihre App es erwartet. Unterzahlungen können akzeptiert, abgelehnt oder zur Prüfung markiert werden — aber Ihre Richtlinie sollte vor dem Start feststehen, nicht erst nach der ersten Beschwerde.

Sicherheit ist nicht optional. Bewahren Sie geheime Schlüssel in serverseitigen Umgebungsvariablen auf. Prüfen Sie Webhook-Signaturen. Speichern Sie nur die minimal nötigen Zahlungsdaten. Wenn Sie Transaktions-IDs protokollieren, maskieren Sie alles Sensible, das für das Debugging nicht nötig ist. Testen Sie vor Live-Traffic auf Testnet oder mit den Sandbox-Tools des Anbieters. Wenn Sie eine praktische Checkliste möchten, sehen Sie sich an, wie man eine Krypto-Zahlung testet, bevor Sie eine echte Wallet verbinden.

Vergessen Sie doppelte Ereignisse nicht. Manche Anbieter versuchen Webhooks erneut, und Chains können dieselbe Zahlung in Ihrem System mehr als einmal sichtbar machen, wenn Sie unvorsichtig sind. Ihr Code zur Bestellaktualisierung sollte idempotent sein, das heißt: Dasselbe Ereignis darf dieselbe Bestellung nicht zweimal als bezahlt markieren. Diese eine Schutzmaßnahme spart Stunden.

Starten, überwachen und verbessern Sie das Checkout-Erlebnis

Die Bereitstellung auf Vercel oder einem ähnlichen Host funktioniert für Next.js meist gut, aber die Zahlungsteile brauchen trotzdem Aufmerksamkeit. Stellen Sie sicher, dass Ihr Webhook-Endpunkt öffentlich erreichbar ist, Ihre Umgebungsvariablen in der Produktion gesetzt sind und Ihr Build nicht von Werten abhängt, die nur lokal existieren. Eine Zahlungsroute, die auf Ihrem Laptop funktioniert und in der Produktion scheitert, ist ein klassischer Fehler.

Logging ist hier wichtig. Protokollieren Sie Rechnungserstellung, Webhook-Eingänge, Verifizierungsergebnisse und Statusänderungen. Verwenden Sie genug Details, um eine einzelne Bestellung vom Anfang bis zum Ende nachzuverfolgen, aber schreiben Sie keine Geheimnisse in Logs. Wenn ein Kunde sagt, er habe um 14:32 bezahlt, sollten Sie das passende Ereignis in Sekunden finden können — nicht erst nach Stunden.

Kleine UX-Änderungen können Reibung stärker senken, als viele erwarten. Zeigen Sie den Betrag zweimal an: einmal in der Bestellübersicht und einmal im Zahlungsschritt. Lassen Sie den Zahlungsbutton sichtbar, nachdem die Rechnung geladen wurde. Fügen Sie neben der Adresse einen Kopierbutton hinzu. Zeigen Sie den Bestätigungsschritt klar an, weil Nutzer die Seite beim Warten oft neu laden. Ein Status-Update nach 5 Sekunden kann sich wie 5 Minuten anfühlen, wenn die Seite still bleibt.

Ab hier ist die eigentliche Arbeit nicht die erste Zahlung. Es sind die zweite, die dritte und diejenige, die an der Grenze zwischen Wallet, Chain und Ihrem Next.js-Backend scheitert. Wenn Ihr System diese 3 Fälle sauber bewältigen kann, haben Sie einen Checkout, dem Kunden vertrauen können.

Kommentare

Bereit loszulegen?

Erstellen Sie ein Konto und bringen Sie Ihre erste Rechnung in unter einer Stunde zum Laufen.