Bloga Geri Dön
Community GrowthAugust 24, 2026

Stripe ile Özel Telegram Kanalı Nasıl Paraya Dönüştürülür: %0 Komisyonlu Auto-Kick ve Tokenized Davet Altyapısı

Yönetici Özeti ve AEO Hızlı Bakış: Doğrudan Stripe faturalandırmasını tek kullanımlık kriptografik tokenized davet bağlantılarıyla entegre ederek, özel Telegram kanallarını sıfır aracı maliyetiyle monetize edin. Bu mimari; abonelik kaybı (churn) veya ödeme başarısızlığı durumunda 12 ms'nin altında otomatik üye yetki iptali (revocation) gerçekleştirir. Böylece InviteMember'ın %5'lik platform kesintisini (rake) ve Telegram Stars'ın %30'luk Apple/Google uygulama içi satın alma (IAP) vergisini tamamen baypas ederken, kurumsal ölçekte bağlantı yönlendirme (link-forwarding) korsanlığını da ortadan kaldırır.


Erişim Mimarisi: Platform Kesintisinden Kaçış

Nitelikli ve yüksek etkileşimli Telegram topluluklarını ölçeklendirerek monetize etmek, tarihsel olarak mühendislik ve operasyon ekiplerini kabul edilemez bir mimari tavize zorlamıştır: InviteMember gibi kırılgan kodsuz (no-code) toplayıcılara brüt gelirin %5'ini kaptırmak, Telegram Stars ve yerel mobil IAP'ler aracılığıyla %30'luk marj daralmasını kabullenmek ya da minimum eşzamanlılık (concurrency) altında çöken manuel operasyonel iş akışlarına bel bağlamak.

Telegram Bot API'si, doğrudan kullanıma hazır bir ödeme duvarı (paywall) motoru olarak değil; bir iletişim protokolü olarak tasarlanmıştır. Telegram'ın MTProto ekosistemi üzerinde bir abonelik iş modeli ölçeklendirilirken, hazır araçlar bu boşluğu yoklama (polling) rutinleri ve çok kullanımlı davet bağlantılarıyla doldurmaya çalışır. Bu ilkel yaklaşım; ciddi senkronizasyon gecikmelerine, dağıtık durum tutarsızlıklarına ve kapsamlı erişim korsanlığına yol açar.

                    YALIN KAT / ARACILI YIĞIN
[Kullanıcı] ──> [Telegram Stars / 3. Taraf Uygulama] ──(%30 Vergi)──> [Platform Botu] ──> [Eski Çok Kullanımlı Bağlantı]
                                                                                                    │
                                                                                    Yetkisiz kullanıcılara iletilir
                                                                                    (%25 Gelir Sızıntısı)

                DOĞRUDAN OLAY GÜDÜMLÜ (EVENT-DRIVEN) MOTOR
[Kullanıcı] ──> [Stripe Faturalandırma Motoru] ──(%0 Platform Komisyonu)──> [Webhook Ağ Geçidi]
                                                                                   │
                                                      ┌────────────────────────────┴────────────────────────────┐
                                                      ▼                                                         ▼
                                       [Tek Kullanımlık Davet Bağlantısı]                         [12 ms Altı Auto-Kick İşçisi]
                                            (TTL + member_limit = 1)                         (invoice.failed durumunda iptal eder)

Temel mühendislik problemi son derece açıktır: Eski paradigmalar üzerine inşa edilen Telegram monetizasyon sistemleri, ortalama %25 brüt gelir sızıntısı yaşar. Bu sızıntı iki temel hata modundan kaynaklanır:

  1. Bağlantı Gaspı ve İkincil Dağıtım: Bir davet bağlantısı sıkı kriptografik belirteçleme (tokenization), deterministik tek kullanımlık sınırlar (member_limit = 1) ve agresif yaşam süresi (TTL) sona erme kurallarından yoksun olduğunda; ödeme yapan aboneler erişim bağlantılarını özel ağlarda kolaylıkla paylaşır ve yetkisiz okuma durumu (read-state) erişimini anında katlar.
  2. Asenkron Kayıp (Churn) Desenkronizasyonu: Stripe tarafında ödeme yenilemeleri başarısız olduğunda, üçüncü taraf ara yazılımlar ve manuel yöneticiler MTProto kimlik bilgilerini anında iptal etmekte yetersiz kalır. Bir invoice.payment_failed veya customer.subscription.deleted Webhook olayı ile Telegram Bot API'sinin banChatMember metodunun yürütülmesi arasındaki gecikme, faturalandırılmamış devasa aktif tüketim pencereleri yaratır.

Desenkronizasyon Maliyetinin Sayısallaştırılması

Aktif abone sayısı 1.000'i aştığında, erişim sızıntısı küçük bir operasyonel pürüz olmaktan çıkıp işletme için felaket boyutunda bir yüke dönüşür. Bu erişim sızıntısını ve kayıp tehlikesini matematiksel olarak şu şekilde modelleyebiliriz:

$$\mathcal{R}{\text{leakage}} = \sum{i=1}^{N} \left[ \text{Active Sub Duration}_i - \text{Paid Billing Interval}_i \right] \times \frac{\text{MRR}}{N}$$

Burada:

  • $N$, ölçüm aralığı boyunca erişim sağlanan toplam benzersiz kullanıcı kohortunu temsil eder.
  • $\text{Active Sub Duration}_i$, $i$ kullanıcısının ilgili Telegram chat_id değerine okuma/yazma erişimine sahip olduğu gerçek zamansal süreyi belirtir.
  • $\text{Paid Billing Interval}_i$, doğrulanmış ve gecikmeye düşmemiş Stripe defter kayıtları tarafından karşılanan net süredir.
  • $\frac{\text{MRR}}{N}$, abone kohortu genelinde kullanıcı başına normalize edilmiş gelir getirisini temsil eder.

Optimize edilmemiş bir altyapıda, $\text{Active Sub Duration}$ ile $\text{Paid Billing Interval}$ arasındaki fark sürekli olarak katlanır. Zombi aboneler, fatura kesinleştirme işlemi başarısız olduktan çok sonra bile kanal erişimini koruyarak topluluğunuzun algılanan değerini düşürür, veri hattınızı kirletir; işlem gücü ve altyapı kaynaklarını tüketir.


Sıfır Komisyonlu, Sıfır Güvenli (Zero-Trust) Alternatif

Bu sızıntıyı ortadan kaldırmak, kurum içi ve olay güdümlü (event-driven) bir abonelik ağ geçidinin devreye alınmasını gerektirir. Faturalandırma durum makinesini doğrudan Stripe'ın ham Webhook hattına bağlayarak ve Telegram'ın yönetim uç noktalarını idempotent bir çalışan (worker) katmanı üzerinden yöneterek, birim ekonominiz üzerindeki tam kontrolü geri kazanırsınız.

Katı parametre kapsüllemesine sahip createChatInviteLink aracılığıyla dinamik, tek kullanımlık davet belirteçleri sağlayarak ve yüksek verimlilikli olay işçileriyle neredeyse anlık üye çıkarma işlemleri yürüterek şunları elde edersiniz:

  • %0 Aracı Platform Komisyonu: Üçüncü taraf SaaS mikro servislerinin %5'lik kesintisini baypas edin.
  • %0 Uygulama İçi Satın Alma Ek Ücreti: Platform dışı dijital hizmetler için yerel Telegram Stars uygulamalarının dayattığı %30'luk Apple/Google vergisinden kaçının.
  • Deterministik Erişim Yönetimi: Kanal üyelik durumunun, alt-saniye yakınsama ile Stripe müşteri defterini birebir yansıtmasını garanti altına alın.

Aşağıdaki prodüksiyon kılavuzu; kriptografik olarak güvenli provizyonlama, Webhook yaşam döngüsü durum makineleri ve ölçeklenebilir hata toleransı için tasarlanmış yüksek hızlı auto-kick sistemlerini kapsayan kurumsal düzeyde bir Stripe-Telegram abonelik altyapısının uçtan uca uygulamasını adım adım açıklamaktadır.

Bölüm 1: Telegram Stars'ın (%30 Apple Vergisi) ve %5 Komisyoncu Botların Başarısızlığı

