# الدفع في تيليجرام

## كيفية ربط نظام دفع

نظام الدفع مدمج في تيليغرام. لقبول المدفوعات داخل المراسِل، تحتاج إلى:

* ربط نظام دفع مع روبوتك باستخدام **BotFather**.
* اذهب إلى إعدادات الروبوت المطلوب وحدد **"المدفوعات"** من القائمة.

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

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

اتبع التعليمات لربط نظام دفع متاح ونسخ الرمز المميز المقدم.

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

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

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

## **كيفية إصدار فاتورة للعميل**

لإرسال فاتورة في تيليغرام، استخدم الطريقة وحدد المعلمات المطلوبة.

**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">معلمات الدالة</th><th>وصف المعلمة</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark> provider_token </td><td>(معلمة مطلوبة) الرمز المميز الذي تم الحصول عليه من BotFather بعد ربط نظام الدفع</td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark> platform_id </td><td>(معلمة مطلوبة) معرّف المستلم - معرّف المستخدم أو المجموعة أو القناة</td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark> title </td><td>(معلمة مطلوبة) عنوان المنتج، من 1 إلى 32 حرفًا</td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark> description </td><td>(معلمة مطلوبة) وصف المنتج، من 1 إلى 255 حرفًا</td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark> currency </td><td>(معلمة مطلوبة) عملة الدفع (<mark style="background-color:red;"><strong>EUR</strong></mark>، USD، UAH، إلخ؛ لمزيد من التفاصيل<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>مصفوفة من المصفوفات تحتوي على تفاصيل التسعير للمنتج والخدمات الإضافية (التوصيل، التغليف، إلخ). تُعرض في صفحة الدفع. يمكن تحديد المبلغ إما كعدد صحيح (مثل 125) أو كعدد عشري باستخدام نقطة (مثل 120.25).<br></p><p>على سبيل المثال: [["product", 2000], ["VAT", 20.75], ["packaging", 100]]</p></td></tr><tr><td>photo_url</td><td>رابط صورة المنتج</td></tr><tr><td>payload </td><td>الجزء الأول من رد الاستدعاء الخاص بالدفع، والقيمة الافتراضية هي <strong>tg_payment</strong></td></tr><tr><td>protect_content</td><td>1 - الحماية من النسخ ولقطات الشاشة، 0 - بدون حماية</td></tr><tr><td>disable_notification </td><td>1 - الإرسال مع إشعار، 0 - بدون إشعار</td></tr><tr><td>need_name</td><td>1 - طلب الاسم الكامل للمستخدم لإكمال الطلب، 0 - بدون طلب الاسم</td></tr><tr><td>need_phone_number</td><td>1 - طلب رقم هاتف المستخدم لإكمال الطلب، 0 - بدون طلب رقم الهاتف</td></tr><tr><td>need_email </td><td>1 - طلب بريد المستخدم الإلكتروني لإكمال الطلب، 0 - بدون طلب البريد الإلكتروني</td></tr><tr><td>reply_to_message_id</td><td>معرّف الرسالة للرد عليها؛ إذا كنت تريد إرسال الفاتورة كرسالة منفصلة، فاستخدم علامتي اقتباس مفردتين ('')</td></tr><tr><td>reply_markup</td><td>لوحة مفاتيح مع الزر الأول مضبوط على النوع <strong>pay</strong></td></tr><tr><td>message_thread_id </td><td>معرّف الموضوع (متاح للمجموعات الفائقة مع تمكين وظيفة المنتدى)</td></tr><tr><td>provider_data </td><td>بيانات الفاتورة بصيغة <strong>JSON</strong> لإرسالها إلى مزود خدمة الدفع. يجب أن يوفر نظام الدفع أوصافًا تفصيلية للحقول المطلوبة.</td></tr></tbody></table>

{% hint style="warning" %}
**مهم!** يجب تمرير جميع المعلمات بالترتيب المحدد في الدالة. إذا كنت بحاجة إلى تحديد معلمة معينة وتجاهل الأخرى، فاترك القيم فارغة أو استخدم القيم المحددة في الوثائق للمعلمات التي لا تحتاجها.
{% endhint %}

مثال:

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

إذا تم تمكين أي من المعلمات `need_name`, `need_phone_number`، أو `need_email` ، فسيُطلب من المستخدم تقديم تلك المعلومات قبل إكمال الدفع. عند نجاح الدفع، تُحفظ البيانات في متغيرات العميل المقابلة.

مثال:

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

