Poradniki
Przepis: bot w Telegramie
Sprzedawaj komendy bota, rolę lub prywatną grupę. Każdy użytkownik dostaje własną fakturę; podpisany webhook otwiera dostęp.
Bot nie widzi pieniędzy. Na /buy wysyła użytkownikowi jego własny link do faktury; Twój serwer słyszy invoice.fulfilled i otwiera dostęp. Każda płatna komenda pyta Perly Pay, więc po restarcie nic nie ginie. Discord — tak samo, przez rolę.
sell-bot-access wtyczki Perly Pay. Działający przykład to examples/telegram-bot (MIT) w repozytorium wtyczki.Jak to działa
- 1
Produkt i cena
Jednorazowa lub dożywotnia — „na zawsze”, okresowa — dla przepustek, subskrypcja — dla członkostwa z odnowieniem fakturą.
- 2
Klient dla każdego użytkownika czatu
external_id: "tg:<user id>". O e-mail pytaj tylko przy subskrypcjach: tam idą odnowienia. - 3
/buy
Faktura z identyfikatorem czatu w
metadata, wysłana przyciskiem. Jedna faktura na użytkownika na dzień — dzięki kluczowi idempotencji. - 4
Otwórz dostęp
Na
invoice.fulfilledweź identyfikator czatu zmetadatai odpowiedz: wiadomość, jednorazowe zaproszenie, rola. - 5
Płatne komendy
entitlements.check({ customer_external_id: "tg:<id>", product }).
Uruchom przykład
- 1
Zainstaluj
npm installwexamples/telegram-bot(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
Napisz do bota
/buy, otwórz Pay i kliknij Simulate payment: bot napisze „Payment confirmed”, a/secretodpowie.
Pułapki
- Jeden wspólny link do płatności dla wszystkich: nie widać, kto zapłacił. Faktura dla każdego, z identyfikatorem czatu.
- Otwieranie dostępu, gdy użytkownik kliknął „Zapłaciłem”. Otwiera tylko webhook albo
entitlements.check. - Dostęp w pamięci bota. Po restarcie go nie ma; pytaj Perly Pay.