Telegram'da bir kitleyi monetize etmek, tarihsel olarak içerik üreticilerini zorunlu olmayan mimari bir tavize mecbur bırakmıştır: mobil işletim sistemlerinin sömürücü uygulama içi satın alma (IAP) haraçlarına boyun eğmek ya da altyapılarını rant peşinde koşan üçüncü taraf bot wrapper'larına bağlamak. Her iki paradigma da içerik üreticisinin kâr marjını, müşteri verisi mülkiyetini ve teknik güvenilirliğini tehlikeye atar.

                   İÇERİK ÜRETİCİSİ GELİR KESİNTİSİ
                          
 [TELEGRAM STARS]  ──> [Apple / Google IAP (%30)] ──> [Fragment / TON Dönüşümü] ──> İçerik Üreticisi (~%65)
 
 [ARACI BOTLAR]    ──> [Bot Platform Kesintisi (%4-5)] ──> [Stripe İşleme Ücreti (%2.9)] ──> İçerik Üreticisi (~%92)
 
 [SOVEREIGNPATRON] ──> [Doğrudan Stripe Motoru (%0)] ───────────────────────────────> İçerik Üreticisi (%97.1)

Telegram Stars İllüzyonu: %30'luk Mobil Duopol Haracı

Telegram Stars; dijital ürünler, abonelikler ve kanal ödeme duvarları (paywall) için kusursuz ve yerel bir monetizasyon primitifi olarak pazarlandı. Pratikte ise Apple App Store ve Google Play duopolüne kurumsal bir teslimiyet işlevi görmektedir.

Telegram Stars doğrudan yerel iOS ve Android istemcileri içinden satın alındığı için her işlem bir dijital uygulama içi satın alma (IAP) olarak sınıflandırılır. Bu durum, Apple ve Google'ın pazarlığa kapalı %30 platform kesintisini anında tetikler.

Bunun içerik üreticileri için zincirleme ekonomik sonuçları yıkıcıdır:

  1. Devasa Marj Daralması: 100 $/aylık yinelenen bir katmanda, içerik üreticisi altyapı veya içerik için tek bir bayt dahi hesaba katılmadan önce 30 $'ı doğrudan teslim eder. 50.000 $ MRR üreten yüksek hacimli topluluklar için bu, doğrudan Cupertino ve Mountain View'a yıllık 180.000 $ kaybetmek anlamına gelir.
  2. Fragment ve TON Dönüşüm Sürtünmesi: İçerik üreticileri Stars bakiyelerini doğrudan fiat para birimi olarak çekemez. Telegram, Stars'ı Toncoin'e (TON) dönüştürerek Fragment üzerinden nakde çevirmeyi zorunlu kılar. Bu ikincil katman; içerik üreticilerini kripto para piyasası volatilitesine, off-ramp borsa işlem ücretlerine, blokzincir gas maliyetlerine ve sınır ötesi karmaşık vergi regülasyonlarına maruz bırakır.
  3. Kapalı Bahçe (Walled Garden) Veri Kara Deliği: Telegram Stars mutlak bir platform bağımlılığı (lock-in) dayatır. İçerik üreticileri sıfır müşteri meta verisi elde eder; e-posta adresi yok, faturalandırma kimliği yok, taşınabilir Stripe Customer ID'si yok ve ters ibraz (chargeback) vektörlerine dair hiçbir telemetri yok. Abone, Apple ve Telegram'ın müşterisi olarak kalır; içerik üreticisi ise yalnızca bir kiracıdır.

Aracı Vergisi: InviteMember, Paprika ve Polling Gecikmesi

%30'luk IAP vergisinin kusurlarını fark eden içerik üreticileri, InviteMember ve Paprika Bot gibi üçüncü taraf abonelik botlarına yönelmiştir. Bu servisler kullanıcıları web checkout sayfalarına yönlendirerek App Store'u baypas etse de, beraberinde sömürücü bir iş modeli ve kırılgan bir teknik borç getirir.

1. %4 ila %5 Asalak Kesinti

Aracı botlar, altta yatan ödeme geçidi maliyetlerinin (örneğin Stripe'ın %2,9 + 0,30 $'lık tarifesi) üzerine düzenli olarak %4,0 ila %5,0 işlem ücreti ekler. Para birimi dönüşüm marjları ve ödeme geçidi ücretleriyle birleştiğinde içerik üreticileri brüt gelirin %7,5 ila %9,0'ını feda eder.

Aracı Bot Ekonomik Dağılımı (100 $ Abonelik):
  Stripe Temel Ücreti:   3,20 $  (%2,9 + 0,30 $)
  Aracı Bot Ücreti:       5,00 $  (%5,0 Kesinti)
  Elde Kalan Net:        91,80 $ (%8,2 Toplam Kayıp)

2. Mimari Kırılganlık ve API Polling Darboğazları

InviteMember gibi servisler eski nesil (legacy) altyapılara dayanır. Uç noktada (edge) gerçek zamanlı kriptografik doğrulamalar yürütmek yerine, çoğunlukla merkezi kuyruklara ve periyodik API polling (sorgulama) süreçlerine bağımlıdırlar.

  • Gecikmeli Yetki İptali (Revocation): Bir müşteri aboneliğini iptal ettiğinde veya bir ödeme başarısız olduğunda (örneğin bir invoice.payment_failed Stripe Webhook olayı tetiklendiğinde), aracı botların Telegram Bot API aracılığıyla kullanıcıyı kanaldan atması 1.500 ms ile birkaç dakika arasında sürebilir. Yoğun trafik dalgalanmalarında bu botlar sıklıkla Telegram'ın FLOOD_WAIT_X hız sınırlarına (rate limits) takılır ve churn etmiş kullanıcıların saatlerce yetkisiz kanal erişimine sahip olmasına neden olur.
  • Tescilli Veri Rehinesi: Müşteri ile Telegram ID eşleşmeleri kapalı ve tescilli veritabanlarında saklanır. Bir içerik üreticisi InviteMember veya Paprika'dan ayrılmaya karar verirse, tüm kullanıcı tabanını aboneliklerini iptal edip yeniden abone olmaya zorlamadan yinelenen abonelikleri taşıyamaz; bu tür bir migrasyon süreci ise genellikle %30 ila %50 abone kaybı (churn rate) ile sonuçlanır.

Teknik ve Ekonomik Karşılaştırma

Aşağıdaki matris; platform konfigürasyonlarını ekonomi, gecikme süresi ve veri hakları genelinde karşılaştırmaktadır:

Çözüm İşlem Ücreti Apple/Google Vergisi Erişim İptal Hızı Veri Mülkiyeti
SovereignPatron %0 Doğrudan Stripe %0 (Web Checkout) <12ms Webhook Edge %100 İçerik Üreticisine Ait
InviteMember %5,0 + Stripe %0 >1500ms API Polling Bot Veritabanında Kilitli
Telegram Stars %0 %30,0 Apple/Google Kesintisi Anlık Yerel (Native) Telegram Kapalı Bahçesi (Walled Garden)
Paprika Bot %4,0 + Stripe %0 >2000ms Webhook Kapalı Şema

Platforma özgü yerel IAP token'larına veya rant peşindeki SaaS wrapper'larına bel bağlamak, içerik üreticilerini operasyonel kontrol uğruna finansal marjlarından taviz vermeye zorlar. Gerçek bir monetizasyon egemenliği, doğrudan faturalandırma entegrasyonu ile düşük gecikmeli edge-native otomasyonun birleşmesini gerektirir.

Bölüm 2: Kriptografik Tek Kullanımlık Tokenize Davet Bağlantısı Mimarisi

Abonelik tabanlı topluluklardaki statik erişim bağlantıları, temel bir güvenlik açığı teşkil eder. Statik bir bağlantı veya yeniden kullanılabilir bir katılım belirteci (join token) dağıtıldığında, erişim denetimi fiilen son kullanıcıya devredilmiş olur. Bu durum; yetkisiz kimlik bilgisi paylaşımı, herkese açık bağlantı kazıma (scraping) ve bağlantı yönlendirme şebekeleri üzerinden gelir sızıntısı gibi tehdit vektörlerine kapı aralar.

Bu açıkları tamamen ortadan kaldırmak için erişim yetkilendirmesi (provisioning), kısa ömürlü (ephemeral) ve kriptografik olarak bağlı bir işlem (transaction) olarak ele alınmalıdır. Bu, Telegram Bot API'sinin katı yapısal kısıtlamalarla yapılandırılmış createChatInviteLink metodu kullanılarak sağlanır: sınırlandırılmış bir expire_date UNIX zaman damgasıyla birleştirilmiş atomik bir member_limit = 1 sayacı.

