İçeriğe geç

Rehberler

Tarif: Telegram botu

Bot komutlarını, bir rolü ya da özel bir grubu sat. Her kullanıcı kendi faturasını alır; imzalı bir webhook erişimi açar.

Markdown olarak aç

Bot parayı görmez. /buy komutunda kullanıcıya kendi fatura bağlantısını gönderir; sunucun invoice.fulfilled'ı duyar ve erişimi açar. Her ücretli komut Perly Pay'e sorar, bu yüzden yeniden başlatmadan sonra hiçbir şey kaybolmaz. Discord'da da aynı, rol üzerinden.

Asistanla: bu tarifi projende Perly Pay eklentisinin sell-bot-access skill'i uygular. Çalıştırılabilir örnek, eklenti deposundaki examples/telegram-bot (MIT).

Nasıl çalışır

  1. 1

    Ürün ve fiyat

    Tek seferlik ya da ömür boyu — "sonsuza dek" için, süreli — geçiş kartları için, abonelik — faturayla yenilenen üyelik için.

  2. 2

    Her sohbet kullanıcısına bir müşteri

    external_id: "tg:<user id>". E-postayı yalnızca abonelikler için sor: yenilemeler oraya gider.

  3. 3

    /buy

    metadata içinde sohbet kimliğiyle bir fatura, butonla gönderilir. Idempotency anahtarı sayesinde kullanıcı başına günde bir fatura.

  4. 4

    Erişimi aç

    invoice.fulfilled geldiğinde sohbet kimliğini metadata'dan al ve yanıtla: mesaj, tek kullanımlık davet, rol.

  5. 5

    Ücretli komutlar

    entitlements.check({ customer_external_id: "tg:<id>", product }).

/buy
const invoice = await pay.invoices.create(
  { line_items: [{ price: PRICE }], customer: customer.id, metadata: { chat_id: String(chatId) } },
  { idempotencyKey: `buy-${userId}-${today}` },
);
await tg("sendMessage", { chat_id: chatId, text: "Pay:", reply_markup: { inline_keyboard: [[{ text: "Pay", url: invoice.url }]] } });

Örneği çalıştır

  1. 1

    Kur

    examples/telegram-bot içinde npm install (Node 20.12+).

  2. 2

    Anahtar

    .env.example dosyasını .env olarak kopyala ve test anahtarını (sk_test_…) PERLY_PAY_SECRET_KEY içine yaz.

  3. 3

    Hazırla

    npm run setup senin anahtarınla bir ürün ve fiyat oluşturur ve .env için kimliklerini yazdırır.

  4. 4

    Çalıştır

    README'sinde dediği gibi npm start (ya da npm run dev).

  5. 5

    Cüzdansız öde

    Bota /buy yaz, Pay'i aç ve Simulate payment'a bas: bot "Payment confirmed" der ve /secret yanıt verir.

Tuzaklar

  • Herkes için tek bir ortak ödeme bağlantısı: kimin ödediği görünmez. Her kullanıcıya, sohbet kimliğiyle bir fatura.
  • Kullanıcı "Ödedim"e bastığında erişim açmak. Erişimi yalnızca webhook ya da entitlements.check açar.
  • Erişimi botun belleğinde tutmak. Yeniden başlatınca kaybolur; Perly Pay'e sor.