# Telegram’da ödeme

## Bir ödeme sistemi nasıl bağlanır

Ödeme sistemi Telegram'a entegredir. Messenger içinde ödeme kabul etmek için şunları yapmanız gerekir:

* Botunuza bir ödeme sistemi bağlayın kullanarak **BotFather**.
* İstediğiniz bot ayarlarına gidin ve seçin **"Ödemeler"** menüden.

<div data-with-frame="true"><figure><img src="/files/8cda9266ab24c6689db060e0ed56f73a87455b71" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/489d4fd616bb4dfec08a25fee966b8e28463c084" alt="" width="375"><figcaption></figcaption></figure></div>

Kullanılabilir bir ödeme sistemini bağlamak için talimatları izleyin ve verilen belirteci kopyalayın.

<div data-with-frame="true"><figure><img src="/files/ca46e245b0b180eeb321c8f955e47c6ccb814178" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/aa0b47b136a9b95915bb519f2e551ddea87ad6c9" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/cb5bdadbb594fca5f5c04d49be35c921c097375c" alt="" width="375"><figcaption></figcaption></figure></div>

## **Bir müşteriye fatura nasıl kesilir**

Telegram'da bir fatura göndermek için yöntemi 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)**

<table><thead><tr><th width="270">İşlev parametreleri</th><th>Parametre açıklaması</th></tr></thead><tbody><tr><td><mark style="color:kırmızı;"><strong>!</strong></mark> provider_token </td><td>(gerekli parametre) ödeme sistemi bağlandıktan sonra BotFather'dan alınan belirteç</td></tr><tr><td><mark style="color:kırmızı;"><strong>!</strong></mark> platform_id </td><td>(gerekli parametre) alıcı kimliği - kullanıcı, grup veya kanal tanımlayıcısı</td></tr><tr><td><mark style="color:kırmızı;"><strong>!</strong></mark> title </td><td>(gerekli parametre) ürün başlığı, 1–32 karakter</td></tr><tr><td><mark style="color:kırmızı;"><strong>!</strong></mark> description </td><td>(gerekli parametre) ürün açıklaması, 1–255 karakter</td></tr><tr><td><mark style="color:kırmızı;"><strong>!</strong></mark> currency </td><td>(gerekli parametre) ödeme para birimi (<mark style="color:varsayılan;background-color:red;"><strong>EUR</strong></mark>, USD, UAH vb.; daha fazla ayrıntı için<a href="https://core.telegram.org/bots/payments#supported-currencies"> https://core.telegram.org/bots/payments#supported-currencies</a> )</td></tr><tr><td>prices</td><td><p>Ürün ve ek hizmetler (teslimat, paketleme vb.) için fiyatlandırma ayrıntılarını içeren bir dizi dizisi. Ödeme sayfasında gösterilir. Tutar, bir tam sayı (ör. 125) ya da nokta kullanılan ondalık sayı (ör. 120.25) olarak belirtilebilir.<br></p><p>Örneğin: [["product", 2000], ["VAT", 20.75], ["packaging", 100]]</p></td></tr><tr><td>photo_url</td><td>Ürün görseli URL'si</td></tr><tr><td>payload </td><td>Ödeme geri çağrısının ilk bölümü, varsayılan değer <strong>tg_payment</strong></td></tr><tr><td>protect_content</td><td>1 - kopyalanmaya ve ekran görüntülerine karşı korur, 0 - koruma yok</td></tr><tr><td>disable_notification </td><td>1 - bildirimle gönder, 0 - bildirimsiz</td></tr><tr><td>need_name</td><td>1 - siparişi tamamlamak için tam kullanıcı adını gerektirir, 0 - ad istemez</td></tr><tr><td>need_phone_number</td><td>1 - siparişi tamamlamak için kullanıcı telefon numarasını gerektirir, 0 - telefon numarası istemez</td></tr><tr><td>need_email </td><td>1 - siparişi tamamlamak için kullanıcı e-postasını gerektirir, 0 - e-posta istemez</td></tr><tr><td>reply_to_message_id</td><td>Yanıtlanacak mesaj kimliği; faturayı ayrı bir mesaj olarak göndermek istiyorsanız iki tek tırnak işareti ('') kullanın</td></tr><tr><td>reply_markup</td><td>İlk düğmesi tür olarak ayarlanmış klavye <strong>pay</strong></td></tr><tr><td>message_thread_id </td><td>Konu kimliği (forum işlevi etkinleştirilmiş süper gruplar için kullanılabilir)</td></tr><tr><td>provider_data </td><td>Ödeme hizmeti sağlayıcısına gönderilecek <strong>JSON</strong> biçimindeki fatura verileri. Ödeme sistemi, gerekli alanların ayrıntılı açıklamalarını sağlamalıdır.</td></tr></tbody></table>

{% hint style="warning" %}
**ÖNEMLİ!** Tüm parametreler, fonksiyonda belirtilen sırayla iletilmelidir. Belirli bir parametreyi belirtip diğerlerini atlamanız gerekiyorsa, boş değerler bırakın veya ihtiyacınız olmayan parametreler için belgelerde belirtilen değerleri kullanın.
{% endhint %}

Örnek:

<div data-with-frame="true"><figure><img src="/files/1136b155f94e8d9405a068cd0f3334e44370360e" alt=""><figcaption></figcaption></figure></div>