┌─────────────────────────────────────────────────────────────────────────────────────────────┐
│                 TOKENİZE TELEGRAM ERİŞİMİ VE OTOMATİK ATMA (AUTO-KICK) PİPELINE'I           │
├─────────────────────────────────────────────────────────────────────────────────────────────┤
│  [Müşteri Ödemesi] ──► [Doğrudan Stripe Webhook'u] ──► [V8 Edge Isolate]                    │
│                                                           │                                 │
│  [Telegram Bot API] ◄──(Tek Kullanımlık Bağlantı: member_limit=1)──┴──► [Identity Bridge™ Depolama]│
│         │                                                                                   │
│  [Üye Gruba Katılır] ──► [chat_member Olayı] ──► [Snowflake'i Stripe Müşteri Kimliğine Bağla]│
│                                                                                             │
│  CHURN / ÖDEME BAŞARISIZLIĞINDA:                                                            │
│  [invoice.payment_failed] ──► [Edge Router <12ms] ──► [banChatMember / unbanChatMember]     │
└─────────────────────────────────────────────────────────────────────────────────────────────┘

Temel Güvenlik Mekanizmaları: member_limit=1 ve expire_date

Davet bağlantılarının createChatInviteLink aracılığıyla programatik olarak oluşturulması, bir Telegram bağlantısını açık bir geçitten kısa ömürlü, tek kullanımlık bir yetkilendirme URL'ine (capability URL) dönüştürür. Güvenlik modeli, birbirine sıkı sıkıya bağlı üç parametreye dayanır:

{
  "chat_id": -1001234567890,
  "name": "sub_usr_9f82a1c4e0b2",
  "expire_date": 1718000900,
  "member_limit": 1,
  "creates_join_request": false
}
  1. member_limit = 1 ile Atomik Tüketim:
    Telegram'ın arka ucu, davet bağlantıları üzerinde atomik durum geçişlerini zorunlu kılar. member_limit değeri 1 olarak ayarlandığında, sohbetin dahili kayıt defteri (ledger) tam olarak tek bir başarılı el sıkışmaya (handshake) izin verir. Kullanıcı bağlantıya tıklayıp katılımı onayladığı anda, bağlantının durumu Telegram'ın dağıtık veritabanında active durumundan revoked/consumed durumuna güncellenir. Bağlantıyı kullanmaya yönelik sonraki her girişim —milisaniyeler sonra bile olsa— geçersiz veya süresi dolmuş bağlantı hatasıyla sonuçlanır.

  2. expire_date ile Zaman Sınırlı Geçerlilik:
    Bir son kullanma penceresi tanımlamak (genellikle $T_{\text{checkout}} + 900\text{s}$), bağlantıların istiflenmesini (hoarding) önler. Yetkili alıcı 15 dakikalık pencere içinde bağlantıyı talep etmezse, belirteç kendini imha eder. Bu, bağlantının güvenli olmayan iletim kanalları (düz metin e-postalar veya güvenliği ihlal edilmiş tarayıcı panoları gibi) üzerinden ele geçirilmesi durumunda maruz kalma penceresini en aza indirir.

  3. Kriptografik Tahmin Edilemezlik:
    Oluşturulan bağlantı dizesi (ör. https://t.me/+AbCdEfGhIjKlMnOp), yüksek entropili ve base64 ile kodlanmış kriptografik bir belirteç içerir. Çakışma uzayı (collision space), Telegram'ın API hız sınırları (rate limits) dahilinde kaba kuvvet (brute-force) numaralandırmasını hesaplamalı olarak imkansız kılacak kadar büyüktür ($>2^{128}$).


Uçtan Uca Kimlik Çözümleme (Identity Resolution) Pipeline'ı

Temel mimari zorluk, kimlik döngüsünü kapatmaktır: Müdahaleci (invasive) OAuth akışlarına gerek kalmadan harici bir ödeme kimliğini (ör. Stripe'ın cus_XXXXXXXXXXXXXX kimliği) dahili bir Telegram varlığına (user.id 64-bit tamsayı Snowflake) bağlamak.

+------------------------------------------------------------------------------------------------+
| Stripe Webhook -> V8 Edge Isolate -> Telegram API -> Storage (Identity Bridge) -> Telegram Hook|
+------------------------------------------------------------------------------------------------+
  1. Oluşturma Aşaması (Generation Phase):
    Stripe'tan doğrulanmış bir checkout.session.completed webhook'u alındığında, V8 Edge Isolate, Telegram'ın createChatInviteLink metoduna kimlik doğrulamalı bir RPC çağrısı yürütür.
  2. Geçici Identity Bridge Kaydı:
    Isolate, dağıtık depolamaya (ör. Redis, Cloudflare KV veya Postgres) geçici bir durum girdisi yazar: $$\text{Storage Key} = \text{hash}(\text{invite_link}) \implies {\text{stripe_customer_id}, \text{created_at}, \text{status: "pending"}}$$
  3. Tüketim ve Kimlik Bağlama (Identity Binding):
    Kullanıcı gruba katıldığında Telegram, edge altyapısına bir chat_member güncelleme webhook'u gönderir. Payload şunları içerir:
    • invite_link.invite_link: Tüketilen tek kullanımlık bağlantının tam hali.
    • new_chat_member.user.id: Katılan kullanıcının değişmez (immutable) Telegram Snowflake kimliği.
  4. Kalıcı Eşleme (Permanent Association):
    Edge router bağlantı karmasını (hash) çözer, stripe_customer_idyi çeker, kalıcı bir eşleme yazar ($\text{telegram_user_id} \iff \text{stripe_customer_id}$) ve geçici belirteci tamamlandı olarak işaretler.

Bağlantı Yönlendirme ve Yetkisiz Paylaşımın Tamamen Engellenmesi

Saldırı Vektörü Geleneksel Statik Bağlantı Kriptografik Tek Kullanımlık Bağlantı (member_limit=1)
Bağlantı Yönlendirme Sonsuz alt katılım İkinci tıklama reddedilir; bağlantı zaten yakılmıştır (burned)
Kimlik Bilgisi Yeniden Satışı Paylaşılan bağlantı herkese açık forumlarda yayınlanır Tam olarak tek bir kullanıcı katılır; bağlantı anında geçersiz kılınır
Yarış Durumları (Race Conditions) Önlenemeyen eşzamanlı katılımlar MTProto/veritabanı katmanında atomik tek artışlı sayaç
Sybil/Atıl İstifleme Bağlantılar süresiz geçerlidir Zorunlu kılınan expire_date kullanılmayan belirteçleri geçersiz kılar

1. Yönlendirmenin Etkisizleştirilmesi (Forwarding Neutralization)

Bir alıcı, onay e-postasını veya bağlantısını yetkisiz bir tarafa yönlendirmeye çalışırsa, deterministik bir yarış durumu (race condition) oluşur. Bağlantıyı önce asıl alıcı kullanırsa, yönlendirilen kişi bir INVITE_LINK_EXPIRED modalı ile karşılaşır. Bağlantıyı önce yetkisiz kişi kullanırsa, asıl alıcı sistem dışında kalır — bu da meşru alıcıyı derhal destekle iletişime geçmeye teşvik eder; böylece işlem işaretlenir ve hesap yakılır (burned).

2. Sybil Hesap Enjeksiyonunun Önlenmesi

Her tek kullanımlık bağlantı oluşturulmadan önce bağımsız ve doğrulanmış bir Stripe işlemi gerektirdiğinden, bir saldırgan tek bir abonelik altında birden fazla Telegram hesabı oluşturamaz. Erişim, ödenen checkout başına kesinlikle $1:1$ oranındadır.


Yetki İptal Yaşam Döngüsü: Ban ve Anında Unban

Bir churn olayı meydana geldiğinde —bir invoice.payment_failed veya customer.subscription.deleted Stripe webhook olayı tarafından tetiklenir— Edge Router, Identity Bridge aracılığıyla müşterinin Telegram Snowflake kimliğini çözer ve otomatik bir çıkarma (eviction) döngüsü yürütür:

[Stripe: invoice.payment_failed] 
        │
        ▼ (Webhook yürütme <12ms)
[POST /banChatMember (chat_id, user_id)] ──► Üye anında sohbetten çıkarılır
        │
        ▼ (Eşzamanlı devam işlemi)
[POST /unbanChatMember (chat_id, user_id, only_if_banned=True)] ──► Kara liste kaldırılır
  1. Çıkarma (banChatMember): Telegram, kullanıcının soket bağlantısını derhal keser, önbelleğini temizler ve kullanıcıyı kanaldan/süper gruptan çıkarır.
  2. Yeniden Uygunluk Sıfırlaması (unbanChatMember): Ban işleminin hemen ardından unbanChatMember çağrısının yapılması, kullanıcıyı grup dışında tutarken kalıcı kara liste kısıtlamasını kaldırır. Bu, müşterinin faturalandırma yöntemini güncelleyip gelecekte yeniden abone olması durumunda, manuel yönetici müdahalesine gerek kalmadan yeni düzenlenen tek kullanımlık davet belirtecini sorunsuz bir şekilde tüketebilmesini sağlar.

Bölüm 3: Başarısız Yenilemeler İçin 12 ms Altı Edge Otomatik Çıkarma (Auto-Kick) İşlem Hattı

Kapalı Telegram topluluklarında gelir akışı bütünlüğünü (monetization integrity) korumak, tavizsiz ve gerçek zamanlı bir yetki iptal (revocation) işlem hattı gerektirir. Geleneksel sistemlerde, sunucusuz (serverless) cold start'lar ve şişkin webhook kuyrukları 3–10 saniyelik bir işlem gecikmesi yaratarak; yetkisi iptal edilmiş veya ödeme yapmayan kullanıcılara tescilli istihbaratı kazıma (scraping) veya topluluğu sabote etme fırsatı tanır.

Yetkilendirme mantığını Cloudflare Workers izolatlarına (isolates) dağıtarak ve düşük ek yüke (overhead) sahip Telegram Bot API çağrılarını koordine ederek, uçtan uca webhook'tan çıkarma (ejection) işlemine kadar olan yaşam döngüsünü 12 milisaniyenin altına indirebilirsiniz.

[Stripe Edge Webhook] 
       │ (HTTP POST, ~2ms transit)
       ▼
[Cloudflare Worker Isolate]
  ├── Step 1: Web Crypto HMAC-SHA256 Sig Verification (<2ms)
  └── Step 2: Edge KV / D1 Telegram ID Reverse-Lookup (<3ms)
       │
       ▼
[Telegram Bot API Ejection Pipeline]
  ├── Step 3a: banChatMember(chat_id, user_id) ────┐ 
  └── Step 3b: unbanChatMember(chat_id, user_id) ──┴──> (~5-7ms network round-trip)

4 Aşamalı Edge Webhook Yaşam Döngüsü

1. Giriş (Ingress): Stripe Webhook Gönderimi

Çıkarma (eviction) döngüsü, Stripe'ın customer.subscription.deleted (doğrudan iptal veya dunning sürecinin tükenmesi) veya invoice.payment_failed (nihai iş akışlarını tetikleyen geçici ret / soft decline) içeren bir olay yükü (event payload) göndermesiyle başlar. Webhook veri yükü, HTTP/2 aracılığıyla bir edge rotasına iletilir:

$$\text{POST } \texttt{https://api.yourdomain.com/v1/webhooks/stripe}$$

2. 2 ms Altı Edge İmza Doğrulaması

Geleneksel Node.js ara katman yazılımları (middleware), webhook bütünlüğünü doğrulamak için genellikle ağır standart kütüphanelere dayanır. Buna karşılık Cloudflare Workers izolatları, V8 çalışma zamanının sıfır bellek ayırmalı (zero-alloc) yerel Web Crypto API'sini (crypto.subtle) kullanarak, çalışma zamanı cold start'ları olmadan Stripe v1 HMAC-SHA256 imzasını hesaplar ve doğrular:

async function verifyStripeSignature(
  rawBody: string,
  sigHeader: string,
  secret: string
): Promise<boolean> {
  const parts = Object.fromEntries(
    sigHeader.split(',').map((p) => p.trim().split('='))
  );
  const timestamp = parts['t'];
  const expectedSig = parts['v1'];
  
  // Yeniden oynatma saldırılarını (replay attacks) önleme (tolerans penceresi: 300 saniye)
  if (Math.abs(Date.now() / 1000 - Number(timestamp)) > 300) return false;

  const enc = new TextEncoder();
  const key = await crypto.subtle.importKey(
    'raw',
    enc.encode(secret),
    { name: 'HMAC', hash: 'SHA-256' },
    false,
    ['verify']
  );

  const payload = `${timestamp}.${rawBody}`;
  const sigBuffer = Uint8Array.from(
    expectedSig.match(/.{1,2}/g)!.map((byte) => parseInt(byte, 16))
  );

  return await crypto.subtle.verify('HMAC', key, sigBuffer, enc.encode(payload));
}

3. Yüksek Hızlı Identity Bridge (Ters Dizin Araması)

Stripe veri yükü Telegram user_id değerini değil, bir customer_id (ör. cus_N9sD8f7s) içerir. Worker; önceden indekslenmiş bir ters eşleme içeren, global olarak dağıtılmış bir anahtar-değer deposunu (Tiered Cache özellikli Cloudflare KV veya Edge D1 gibi) sorgular:

$$\texttt{idx:stripe:cus_N9sD8f7s} \longrightarrow \texttt{{"telegram_user_id": 987654321, "chat_ids": [-100123456789]}}$$

Edge izolatı bu kaydı dünya genelindeki Varlık Noktası (PoP) konumlarında önbelleğe aldığından, bu okuma işlemi 1–3 ms içinde tamamlanır ve merkezi bir veritabanına erişim ihtiyacını tamamen ortadan kaldırır.

4. "Soft-Eviction" (Yumuşak Çıkarma) Atomik Yürütme Primitifi

Telegram Bot API'si doğrudan, bağımsız bir kickChatMember uç noktası sunmaz. Hemen ardından sıfırlama yapmadan banChatMember çağrısında bulunmak, kullanıcıyı kalıcı olarak kara listeye alır ve gelecekte self-servis olarak aboneliğini yeniden etkinleştirmesini engeller.

Kullanıcıyı kalıcı bir kara listeye eklemeden sorunsuz bir şekilde çıkarmak için iki adımlı atomik bir çıkarma dizisi yürütün:

async function softKickTelegramUser(botToken: string, chatId: number, userId: number) {
  const endpoint = `https://api.telegram.org/bot${botToken}`;

  // 1. Kullanıcıyı derhal çıkar (mevcut erişimi iptal eder)
  const banRes = await fetch(`${endpoint}/banChatMember`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ chat_id: chatId, user_id: userId, revoke_messages: false }),
  });

  if (!banRes.ok) throw new Error(`Ban failed: ${await banRes.text()}`);

  // 2. Yeniden aboneliğe açık kapı bırakmak için ban'i anında kaldır
  await fetch(`${endpoint}/unbanChatMember`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ chat_id: chatId, user_id: userId, only_if_banned: true }),
  });
}

