Anleitungen
Rezept: Telegram-Bot
Verkaufen Sie Bot-Befehle, eine Rolle oder eine private Gruppe. Jeder Nutzer erhält eine eigene Rechnung; ein signierter Webhook schaltet den Zugang frei.
Der Bot sieht nie Geld. Bei /buy schickt er dem Nutzer seinen eigenen Rechnungslink; Ihr Server hört invoice.fulfilled und schaltet den Zugang frei. Jeder bezahlte Befehl fragt Perly Pay, sodass nach einem Neustart nichts verloren geht. Discord funktioniert genauso, mit einer Rolle.
sell-bot-access des Perly-Pay-Plugins in Ihrem Projekt um. Ein lauffähiges Beispiel ist examples/telegram-bot (MIT) im Repository des Plugins.So funktioniert es
- 1
Produkt und Preis
Einmalig oder lebenslang für „für immer“, Laufzeit für Pässe, Abo für eine Mitgliedschaft mit Verlängerung per Rechnung.
- 2
Ein Kunde pro Chat-Nutzer
external_id: "tg:<user id>". Fragen Sie nur bei Abos nach einer E-Mail: Dorthin gehen die Verlängerungen. - 3
/buy
Eine Rechnung mit der Chat-ID in
metadata, per Button gesendet. Eine Rechnung pro Nutzer und Tag – dank eines Idempotenzschlüssels. - 4
Zugang freischalten
Bei
invoice.fulfilleddie Chat-ID ausmetadatalesen und antworten: eine Nachricht, eine Einmal-Einladung, eine Rolle. - 5
Bezahlte Befehle
entitlements.check({ customer_external_id: "tg:<id>", product }).
Beispiel starten
- 1
Installieren
npm installinexamples/telegram-bot(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
Schreiben Sie dem Bot
/buy, öffnen Sie Pay und klicken Sie auf Simulate payment: Der Bot sagt „Payment confirmed“, und/secretantwortet.
Fallstricke
- Ein gemeinsamer Zahlungslink für alle: Man sieht nicht, wer bezahlt hat. Eine Rechnung pro Person, mit der Chat-ID.
- Zugang freischalten, wenn der Nutzer auf „Ich habe bezahlt“ tippt. Freischalten darf nur der Webhook oder
entitlements.check. - Zugang im Speicher des Bots. Nach einem Neustart ist er weg; fragen Sie Perly Pay.