Ödeme sistemi nasıl bağlanır
Ödeme sistemi Telegram'a entegre edilmiştir. Mesajlaşma uygulaması içinde ödeme almak için şunları yapmanız gerekir:
- BotFather kullanarak botunuza bir ödeme sistemi bağlayın.
- İstediğiniz bot ayarlarına gidin ve menüden "Ödemeler" seçeneğini seçin.


Mevcut bir ödeme sistemini bağlamak için talimatları izleyin ve sağlanan token'ı kopyalayın.



Müşteriye fatura nasıl kesilir
Telegram'da fatura göndermek için metodu kullanın ve gerekli parametreleri belirtin.
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)
| Fonksiyon parametreleri | Parametre açıklaması |
|---|---|
| **!** provider_token | (zorunlu parametre) BotFather'dan ödeme sistemi bağlandıktan sonra alınan token |
| **!** platform_id | (zorunlu parametre) Alıcı kimliği - kullanıcı, grup veya kanal tanımlayıcısı |
| **!** title | (zorunlu parametre) Ürün başlığı, 1–32 karakter |
| **!** description | (zorunlu parametre) Ürün açıklaması, 1–255 karakter |
| **!** currency | (zorunlu parametre) Ödeme para birimi (**EUR**, USD, UAH vb.; daha fazla bilgi için https://core.telegram.org/bots/payments#supported-currencies ) |
| prices |
Ürün ve ek hizmetler (teslimat, paketleme vb.) için fiyatlandırma detaylarını içeren diziler dizisi. Ödeme sayfasında görüntülenir. Tutar, tam sayı (ör. 125) veya nokta kullanılarak ondalık sayı (ör. 120.25) olarak belirtilebilir.
Örneğin: [["product", 2000], ["VAT", 20.75], ["packaging", 100]] |
| photo_url | Ürün resmi URL'si |
| payload | Ödeme geri aramasının ilk kısmı, varsayılan tg_payment değeridir |
| protect_content | 1 - kopyalamaya ve ekran görüntülerine karşı koru, 0 - koruma yok |
| disable_notification | 1 - bildirimle gönder, 0 - bildirimsiz gönder |
| need_name | 1 - siparişi tamamlamak için tam kullanıcı adı iste, 0 - ad isteği yok |
| need_phone_number | 1 - siparişi tamamlamak için kullanıcı telefon numarası iste, 0 - telefon numarası isteği yok |
| need_email | 1 - siparişi tamamlamak için kullanıcı e-postası iste, 0 - e-posta isteği yok |
| reply_to_message_id | Yanıtlanacak mesaj kimliği; faturayı ayrı bir mesaj olarak göndermek istiyorsanız, iki tek tırnak işareti ('') kullanın |
| reply_markup | İlk düğmesi pay türüne ayarlanmış klavye |
| message_thread_id | Konu kimliği (forum işlevselliği etkinleştirilmiş süper gruplar için kullanılabilir) |
| provider_data | Ödeme hizmeti sağlayıcısına gönderilecek JSON formatındaki fatura verileri. Ödeme sistemi, gerekli alanların ayrıntılı açıklamalarını sağlamalıdır. |
ÖNEMLİ! Tüm parametreler, fonksiyonda belirtilen sırayla iletilmelidir. Belirli bir parametreyi belirtmeniz ve diğerlerini atlamanız gerekiyorsa, ihtiyacınız olmayan parametreler için boş değerler veya dokümantasyonda belirtilen değerleri bırakın.
Örnek:

need_name, need_phone_number veya need_email parametrelerinden herhangi biri etkinleştirilirse, kullanıcıdan ödemeyi tamamlamadan önce bu bilgiyi sağlaması istenecektir. Başarılı ödeme durumunda, veriler ilgili müşteri değişkenlerine kaydedilir.
Örnek:

Sonuç: ödeme öncesinde veri istenir.
Ödeme geri araması
Ödeme başarılı olursa, kullanıcının sohbetine aşağıdaki içeriğe sahip bir geri arama gönderilir:
tg_payment 1372995196 120.75 USD 2ff747b9-000f-5000-b000-16d7e3517aa9, burada
- course_pay - payload - orijinal fatura oluşturma isteğindeki payload;
- 1372995196 - faturanın orijinal olarak gönderildiği sohbet kimliği;
- 120.75 - toplam ödeme tutarı;
- USD - para birimi;
- 2ff747b9-000f-5000-b000-16d7e3517aa9 - satıcı sistemindeki ödeme kimliği.

Ayrıca, kullanıcının adı, telefon numarası ve/veya e-postası istendiyse, ilgili değişkenler müşteriye atanır:
tg_payment_name, tg_payment_phone ve tg_payment_email

Ödeme başarılı geri araması, kullanıcının botla olan doğrudan mesajlarına gönderilecektir.
Kullanıcının, ödeme yapılmadan önce botla mevcut bir sohbeti olmalıdır (yani botu başlatmış veya bot'a abone olmuş olmalıdır). Aksi takdirde bot, kullanıcıya doğrudan mesaj gönderemez.
Ödeme webhook'u alındıktan sonra, ödeme answerPreCheckoutQuery yöntemi aracılığıyla otomatik olarak onaylanacaktır. https://core.telegram.org/bots/api#answerprecheckoutquery
Ödeme düğmesi olan sabitlenmiş mesaj
Ödeme sistemini bağladıktan sonra mesaj sabitleme özelliğini kullanmanız gerekir.
tg_pin_chat_message(platform_id, message_id, disable_notification)
| Fonksiyon parametreleri | Açıklama |
|---|---|
| **!** platform_id | Telegram sohbet kimliği * |
| message_id | Sabitlenecek mesaj kimliği |
| disable_notification | Bu parametre, yeni sabitlenen mesaj hakkında tüm sohbet üyelerine bir bildirim gönderilip gönderilmeyeceğini tanımlar. Kanallarda ve özel sohbetlerde bildirimler her zaman devre dışıdır.
Bildirimleri devre dışı bırakmak için disable_notification parametresini 1 olarak ayarlayın; aksi takdirde 0 kullanın. |
Örnek:
Adım 1:
prices = [["course", 100], ["VAT", 20.75]]
result=tg_send_invoice('381764678:TEST:129736', platform_id, 'Course on courses', 'Creating courses is easy', 'USD', prices, 'https://salebot.pro/promo.png', 'course_pay','0', '0', '1', '1', '1', '', '{"inline_keyboard": [[{"text":"Pay", "pay":"True"}]]}')
Adım 2:
Birinci adımın sonucunda, get() fonksiyonunu kullanarak message_id değerini çıkarmanız gereken bir yanıt alacaksınız.
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 parametre seti
prices = [["super course", 100]]
result= tg_send_invoice('381764678:TEST:129736', platform_id, 'Course on courses', 'Creating courses is super easy', 'USD', prices)

Örnek: klavye
prices = [["course", 100], ["VAT", 20.75]]
tg_send_invoice('381764678:TEST:129736', platform_id, 'Course on courses', 'Creating courses is easy, 'USD', prices, 'https://mavibot.ai/promo.png', 'course_pay','0', '0', '1', '1', '1', '', '{"inline_keyboard": [[{"text":"Pay", "pay":"True"}], [{"text":"Another button", "callback_data": "Another button"}]]}')