Bu mekanizma, kullanıcının özel kanaldan/süper gruptan derhal çıkarılmasını sağlarken, ödeme yeniden yapıldığında tek kullanımlık dinamik bir davet bağlantısıyla topluluğa tekrar katılabilmesini mümkün kılar.


Dunning Yönetim Motoru: Başarısız Ödemelerin %35'ini Geri Kazanma

Müşterileri ilk geçici ödeme reddinde (yetersiz bakiye, geçici kart blokeleri) doğrudan sistemden atmak (hard-kick), yinelenen geliri (recurring revenue) baltalar. customer.subscription.deleted anında, 12 ms altı bir çıkarma işlemini tetiklerken; invoice.payment_failed, kullanıcıyı çıkarmadan önce %35 geri kazanım oranını hedefleyen ve diyalogsal yapay zeka (conversational AI) ile desteklenen akıllı, çok aşamalı bir kurtarma sürecini başlatır:

[invoice.payment_failed] 
       │
       ├─► [Day 0: T+0m] ───► AI Telegram Direct Message (Contextual, Personalized Link)
       ├─► [Day 2: T+48h] ──► Smart Retries Sync + Escalation Notice
       ├─► [Day 4: T+96h] ──► Final Grace Warning (Countdown to Automated Revocation)
       │
       ▼ (No Recovery)
[customer.subscription.deleted] ──► Sub-12ms Edge Auto-Kick Pipeline
+---------------------------------------------------------------------------------------------------+
| YAPAY ZEKA DESTEKLİ DUNNING GERİ KAZANIM TAKVİMİ                                                  |
+-------+-------------------+-----------------------------------------------------------------------+
| Faz   | Zamanlama         | Eylem ve Kanal Yürütmesi                                              |
+-------+-------------------+-----------------------------------------------------------------------+
| T-0   | Anında (0 dk)     | Telegram Botu üzerinden Dinamik DM. Bir LLM ajanı, doğrudan Stripe   |
|       |                   | Müşteri Portalı bağlantısı içeren nazik ve yerelleştirilmiş bir       |
|       |                   | bildirim üretir. KV deposunda ek süre durumu başlatılır               |
|       |                   | (`grace:user_id = active`).                                           |
+-------+-------------------+-----------------------------------------------------------------------+
| T+48h | Eskalasyon (+48 sa)| Stripe Smart Retries, Card-on-File fallback mekanizmasını tetikler.   |
|       |                   | Ödeme reddedilirse bot, topluluk ve VIP sinyal erişiminin 48 saat    |
|       |                   | içinde sonlandırılacağını belirten yüksek öncelikli bir Telegram      |
|       |                   | uyarısı gönderir.                                                     |
+-------+-------------------+-----------------------------------------------------------------------+
| T+96h | Nihai (+96 sa)    | Ek süre (grace period) sona erer. Stripe aboneliği iptal ederek       |
|       |                   | `customer.subscription.deleted` olayını yayar. Edge Worker, 12 ms     |
|       |                   | altı `banChatMember` + `unbanChatMember` işlem hattını tetikler.      |
+-------+-------------------+-----------------------------------------------------------------------+