Parametrelerden herhangi biri `need_name`, `need_phone_number`ya da `need_email` etkinleştirilirse, kullanıcıya ödemeyi tamamlamadan önce bu bilgileri sağlaması istenir. Ödeme başarıyla tamamlandığında, veriler ilgili istemci değişkenlerine kaydedilir.

Örnek:

<div data-with-frame="true"><figure><img src="/files/1d21dfdefb19212d9cc9da46a9461f42dc0eee8d" alt=""><figcaption></figcaption></figure></div>

Sonuç: ödeme öncesinde veri istenir.

## Ödeme geri bildirimi

Ödeme başarılı olursa, aşağıdaki içerikte bir geri çağrı kullanıcının sohbetine gönderilir:

tg\_payment 1372995196 120.75 <mark style="color:kırmızı;">**USD**</mark> 2ff747b9-000f-5000-b000-16d7e3517aa&#x39;**,** burada&#x20;

1. course\_pay - payload - orijinal fatura oluşturma isteğinden gelen payload;&#x20;
2. 1372995196 - faturanın başlangıçta gönderildiği sohbet kimliği;
3. 120.75 - toplam ödeme tutarı;
4. <mark style="color:kırmızı;">**USD**</mark> - para birimi;
5. 2ff747b9-000f-5000-b000-16d7e3517aa9 - satıcının sistemindeki ödeme kimliği.

<div data-with-frame="true"><figure><img src="/files/da3010105e863216526b7d7cb0e677d226983a0c" alt="" width="563"><figcaption></figcaption></figure></div>

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

**tg\_payment\_name**, **tg\_payment\_phone** ve **tg\_payment\_email**

<div data-with-frame="true"><figure><img src="/files/5fc48798ab3fa8eb8d011830ad469335b88dca96" alt="" width="375"><figcaption></figcaption></figure></div>

{% hint style="info" %}
Ödeme başarı geri çağrısı kullanıcının **doğrudan mesajlarına** bot ile gönderilecektir.

Kullanıcının **bot ile mevcut bir sohbeti** olmalıdır (yani, botu başlatmış veya botu aboneliğe almış olmalıdır) **önce** ödeme yapılır. Aksi takdirde bot onlara doğrudan mesaj gönderemez.
{% endhint %}

{% hint style="info" %}
Ö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>
{% endhint %}

## Ö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)**

<table><thead><tr><th width="271">İşlev parametreleri</th><th>Açıklama</th></tr></thead><tbody><tr><td><mark style="color:kırmızı;"><strong>!</strong></mark><strong> platform_id</strong></td><td>Telegram sohbet kimliği <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><strong>message_id</strong> </td><td>Sabitlenecek mesaj kimliği</td></tr><tr><td><strong>disable_notification</strong> </td><td>Bu parametre, yeni sabitlenen mesaj hakkında tüm sohbet üyelerine bildirim gönderilip gönderilmeyeceğini belirler. Kanallarda ve özel sohbetlerde bildirimler her zaman devre dışıdır.<br>Bildirimleri devre dışı bırakmak için <strong>disable_notification</strong> parametresini 1 olarak ayarlayın; aksi takdirde 0 kullanın.</td></tr></tbody></table>

Örnek:

1\. Adım:\
prices = \[\["course", 100], \["VAT", 20.75]]

result=tg\_send\_invoice('381764678:TEST:129736', platform\_id, 'Course on courses', 'Creating courses is easy', '<mark style="color:kırmızı;">**USD**</mark>', prices, '<mark style="color:kırmızı;">**<https://salebot.pro/promo.png>'**</mark>, 'course\_pay','0', '0', '1', '1', '1', '', '{"inline\_keyboard": \[\[{"text":"Pay", "pay":"True"}]]}')

2\. Adım:\
İlk adımın sonucu olarak, içinden **message\_id** değerini **get()** fonksiyonu ile çıkarmanız gereken bir yanıt alacaksınız.\
res=get(result,'result')\
m\_id=get(res,'message\_id')

<div data-with-frame="true"><figure><img src="/files/f881b3e092e9e05afcf39d1f34b7299ef862ccb3" alt="" width="246"><figcaption></figcaption></figure></div>

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', '<mark style="color:kırmızı;">**USD**</mark>', prices)

<div data-with-frame="true"><figure><img src="/files/6474ebcca23204b843038691e67233d457f2fad8" alt=""><figcaption></figcaption></figure></div>

### **Örnek: klavye**

prices = \[\["course", 100], \["VAT", 20.75]]

tg\_send\_invoice('381764678:TEST:129736', platform\_id, 'Course on courses', 'Creating courses is easy, '<mark style="color:kırmızı;">**USD**</mark>', prices, <mark style="color:kırmızı;">**'<https://mavibot.ai/promo.png>**</mark>', 'course\_pay','0', '0', '1', '1', '1', '', '{"inline\_keyboard": \[\[{"text":"Pay", "pay":"True"}], \[{"text":"Another button", "callback\_data": "Another button"}]]}')

<div data-with-frame="true"><figure><img src="/files/72651079b3a43a2a48ce02322913e96ba22dca85" alt=""><figcaption></figcaption></figure></div>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/tr/chatbot/mesajlasma-uygulamalari/telegram/api/payment.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
