Ödeme sağlayıcısı nasıl bağlanır
Telegram'ın yerleşik bir ödeme sistemi vardır. Telegram içinde ödeme kabul etmek için şunları yapmanız gerekir:
- BotFather aracılığıyla botunuza bir ödeme sağlayıcısı bağlayın.
- BotFather'da bot ayarlarınızı açın ve Payments seçeneğini seçin.


Mevcut ödeme sağlayıcılarından birini bağlamak için talimatları izleyin, ardından oluşturulan sağlayıcı token'ını kopyalayın.



Fatura nasıl gönderilir
Telegram'da fatura göndermek için aşağıdaki işlevi kullanın:
tg_send_invoice(
provider_token,
platform_id,
title,
description,
currency,
prices,
photo_url,
payload,
protect_content,
disable_notification,
need_name,
need_phone_number,
need_email,
reply_to_message_id,
reply_markup,
message_thread_id,
provider_data
)
| Parametre | Açıklama |
|---|---|
| provider_token | Gerekli. Ödeme sağlayıcınızı bağladıktan sonra BotFather'dan alınan sağlayıcı token'ı. |
| platform_id | Gerekli. Alıcı tanımlayıcısı (kullanıcı, grup veya kanal kimliği). |
| title | Gerekli. Ürün başlığı (1–32 karakter). |
| description | Gerekli. Ürün açıklaması (1–255 karakter). |
| currency | Gerekli. Ödeme para birimi (örneğin: EUR, USD, UAH). Desteklenen para birimlerinin listesi: https://core.telegram.org/bots/payments#supported-currencies |
| prices | Fatura öğelerini açıklayan dizi. Her öğe bir başlık ve bir tutar içerir. Tutarlar tam sayı veya ondalık sayı olabilir. Örnek: [["Ürün", 2000], ["KDV", 20.75], ["Paketleme", 100]]
|
| photo_url | Ürün görselinin URL'si. |
| payload | Ödeme geri aramasında döndürülen özel yük. Varsayılan: tg_payment. |
| protect_content |
1 — içeriği kopyalamaya ve ekran görüntülerine karşı koru.0 — koruma yok. |
| disable_notification |
1 — sessizce gönder.0 — bildirimle gönder. |
| need_name |
1 — müşterinin tam adını iste.0 — isteme. |
| need_phone_number |
1 — müşterinin telefon numarasını iste.0 — isteme. |
| need_email |
1 — müşterinin e-posta adresini iste.0 — isteme. |
| reply_to_message_id | Yanıtlanacak mesaj kimliği. Faturayı ayrı bir mesaj olarak göndermek için '' kullanın. |
| reply_markup | Klavye yapılandırması. İlk düğme pay türünde olmalıdır. |
| message_thread_id | Forum özellikli süper gruplar için konu kimliği. |
| provider_data | Sağlayıcıya özel ödeme verilerini içeren JSON nesnesi. Gerekli alanlar için ödeme sağlayıcınızın belgelerine bakın. |
Önemli
Parametreler yukarıda gösterilen tam sırayla iletilmelidir.
İsteğe bağlı parametreleri atlamanız gerekiyorsa, bunları boş bırakın veya belgelerde açıklanan varsayılan değerleri iletin.
Örnek

Aşağıdaki parametrelerden herhangi biri etkinleştirilirse:
need_nameneed_phone_numberneed_email
Telegram, ödeme öncesinde müşteriden istenen bilgileri isteyecektir.
Başarılı bir ödemeden sonra toplanan bilgiler otomatik olarak ilgili istemci değişkenlerine kaydedilir.
Örnek:

Ödeme geri araması
Başarılı bir ödemeden sonra Telegram, bot'a aşağıdaki geri aramayı gönderir:
tg_payment 1372995196 120.75 USD 2ff747b9-000f-5000-b000-16d7e3517aa9
Burada:
-
tg_payment— fatura oluşturulurken belirtilen yük değeri. -
1372995196— faturanın orijinal olarak gönderildiği sohbet kimliği. -
120.75— ödeme tutarı. -
USD— ödeme para birimi. -
2ff747b9-000f-5000-b000-16d7e3517aa9— ödeme sağlayıcısı tarafından döndürülen ödeme kimliği.

Müşteri bilgisi istendiyse, aşağıdaki istemci değişkenleri de otomatik olarak doldurulacaktır:
tg_payment_nametg_payment_phonetg_payment_email

Ödeme geri araması, kullanıcının botla olan özel sohbetine gönderilir.
Kullanıcının ödeme yapmadan önce botla bir konuşma başlatmış olması gerekir. Aksi takdirde Telegram geri arama mesajını iletemez.
MaviBot, ödeme webhook'unu aldıktan sonra
answerPreCheckoutQueryyöntemini kullanarak ödemeyi otomatik olarak onaylar.
Fatura mesajını sabitleme
Bir ödeme sağlayıcısını bağladıktan sonra fatura mesajını sabitleyebilirsiniz.
İşlevi kullanın:
tg_pin_chat_message(platform_id, message_id, disable_notification)
| Parametre | Açıklama |
|---|---|
| platform_id | Telegram sohbet kimliği. |
| message_id | Sabitlenecek mesajın kimliği. |
| disable_notification | Telegram'ın sabitlenen mesajla ilgili bildirim gönderip göndermeyeceğini kontrol eder.1 — bildirim yok.0 — bildirim gönder.Özel sohbetlerde ve kanallarda bildirimler her zaman devre dışıdır. |
Örnek
Adım 1
prices = [["Kurs", 100], ["KDV", 20.75]]
result = tg_send_invoice(
'381764678:TEST:129736',
platform_id,
'Kurs',
'Kurs oluşturmak kolaydır',
'USD',
prices,
'https://salebot.pro/promo.png',
'course_pay',
'0',
'0',
'1',
'1',
'1',
'',
'{"inline_keyboard":[[{"text":"Öde","pay":"True"}]]}'
)
Adım 2
Yanıttan message_id değerini çıkarın:
res = get(result, 'result')
m_id = get(res, 'message_id')

Ardından mesajı sabitleyin:
tg_pin_chat_message(#{platform_id}, #{m_id}, 1)
Örnek: minimum gerekli parametreler
prices = [["Süper kurs", 100]]
result = tg_send_invoice(
'381764678:TEST:129736',
platform_id,
'Kurs',
'Kurs oluşturmak süper kolaydır',
'USD',
prices
)

Örnek: satır içi klavyeli fatura
prices = [["Kurs", 100], ["KDV", 20.75]]
tg_send_invoice(
'381764678:TEST:129736',
platform_id,
'Kurs',
'Kurs oluşturmak kolaydır',
'USD',
prices,
'https://mavibot.ai/promo.png',
'course_pay',
'0',
'0',
'1',
'1',
'1',
'',
'{"inline_keyboard":[[{"text":"Öde","pay":"True"}],[{"text":"Başka bir düğme","callback_data":"Başka bir düğme"}]]}'
)