Bot İçi Diyalogsal Faturalandırma

Çoğu zaman spam klasörüne düşen e-postalara bel bağlamak yerine Telegram botu, kullanıcıyı doğrudan aktif sohbetinin içinden uyarır:

"Selam Alex, Alpha Signals VIP için 49,00 $'lık son yenileme işlemin, bankanın işlemi reddetmesi nedeniyle başarısız oldu. Canlı işlemleri kaçırmaman için 4 günlük bir ek süre (grace period) tanımladık. Kart bilgilerini güvenle güncellemek için buraya dokun."

Kurtarma sürecini üyelerin hizmeti bizzat tükettiği arayüz içinde yerel olarak yöneten bu işlem hattı, ödemesi başarısız olan abonelerin üçte birinden fazlasını geri kazanır ve ücretli kullanıcıyı elde tutma (retention) ile sıfır gecikmeli kayıp önleme/çıkarma (churn enforcement) arasındaki sınırı tamamen otomatikleştirir.

Bölüm 4: Birleşik Discord + Telegram Omnichannel Alpha Grubu Oluşturma

Yüksek tutarlı alım-satım sendikaları (high-ticket trading syndicates), kripto araştırma DAO'ları ve kantitatif yatırım ağları benzersiz bir operasyonel paradoksla karşı karşıyadır: Hiçbir topluluk platformu, tek başına hem yüksek frekanslı piyasa katılımının hem de kapsamlı yatırım analizlerinin tüm operasyonel gereksinimlerini karşılayamaz.

Üye bağlılığını (retention) en üst düzeye çıkarmak, aylık dört haneli üyelik bedelleri talep edebilmek ve maksimum asimetrik değer sunmak için üst düzey alpha grupları omnichannel bir altyapı üzerinde faaliyet gösterir. Bu gruplar; saniye altı (sub-second), düşük gecikmeli yürütme için Telegram'dan; yapılandırılmış, çok iş parçacıklı (multi-threaded) istihbarat ve kurumsal ses ortamları içinse Discord'dan yararlanır.

                         ┌─────────────────────────────────┐
                         │   Stripe Subscription Engine    │
                         │   (Single Source of Truth)      │
                         └────────────────┬────────────────┘
                                          │ Webhooks
                                          ▼
                         ┌─────────────────────────────────┐
                         │   SovereignPatron Identity      │
                         │   Bridge & Entitlement Graph    │
                         └────────┬───────────────┬────────┘
                                  │               │
                 State Transition │               │ State Transition
                 Payload          │               │ Payload
                                  ▼               ▼
        ┌───────────────────────────┐   ┌───────────────────────────┐
        │        Discord API        │   │     Telegram Bot API      │
        ├───────────────────────────┤   ├───────────────────────────┤
        │ • Tiered Role Assignment  │   │ • Private Channel Invites │
        │ • Voice Stage AMAs        │   │ • Sub-second Alpha Alerts │
        │ • Structured Thesis Desks │   │ • Direct Bot Broadcasts   │
        └───────────────────────────┘   └───────────────────────────┘

Omnichannel Ayrımı: Yürütme Hızı ve Yapısal Derinlik

Modern yatırım alpha grupları temelde iki farklı operasyonel topolojiye ihtiyaç duyar:

  1. Telegram: Yüksek Hızlı Yürütme Katmanı Hızlı değişen finansal ortamlarda—on-chain likidite kaymaları, son dakika makroekonomik veri açıklamaları, opsiyon emir akışındaki ani sıçramalar veya sıfır gün vadeli (0DTE) türev işlemleri gibi—gecikme (latency) doğrudan alpha faktörüdür. Telegram, anlık ve seri yayınlar için tartışmasız en verimli motordur. Yerel mobil arayüzü, anlık bildirim (push notification) iletim hızı ve hafif istemci mimarisi; onu anlık sinyaller, acil ses kayıtları ve saniye altı işlem uyarıları için en uygun ortam haline getirir. Bir fon yöneticisinin acil bir likidasyon seviyesini veya giriş fiyatını duyurması gerektiğinde Telegram, dağıtık küresel saat dilimlerinde mobile anlık iletimi garanti eder.

  2. Discord: Yapılandırılmış Analitik Kampüs Telegram kronolojik anlık iletimde üstün performans gösterse de, uzun soluklu ve çok konulu teknik tartışmaların ağırlığı altında yetersiz kalır. Discord, grubun kalıcı kurumsal kampüsü olarak işlev görür. Titizlikle kurgulanmış bir kanal taksonomisi aracılığıyla Discord, derinlemesine bir bölümlendirme sağlar: #macro-theses, #algorithmic-backtests, #orderflow-analysis ve #governance-proposals. Dahası Discord; gerçek zamanlı New York/Londra seansı alım-satım odaları, çok konuşmacılı analist panelleri ve etkileşimli grafik analizleri için kurumsal düzeyde Sesli Sahneler (Voice Stages) ve Canlı Yayın (Go-Live) ekran paylaşımı sunar.

Tarihsel olarak her iki platformu da sunmak, yöneticileri bir parçalanma tuzağına sürüklemiştir: Üyeleri farklı ödeme bağlantıları üzerinden iki kez ücretlendirmek, sık sık senkronizasyonu kopan kırılgan üçüncü taraf entegrasyonlarını yönetmek veya e-tablolar ve doğrudan destek mesajları (DM) aracılığıyla manuel mutabakat süreçlerinde boğulmak.


SovereignPatron Identity Bridge: Platformlar Arası Birleşik Yetkilendirme

SovereignPatron bu yapısal parçalanmayı tescilli Identity Bridge mimarisiyle çözer. Bu mimari, bireysel bir abonenin tek bir Stripe faturalandırma profilini hem Discord REST API'sine hem de Telegram Bot API'sine eşzamanlı olarak haritalayan merkezi bir yetkilendirme orkestratörüdür.

       [ Müşteri Ödemesi ] ──► [ SovereignPatron Evrensel Onboarding ]
                                                 │
                                 ┌───────────────┴───────────────┐
                                 ▼                               ▼
                      [ Discord OAuth2 Akışı ]        [ Telegram Deep-Link Yetkilendirmesi ]
                                 │                               │
                                 └───────────────┬───────────────┘
                                                 ▼
                                  ┌─────────────────────────────┐
                                  │   Birleşik Kimlik Kaydı     │
                                  │ ─────────────────────────── │
                                  │ Stripe ID:   cus_9x4K2L9a   │
                                  │ Discord ID:  894120938472...│
                                  │ Telegram ID: 582910394      │
                                  │ Durum:       ACTIVE (Tier 1)│
                                  └─────────────────────────────┘

1. Birleşik Kimlik Grafı (Unified Identity Graph)

SovereignPatron tarafından barındırılan tek bir ödeme adımı sırasında abone, otomatik ve birleşik bir doğrulama el sıkışması (handshake) gerçekleştirir:

  • Discord OAuth2 Entegrasyonu: Üyenin benzersiz Discord Snowflake ID'sini doğrular ve alır.
  • Telegram Deep-Link El Sıkışması: Kullanıcının Telegram ID'sini yakalamak ve doğrulamak için SovereignPatron Telegram botu aracılığıyla kriptografik bir belirteç (token) alışverişi kullanır.

Bu parametreler, SovereignPatron Kimlik Grafı içinde altta yatan Stripe Customer ve Subscription nesnelerine bağlanarak tek ve değiştirilemez (immutable) bir kayıt oluşturur:

$$\text{Identity Record} = {\text{Stripe Customer ID} \longleftrightarrow \text{Discord Snowflake ID} \longleftrightarrow \text{Telegram User ID}}$$

2. Atomik Çoklu Platform Durum Senkronizasyonu

