Ö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:

  1. BotFather aracılığıyla botunuza bir ödeme sağlayıcısı bağlayın.
  2. 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_name
  • need_phone_number
  • need_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:

  1. tg_payment — fatura oluşturulurken belirtilen yük değeri.
  2. 1372995196 — faturanın orijinal olarak gönderildiği sohbet kimliği.
  3. 120.75 — ödeme tutarı.
  4. USD — ödeme para birimi.
  5. 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_name
  • tg_payment_phone
  • tg_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 answerPreCheckoutQuery yöntemini kullanarak ödemeyi otomatik olarak onaylar.

https://core.telegram.org/bots/api#answerprecheckoutquery

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"}]]}'
)