النتيجة: يتم طلب البيانات قبل الدفع.

## ردّ الدفع

إذا نجح الدفع، فسيتم إرسال رد استدعاء بالمحتوى التالي إلى دردشة المستخدم:

tg\_payment 1372995196 120.75 <mark style="color:red;">**USD**</mark> 2ff747b9-000f-5000-b000-16d7e3517aa&#x39;**,** حيث&#x20;

1. course\_pay - payload - الحمولة من طلب إنشاء الفاتورة الأصلي؛&#x20;
2. 1372995196 - معرّف الدردشة التي أُرسلت إليها الفاتورة في الأصل؛
3. 120.75 - إجمالي مبلغ الدفع؛
4. <mark style="color:red;">**USD**</mark> - العملة؛
5. 2ff747b9-000f-5000-b000-16d7e3517aa9 - معرّف الدفع في نظام التاجر.

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

بالإضافة إلى ذلك، إذا تم طلب اسم المستخدم و/أو رقم الهاتف و/أو البريد الإلكتروني، فسيتم تعيين المتغيرات المقابلة للعميل:

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

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

{% hint style="info" %}
سيتم إرسال رد استدعاء بنجاح الدفع إلى **الرسائل المباشرة** للمستخدم مع الروبوت.

يجب أن يكون لدى المستخدم **دردشة موجودة مسبقًا** مع الروبوت (أي يجب أن يكون قد بدأ الروبوت أو اشترك فيه) **قبل** عند إجراء الدفع. وإلا فلن يتمكن الروبوت من إرسال الرسالة المباشرة إليه.
{% endhint %}

{% hint style="info" %}
بمجرد استلام webhook الخاص بالدفع، سيتم تأكيد الدفع تلقائيًا عبر الطريقة answerPreCheckoutQuery. <https://core.telegram.org/bots/api#answerprecheckoutquery>
{% endhint %}

## رسالة مثبتة مع زر دفع

تحتاج إلى استخدام ميزة تثبيت الرسائل بعد ربط نظام الدفع.

**tg\_pin\_chat\_message(platform\_id, message\_id, disable\_notification)**

<table><thead><tr><th width="271">معلمات الدالة</th><th>الوصف</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>معرّف دردشة تيليغرام <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><strong>message_id</strong> </td><td>معرّف الرسالة المراد تثبيتها</td></tr><tr><td><strong>disable_notification</strong> </td><td>تحدد هذه المعلمة ما إذا كان يجب إرسال إشعار إلى جميع أعضاء الدردشة بشأن الرسالة المثبتة حديثًا. يتم تعطيل الإشعارات دائمًا في القنوات والدردشات الخاصة.<br>لتعطيل الإشعارات، اضبط <strong>disable_notification</strong> المعلمة على 1؛ وإلا فاستخدم 0.</td></tr></tbody></table>

مثال:

الخطوة 1:\
prices = \[\["course", 100], \["VAT", 20.75]]

result=tg\_send\_invoice('381764678:TEST:129736', platform\_id, 'Course on courses', 'إنشاء الدورات سهل', '<mark style="color:red;">**USD**</mark>', prices, '<mark style="color:red;">**<https://salebot.pro/promo.png>'**</mark>', 'course\_pay','0', '0', '1', '1', '1', '', '{"inline\_keyboard": \[\[{"text":"Pay", "pay":"True"}]]}')

الخطوة 2:\
نتيجة للخطوة الأولى، ستحصل على استجابة تحتاج منها إلى استخراج **message\_id** القيمة باستخدام **get()** الدالة.\
res=get(result,'result')\
m\_id=get(res,'message\_id')

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

بعد ذلك، ثبّت الرسالة: tg\_pin\_chat\_message(#{platform\_id}, #{m\_id}, 1)

### مثال: الحد الأدنى من المعلمات

prices = \[\["super course", 100]]

result= tg\_send\_invoice('381764678:TEST:129736', platform\_id, 'Course on courses', 'إنشاء الدورات سهل جدًا', '<mark style="color:red;">**USD**</mark>', prices)

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

### **مثال: لوحة مفاتيح**

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

tg\_send\_invoice('381764678:TEST:129736', platform\_id, 'Course on courses', 'إنشاء الدورات سهل، '<mark style="color:red;">**USD**</mark>', prices, <mark style="color:red;">**'<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/6bb597f9732c0ba96ae4d5bb82ef897b7f036924" 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/ar/chatbot/ttbyqat-almraslh/tylyjram/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.