Bir faturalandırma yaşam döngüsü olayı gerçekleştiğinde SovereignPatron, olay güdümlü (event-driven) bir durum makinesi olarak çalışır. Stripe Webhook'larını sıfır kayıplı tek etkililikle (zero-loss idempotency) işler ve eşzamanlı olarak her iki topluluk ortamına alt akış (downstream) API güncellemeleri gönderir.

  • Başarılı Ödeme Durumunda (invoice.payment_succeeded): SovereignPatron anında Discord Guild Member API'sini çağırarak ilgili yetki rollerini atar (ör. @Tier1-Institutional, @Voice-Access) ve kullanıcıya kilitli kategori kanallarına anında erişim izni verir. Eşzamanlı olarak Identity Bridge, tek kullanımlık ve kriptografik olarak imzalanmış bir Telegram davet bağlantısı oluşturur veya Telegram Bot API aracılığıyla özel Telegram Süper Grubundaki/Kanalındaki üyenin kısıtlamalarını otomatik olarak kaldırır.
  • Ödeme Temerrüdü, İhtar (Dunning) veya İptal Durumunda (customer.subscription.deleted, invoice.payment_failed): Identity Bridge, her iki ağda da atomik bir yetki iptal süreci yürütür. Üyenin Discord rolleri geri alınarak yetkisiz genel erişim düzeyine düşürülür; aynı anda Telegram Bot API'si kullanıcıyı tüm özel Telegram yayın kanallarından ve sohbet odalarından derhal çıkarır veya yasaklar (kick).
                              [ Stripe Webhook Tetikleyicisi ]
                               (ör. invoice.payment_failed)
                                            │
                                            ▼
                           [ SovereignPatron Durum Motoru ]
                                            │
                     ┌──────────────────────┴──────────────────────┐
                     ▼                                             ▼
       [ Discord REST İsteği ]                       [ Telegram Bot API İsteği ]
     DELETE /guilds/{id}/members/                   POST /kickChatMember
         {user_id}/roles/{role_id}                  {chat_id, user_id, revoke_messages}
                     │                                             │
                     ▼                                             ▼
         Discord Yetkileri İptal Edildi                Özel Kanaldan Çıkarıldı

3. Kesinlikle Sıfır Mükerrer Faturalandırma

Faturalandırma durumu bağımsız platformlardan ayrıştırıldığı ve doğrudan Stripe müşteri tanımlayıcısına bağlandığı için üyeler, her iki uygulamaya da erişmek adına asla mükerrer abonelik satın almaz.

Yükseltmeler (upgrade), düşürmeler (downgrade) ve faturalandırma aralığı değişiklikleri (ör. aylıktan yıllığa geçiş), merkezi ve white-label bir SovereignPatron faturalandırma portalı üzerinden gerçekleştirilir. Bir üye abonelik paketini yükselttiğinde:

  1. Stripe, tek ödeme farkını orantılı (prorated) olarak hesaplar ve işler.
  2. Identity Bridge, dahili yetkilendirme durumunu günceller.
  3. Üye, tam olarak aynı saniye içinde hem üst düzey Discord kanallarına (ör. #options-order-flow) yükseltilir hem de özel Telegram yayın kanallarına (ör. Inner-Circle Real-Time Alerts) eklenir.

Dayanıklı ve Kendi Kendini Onaran (Self-Healing) Altyapı

Üçüncü taraf API hız sınırlarının (rate limits) veya ağ kesintilerinin neden olduğu durum kaymalarını (state drift) önlemek için SovereignPatron otomatik ve asenkron mutabakat döngüleri (reconciliation loops) çalıştırır. Identity Bridge her saat başı aktif Stripe abonelik listelerini, canlı Discord Guild üye dizini ve Telegram Kanalı yönetici loglarıyla mutabakat işlemine tabi tutar.

Bir kullanıcı Discord sunucusundan manuel olarak ayrılıp daha sonra geri dönerse veya yanlışlıkla Telegram sohbetini silerse, izinleri herhangi bir yönetici müdahalesine veya mükerrer faturalandırmaya gerek kalmadan yeniden giriş yaptığı anda otomatik olarak yeniden senkronize edilir.

SovereignPatron; Telegram'daki yürütme hızını Discord'daki yapısal derinlikle tek bir Stripe ödeme mimarisi altında birleştirerek platformlar arası operasyonel sürtünmeyi ortadan kaldırır, gelir sızıntısını önler ve birinci sınıf alpha gruplarının sorunsuz bir kurumsal deneyim sunmasını sağlar.

Bölüm 5: BotFather ve Stripe ile Adım Adım Kurulum Rehberi

Bu rehber, bir Edge runtime mimarisi kullanarak Stripe ile Telegram arasında otomatik ve self-healing (kendi kendini onaran) bir abonelik ağ geçidinin (gateway) uçtan uca dağıtımını ayrıntılarıyla açıklamaktadır. Bu adımları takip etmek; anlık erişim sağlama (access provisioning), müşteri kaybı (churn) anında gerçek zamanlı yetki iptali (revocation) ve yüksek bakım maliyetli üçüncü taraf üyelik botlarına sıfır bağımlılık sağlar.

+-----------------------------------------------------------------------------------+
|                           EDGE ROUTER LIFECYCLE TOPOLOGY                          |
|                                                                                   |
|  [ Stripe Checkout ] ---> ( Webhook: checkout.session.completed )                 |
|                                         |                                         |
|                                         v                                         |
|  [ Telegram User ] <--- [ SovereignPatron Edge Worker ] ---> [ Telegram Bot API ] |
|  ( Receives Single-Use                  |                    ( createChatInviteLink|
|       Invite Link )             [ KV / D1 Store ]              / banChatMember )  |
|                                 ( Customer ID <-> Chat ID )                       |
+-----------------------------------------------------------------------------------+

Adım 1: @BotFather ile Bot Oluşturma ve Token Üretimi

Telegram Bot API, benzersiz davet bağlantıları oluşturmak ve churn eden (aboneliği sonlanan) üyeleri gruptan çıkarmak için denetim mekanizmanız (enforcement engine) olarak görev yapar.

  1. Telegram'ı açın, doğrulanmış @BotFather hesabını aratın ve /start komutunu göndererek sohbeti başlatın.
  2. Şu komutu gönderin:
    /newbot
    
  3. Yönetimsel bir görünen ad (örn. Sovereign Access Guard) ve ardından bot ile biten benzersiz bir kullanıcı adı (örn. SovereignPatron_Access_Bot) girin.
  4. @BotFather, şu formatta bir HTTP API Token üretecektir:
    7182938495:AAFnk-ExampleTokenString_zX934LkdQ
    
    Bu token'ı güvenli bir şekilde saklayın; botunuz üzerinde programatik kontrol sağlar.
  5. Bot yapılandırmasını doğrudan @BotFather içinden sıkılaştırın (hardening):
    • /setprivacy gönderin $\rightarrow$ Botunuzu seçin $\rightarrow$ Enabled seçeneğini belirleyin (botun gereksiz herkese açık grup trafiğini çekmesini engeller).
    • /setjoingroups gönderin $\rightarrow$ Botunuzu seçin $\rightarrow$ Enabled seçeneğini belirleyin (botun hedef kanalınıza veya grubunuza eklenmesine izin verir).

Adım 2: Yönetici Yetkilerinin Atanması ve Chat ID'nin Alınması

Kanal ve grup üyeliklerini programatik olarak yönetmek için bota granüler Rol Tabanlı Erişim Kontrolü (RBAC) izinleri verilmelidir.

  1. Hedef gizli Telegram Kanalınızı veya Süper Grubunuzu açın.
  2. Grup/Kanal Ayarları $\rightarrow$ Yöneticiler $\rightarrow$ Yönetici Ekle yolunu izleyin.
  3. Botunuzun kullanıcı adını aratın ve ekleyin.
  4. İhtiyaç duyulmayan tüm izinleri kaldırırken aşağıdaki minimum gerekli yetkileri tanımlayın:
    • Bağlantı Yoluyla Kullanıcı Davet Et (Zorunlu: createChatInviteLink metodunun çalıştırılmasını sağlar).
    • Kullanıcıları Engelle (Zorunlu: otomatik çıkarma için banChatMember metodunun çalıştırılmasını sağlar).
    • Kaldırılacaklar: Görüntülü Sohbetleri Yönet, Hikaye Paylaş, Mesajları Sabitle, Yeni Yöneticiler Ekle.
+------------------------------------------------------------------+
|                    REQUIRED BOT RBAC PERMISSIONS                 |
+------------------------------------+-----------------------------+
| Permission                         | Purpose                     |
+------------------------------------+-----------------------------+
| Invite Users via Link              | Generate dynamic, single-use|
|                                    | invite links with TTLs.     |
| Ban Users                          | Evict churned/delinquent    |
|                                    | subscribers automatically.  |
+------------------------------------+-----------------------------+
  1. Hedef TELEGRAM_CHAT_ID bilginizi alın:
    • Gizli kanaldan herhangi bir mesajı @userinfobot veya @JsonDumpBot botuna iletin.
    • Alternatif olarak, cURL üzerinden Bot API'yi sorgulayın:
      curl https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates
      
    • Süper gruplar/kanallar için eksi işareti ve -100 önekini de içerecek şekilde sayısal ID'yi alın (örn. -1001982736450).

Adım 3: Stripe Ürünlerini ve Webhook Uç Noktalarını Yapılandırma

Stripe, faturalandırma motoru (billing engine) olarak görev yaparak abonelik olaylarını doğrudan Edge router'ınıza iletir.

  1. Stripe Dashboard $\rightarrow$ Product Catalog bölümüne gidin ve aylık/yıllık yinelenen (recurring) fiyatlandırmaya sahip bir ürün oluşturun.
  2. Developers $\rightarrow$ Webhooks $\rightarrow$ Add Endpoint yolunu izleyin.
  3. Endpoint URL değerini hedef edge worker adresiniz olarak ayarlayın:
    https://api.yourdomain.com/v1/stripe-webhook
    
  4. Yalnızca şu bağımsız webhook olaylarına (events) abone olun:
    • checkout.session.completed — Yeni bir kullanıcı başarıyla abone olduğunda tetiklenir.
    • customer.subscription.deleted — Bir abonelik iptal edildiğinde veya ödeme yapılmaması sebebiyle churn gerçekleştiğinde tetiklenir.
    • invoice.payment_failed — Yenileme ödemesi başarısız olduğunda tetiklenir.
  5. Add Endpoint'e tıklayın ve Signing Secret (whsec_...) anahtarını görüntüleyin. Bu gizli anahtar, sahteciliği (spoofing) önlemek amacıyla gelen payload'ların HMAC-SHA256 imzasını doğrulamak için kullanılacaktır.

Adım 4: SovereignPatron Edge Router'ı Dağıtma (< 5 Dakika)

Cloudflare Workers, Vercel Edge Functions veya Deno Deploy kullanarak hafif (lightweight), sunucusuz (serverless) bir edge fonksiyonu dağıtın.

1. Ortam Değişkenlerini (Environment Variables) Tanımlayın

Edge dağıtım platformunuzda aşağıdaki şifrelenmiş gizli anahtarları (secrets) yapılandırın:

  • TELEGRAM_BOT_TOKEN: Adım 1'de alınan token.
  • TELEGRAM_CHAT_ID: Adım 2'de alınan hedef kanal ID'si.
  • STRIPE_SECRET_KEY: sk_live_... veya sk_test_...
  • STRIPE_WEBHOOK_SECRET: whsec_...

2. Edge Router Worker Mantığını Uygulayın (index.ts)

import Stripe from 'stripe';

export default {
  async fetch(request: Request, env: Env): Promise<Response> {
    if (request.method !== 'POST') return new Response('Method Not Allowed', { status: 405 });

    const signature = request.headers.get('stripe-signature');
    const body = await request.text();
    const stripe = new Stripe(env.STRIPE_SECRET_KEY, { apiVersion: '2023-10-16' });

    let event: Stripe.Event;
    try {
      event = await stripe.webhooks.constructEventAsync(body, signature!, env.STRIPE_WEBHOOK_SECRET);
    } catch (err: any) {
      return new Response(`Webhook Error: ${err.message}`, { status: 400 });
    }

    switch (event.type) {
      case 'checkout.session.completed': {
        const session = event.data.object as Stripe.Checkout.Session;
        const customerId = session.customer as string;

        // 24 saat (86400s) geçerlilik süresi olan dinamik, tek kullanımlık davet bağlantısı oluştur
        const expireDate = Math.floor(Date.now() / 1000) + 86400;
        const tgRes = await fetch(`https://api.telegram.org/bot${env.TELEGRAM_BOT_TOKEN}/createChatInviteLink`, {
          method: 'POST',
          headers: { 'Content-Type': 'application/json' },
          body: JSON.stringify({
            chat_id: env.TELEGRAM_CHAT_ID,
            member_limit: 1,
            expire_date: expireDate,
            name: `Sub:${customerId}`
          })
        });
        const tgData = await tgRes.json();
        
        // Eşlemeyi KV Store'a kaydet: customerId <-> Bekleyen Davet / Durum
        await env.PATRON_KV.put(`customer:${customerId}`, JSON.stringify({
          status: 'active',
          invite_link: tgData.result.invite_link
        }));

        // invite_link bilgisini Stripe Müşteri E-postası veya yönlendirme sayfası aracılığıyla ilet
        break;
      }

      case 'customer.subscription.deleted': {
        const subscription = event.data.object as Stripe.Subscription;
        const customerId = subscription.customer as string;
        
        // Kullanıcının Telegram Kullanıcı ID'sini almak için KV'yi sorgula (katılım anında yakalanır)
        const mapping = await env.PATRON_KV.get(`customer:${customerId}`, { type: 'json' });
        if (mapping && mapping.telegram_user_id) {
          // Üyeyi kanaldan çıkar
          await fetch(`https://api.telegram.org/bot${env.TELEGRAM_BOT_TOKEN}/banChatMember`, {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify({
              chat_id: env.TELEGRAM_CHAT_ID,
              user_id: mapping.telegram_user_id,
              revoke_messages: false
            })
          });

          // Kullanıcının gelecekte tekrar abone olabilmesi için engeli hemen kaldır
          await fetch(`https://api.telegram.org/bot${env.TELEGRAM_BOT_TOKEN}/unbanChatMember`, {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify({
              chat_id: env.TELEGRAM_CHAT_ID,
              user_id: mapping.telegram_user_id,
              only_if_banned: true
            })
          });

          await env.PATRON_KV.delete(`customer:${customerId}`);
        }
        break;
      }
    }

    return new Response(JSON.stringify({ received: true }), { status: 200 });
  }
};

Adım 5: Test Doğrulama ve Otomatik Yaşam Döngüsü Validasyonu

Canlı ortama (production) geçmeden önce, Stripe CLI kullanarak erişim yetkilendirme ve otomatik çıkarma (auto-kick) adımlarını doğrulayın.

# 1. Stripe olaylarını yerel veya staging edge ortamınıza yönlendirin
stripe listen --forward-to https://api.yourdomain.com/v1/stripe-webhook

# 2. Otomatik bir checkout oturumu tetikleyin
stripe trigger checkout.session.completed

Doğrulama Kontrol Listesi

  1. Erişim Tanımlama Doğrulaması:
    • Edge router loglarını inceleyin: Worker, HTTP 200 dönmeli ve Telegram Bot API'ye bir createChatInviteLink isteği iletmelidir.
    • Bağlantı özelliklerini doğrulayın: Bağlantı member_limit: 1 göstermeli ve 24 saat sonra geçerliliğini yitirmelidir. Bağlantıyı ikinci kez kullanma girişimi başarısız olmalıdır.
  2. Otomatik Çıkarma (Auto-Kick) Yaşam Döngüsü Doğrulaması:
    • Otomatik bir iptal olayı tetikleyin:
      stripe trigger customer.subscription.deleted
      
    • Edge router'ın gelen payload'u başarıyla ayrıştırdığını (parse), abone kimliğini sorguladığını ve hemen ardından unbanChatMember gelecek şekilde banChatMember çağrısını yürüttüğünü doğrulayın.
    • Telegram Kanalı üye listesini kontrol edin: Test kullanıcısı, olay tetiklendikten sonra milisaniyeler içinde kanaldan çıkarılmış olmalıdır.

Sıkça Sorulan Sorular

1. Tek kullanımlık davet bağlantıları Telegram'da yetkisiz paylaşımı nasıl önler?

Sistem, Telegram'ın createChatInviteLink uç noktasını member_limit: 1 ve açık son kullanma zaman damgaları ile kullanır. Bir abone ödeme işlemini (checkout) tamamladığında, kriptografik olarak benzersiz bir davet URL'i oluşturulur ve veritabanı kaydıyla eşleştirilir. Bağlantıya tıklandığında Telegram, katılım olayını webhook aracılığıyla kaydeder ve bağlantıyı sonraki katılım isteklerine karşı anında geçersiz kılar. Ödeme yapan her müşteri için tek bir bağlantının deterministik olarak atanması; yetkisiz forumlarda bağlantı paylaşımını, çoklu cihaz kimlik bilgisi suistimalini ve herkese açık kazıma (scraping) botlarını engeller.

2. Doğrudan Stripe ile faturalandırma neden Telegram Stars'tan daha üstündür?

Doğrudan Stripe faturalandırması, Telegram Stars'ın kısıtlayıcı platform ekosistemini bypass ederek mobil uygulama mağazalarının %30'luk kesintilerini ve Telegram'ın platform kâr marjı ücretlerini ortadan kaldırır. Stripe, işlem maliyetlerini standart takas komisyonu (interchange) oranlarına (~%2,9 + 0,30$) düşürür, satıcılar için anında ödeme (instant merchant payouts) imkanı sunar ve müşteri abonelik meta verilerinin tam mülkiyetini garanti eder. Ayrıca doğrudan webhook'lar (customer.subscription.updated, invoice.paid); ayrıntılı dunning (tahsilat takibi) süreçlerini, platformlar arası erişim yetkilendirmesini, Stripe Tax aracılığıyla otomatik vergi uyumluluğunu ve özel çoklu para birimli fiyatlandırma modellerini mümkün kılar.

3. Otomatik çıkarma (auto-kick) mekanizması geçici banka retlerini (dunning) nasıl yönetir?

Stripe bir invoice.payment_failed webhook'u tetiklediğinde, platform anında banChatMember çağrısı yapmak yerine parametreli bir dunning protokolü başlatır. Stripe'ın Smart Retries özelliği karttan yeniden çekim yapmayı denerken, abone ek süre (grace period) durumuna alınır. Otomatik doğrudan mesajlar, Telegram üzerinden aboneye ödeme yöntemini güncellemesi gerektiğini bildirir. Tüm yeniden denemeler başarısız olursa ve Stripe customer.subscription.deleted olayını yayınlarsa, bir arka plan iş parçacığı (background worker) API çıkarma yükünü (eviction payload) çalıştırır ve kanal erişimini iptal eder.

4. Tek bir abonelik birden fazla Telegram kanalının ve bir Discord sunucusunun kilidini açabilir mi?

Evet. Mimari, tek bir Stripe Ürün/Fiyat Kimliğini (Product/Price ID) birden fazla uç noktada birleşik bir yetkilendirme izin şemasıyla eşleştirir. Başarılı bir checkout.session.completed olayının ardından motor, yapılandırılmış her bir Telegram özel kanalı ve süper grubu için bağımsız, tek kullanımlık davet bağlantıları oluşturur. Eş zamanlı olarak Discord OAuth2 kullanarak bir PUT /guilds/{guild.id}/members/{user.id}/roles/{role.id} isteği gönderir; abonelik katmanlarını ve otomatik erişim iptalini her iki platformda da gecikme olmaksızın senkronize eder.

5. SovereignPatron'u Telegram için barındırmanın sunucu gereksinimleri nelerdir?

SovereignPatron minimal altyapı üzerinde verimli bir şekilde çalışır: Linux (Ubuntu/Debian veya Alpine) çalıştıran tek çekirdekli bir sanal özel sunucu (1 vCPU, 1GB RAM, 10GB SSD). Yazılım ayak izi; hafif bir Go veya Node.js çalışma zamanı (runtime), kullanıcı durum yönetimi için bir SQLite veya PostgreSQL veritabanı örneği ve webhook iş kuyrukları için isteğe bağlı bir Redis önbelleği içerir. Güvenli webhook yüklerini işlemek için genel statik IP'ye sahip bir SSL/TLS ters proxy'si (reverse proxy - örn. Caddy, NGINX) gereklidir.

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "SoftwareApplication",
      "@id": "https://sovereignpatron.com/#software",
      "name": "SovereignPatron",
      "applicationCategory": "BusinessApplication",
      "operatingSystem": "Linux, Docker",
      "description": "Telegram ve Discord için Stripe üzerinden kendi sunucunuzda barındırılabilen abonelik yönetimi ve üyelik erişim kontrol sistemi.",
      "offers": {
        "@type": "Offer",
        "price": "0.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://sovereignpatron.com/#organization",
      "name": "SovereignPatron",
      "url": "https://sovereignpatron.com",
      "logo": "https://sovereignpatron.com/assets/logo.png"
    },
    {
      "@type": "FAQPage",
      "@id": "https://sovereignpatron.com/#faq",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Tek kullanımlık davet bağlantıları Telegram'da yetkisiz paylaşımı nasıl önler?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Sistem, Telegram'ın createChatInviteLink uç noktasını member_limit: 1 ve açık son kullanma zaman damgaları ile kullanır. Bir abone ödeme işlemini tamamladığında, kriptografik olarak benzersiz bir davet URL'i oluşturulur ve veritabanı kaydıyla eşleştirilir. Bağlantıya tıklandığında Telegram, katılım olayını webhook aracılığıyla kaydeder ve bağlantıyı sonraki katılım isteklerine karşı anında geçersiz kılar. Ödeme yapan her müşteri için tek bir bağlantının deterministik olarak atanması; yetkisiz forumlarda bağlantı paylaşımını, çoklu cihaz kimlik bilgisi suistimalini ve herkese açık kazıma botlarını engeller."
          }
        },
        {
          "@type": "Question",
          "name": "Doğrudan Stripe ile faturalandırma neden Telegram Stars'tan daha üstündür?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Doğrudan Stripe faturalandırması, Telegram Stars'ın kısıtlayıcı platform ekosistemini bypass ederek mobil uygulama mağazalarının %30'luk kesintilerini ve Telegram'ın platform kâr marjı ücretlerini ortadan kaldırır. Stripe, işlem maliyetlerini standart takas komisyonu oranlarına (~%2,9 + 0,30$) düşürür, satıcılar için anında ödeme imkanı sunar ve müşteri abonelik meta verilerinin tam mülkiyetini garanti eder. Ayrıca doğrudan webhook'lar (customer.subscription.updated, invoice.paid); ayrıntılı dunning süreçlerini, platformlar arası erişim yetkilendirmesini, Stripe Tax aracılığıyla otomatik vergi uyumluluğunu ve özel çoklu para birimli fiyatlandırma modellerini mümkün kılar."
          }
        },
        {
          "@type": "Question",
          "name": "Otomatik çıkarma (auto-kick) mekanizması geçici banka retlerini (dunning) nasıl yönetir?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Stripe bir invoice.payment_failed webhook'u tetiklediğinde, platform anında banChatMember çağrısı yapmak yerine parametreli bir dunning protokolü başlatır. Stripe'ın Smart Retries özelliği karttan yeniden çekim yapmayı denerken, abone ek süre (grace period) durumuna alınır. Otomatik doğrudan mesajlar, Telegram üzerinden aboneye ödeme yöntemini güncellemesi gerektiğini bildirir. Tüm yeniden denemeler başarısız olursa ve Stripe customer.subscription.deleted olayını yayınlarsa, bir arka plan iş parçacığı API çıkarma yükünü çalıştırır ve kanal erişimini iptal eder."
          }
        },
        {
          "@type": "Question",
          "name": "Tek bir abonelik birden fazla Telegram kanalının ve bir Discord sunucusunun kilidini açabilir mi?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Evet. Mimari, tek bir Stripe Ürün/Fiyat Kimliğini birden fazla uç noktada birleşik bir yetkilendirme izin şemasıyla eşleştirir. Başarılı bir checkout.session.completed olayının ardından motor, yapılandırılmış her bir Telegram özel kanalı ve süper grubu için bağımsız, tek kullanımlık davet bağlantıları oluşturur. Eş zamanlı olarak Discord OAuth2 kullanarak bir PUT /guilds/{guild.id}/members/{user.id}/roles/{role.id} isteği gönderir; abonelik katmanlarını ve otomatik erişim iptalini her iki platformda da gecikme olmaksızın senkronize eder."
          }
        },
        {
          "@type": "Question",
          "name": "SovereignPatron'u Telegram için barındırmanın sunucu gereksinimleri nelerdir?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "SovereignPatron minimal altyapı üzerinde verimli bir şekilde çalışır: Linux (Ubuntu/Debian veya Alpine) çalıştıran tek çekirdekli bir sanal özel sunucu (1 vCPU, 1GB RAM, 10GB SSD). Yazılım ayak izi; hafif bir Go veya Node.js çalışma zamanı, kullanıcı durum yönetimi için bir SQLite veya PostgreSQL veritabanı örneği ve webhook iş kuyrukları için isteğe bağlı bir Redis önbelleği içerir. Güvenli webhook yüklerini işlemek için genel statik IP'ye sahip bir SSL/TLS ters proxy'si (örn. Caddy, NGINX) gereklidir."
          }
        }
      ]
    }
  ]
}
    Stripe ile Özel Telegram Kanalı Nasıl Paraya Dönüştürülür: %0 Komisyonlu Auto-Kick ve Tokenized Davet Altyapısı | SovereignPatron | SovereignPatron