# Prodamus (KZ)

## **كيفية ربط بروداموس**

لربط Prodamus، ستحتاج إلى عنوان URL لنموذج الدفع والمفتاح السري.

يتم إصدار عنوان URL لنموذج الدفع بعد التسجيل، ومثاله: `demo.payform.ru`.

يمكن الحصول على المفتاح السري من الحساب الشخصي، وهناك أيضًا يجب تحديد عنوان URL الذي ستُرسل إليه الإشعارات (notification).

<div data-with-frame="true"><figure><img src="/files/173d30e2e46283b820e87b1a8935052a4667cebd" alt=""><figcaption><p>المفتاح السري في إعدادات نموذج الدفع داخل الحساب الشخصي لنظام الدفع «بروداموس»</p></figcaption></figure></div>

[**دليل مفصل حول كيفية القيام بذلك**](https://help.prodamus.ru/payform.ru-onlain-oplaty/prochee/url-dlya-uvedomlenii-i-sekretnyi-klyuch)

عنوان الإشعارات:\
<https://chatter.mavibot.ai/prodamus\\_callback/result>

يجب تحديد هذا العنوان في الإعدادات في مكانين.

في الصفحة الرئيسية للإعدادات يمكنك اختيار وضع عمل نموذج الدفع: وضع تجريبي بدون دفع أو وضع قبول المدفوعات.

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

يجب تحديد عنوان الإشعارات في إعدادات نظام الدفع في مكانين: **«إعداد النموذج»** في تبويب — للمدفوعات لمرة واحدة (العادية) و **«الاشتراكات»** في تبويب — لمدفوعات الاشتراك.

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

**عنوان الإشعارات:**\
<https://chatter.mavibot.ai/prodamus\\_callback/result>

لإعداد العمل مع مدفوعات الاشتراك، **«الاشتراكات»** اذهب إلى التبويب وحدد عنوان الإشعارات:

<https://chatter.mavibot.ai/prodamus\\_callback/result>

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

{% hint style="warning" %}
**انتبه!** بعد إدخال عنوان URL، لا بد من **«حفظ»** الضغط على الزر.
{% endhint %}

لربط Prodamus، **«التحصيل»** يجب الانتقال إلى قسم.

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

بعد ذلك يكفي إدخال البيانات المذكورة أعلاه في النموذج:

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

{% hint style="warning" %}
**مهم!** عند تحديد عنوان URL لنموذج الدفع، **https\://** لا تضف.
{% endhint %}

بهذا يكتمل الربط. الآن لنرَ كيف نستخدم هذه الوظيفة.

## كيفية إنشاء رابط للدفع

### زر مع وظيفة «الدفع»

**يمكن إنشاء رابط للدفع في زر يحتوي على وظيفة «الدفع».**

{% hint style="info" %}
[تم شرح كيفية إنشاء مثل هذا الزر في هذه المقالة.](/doc/ar/chatbot/builder/alazrar/zr-aldfa.md)
{% endhint %}

والآن لنستعرض جميع الإعدادات الممكنة لهذا الزر.

### الإعدادات الإلزامية لزر «الدفع» في Prodamus

**لإنشاء رابط للدفع يجب تحديد الإعدادات الإلزامية في إعدادات الزر:**\
«المبلغ»، «اسم المنتج»، وكذلك خيار «المحتوى المدفوع» — إذا لم يكن لديك صندوق نقدي إلكتروني خاص بك وتريد الحصول على إيصال من Prodamus.

عند الانتقال إلى صفحة إتمام الطلب، تُعرض مسبقًا معلومات المنتج وسعره، بينما يُدخل العميل بيانات الاتصال الخاصة به فقط.

إذا تم تحديد بريد Email الخاص بالمستخدم و/أو رقم الهاتف في إعدادات الزر، فستُعرض في صفحة إتمام الطلب بيانات الاتصال الخاصة بالدافع ومعلومات المنتج وسعره.

<div data-with-frame="true"><figure><img src="/files/57e5b407ecdb536702613a6a91b1437ddab83b91" alt="" width="563"><figcaption><p>نافذة إعدادات الزر</p></figcaption></figure></div>

**حقل «النص»** — سيظهر هذا النص في الرسالة على الزر الذي يحتوي على رابط الدفع.

**حقل «الوظيفة»** — لإنشاء زر يوفّر رابط دفع نختار وظيفة «الدفع».

**حقل «نظام الدفع»** — ستظهر أنظمة الدفع المتصلة بالمشروع في القائمة.\
إذا لم تكن أي منظومة دفع متصلة بالمشروع، فسيكون هذا النوع من الأزرار غير متاح.

**حقل «اسم المنتج» (إلزامي)** — يجب تحديد الاسم الدقيق للمنتج. مثال: ليس «هاتف»، بل «هاتف Xiaomi، الموديل …».\
ملاحظة: لا يجوز استخدام علامات الاقتباس المزدوجة في اسم المنتج؛ احذفها أو استبدلها بعلامة اقتباس مفردة.

**حقل «المبلغ» (إلزامي)** — نحدد سعر المنتج.

**قائمة «معلومات إضافية»** — عند النقر على هذا الزر تُفتح حقول إضافية لإنشاء الرابط:

* وصف الطلب
* الخصم بالروبل
* متغير بريد Email للمشتري
* متغير رقم هاتف المشتري
* مدة صلاحية الرابط
* معرّف المنتج للاشتراك (للتحصيل التلقائي)
* المحتوى المدفوع

**خانة اختيار «إشعار عند النقر»** — يمكن تحديدها لمراقبة الانتقال إلى رابط الدفع. في هذه الحالة، عند الضغط على الزر تصل رسالة إلى محادثة العميل في SAILBOT تفيد بأنه تم الانتقال إلى الرابط.

<div data-with-frame="true"><figure><img src="/files/4f9dc5460d77d3439070080d4f13cc321f072ab2" alt="" width="431"><figcaption></figcaption></figure></div>

بناءً على هذه الرسالة يمكن إعداد منطق العمل اللاحق للروبوت.\
تدعم العديد من أنظمة الدفع صناديق النقد السحابية عبر الإنترنت، وهي مطلوبة وفقًا لمتطلبات 54-ФЗ.

اقرأ على موقع نظام الدفع المختار عن خصائص إصدار الإيصالات، حتى لا تقع في مشاكل مع مصلحة الضرائب.

هكذا تبدو صفحة الدفع التي تُفتح عند الانتقال عبر الرابط في زر «الدفع»:

<div data-with-frame="true"><figure><img src="/files/16c621bf00aca2e6caba6e0b11fd7e791ab406c9" alt="" width="375"><figcaption><p>صفحة الدفع: في الزر تم ملء الإعدادات الأساسية فقط</p></figcaption></figure></div>

### إعدادات إضافية لإنشاء رابط دفع

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

**حقل «وصف الطلب»** — ستظهر المعلومات المُدخلة في هذا الحقل في صفحة الدفع **البيانات الإضافية** الحقل.

**حقل «الخصم»** — هنا يمكن تحديد مبلغ الخصم بالروبل أو بالروبل والكوبيك. وللإشارة إلى الكوبيك استخدم النقطة كفاصل: 50.99\
في صفحة الدفع، **المبلغ المستحق** سيُعرض مع احتساب الخصم، بينما سيُشطب سعر المنتج الأساسي.

**حقل «متغير بريد Email للمشتري»** (اختياري إذا تم تحديد رقم الهاتف) — هنا يُكتب بريد Email الخاص بالمستخدم (العميل). يمكن أيضًا استخدام متغير محفوظ للبريد، مثل: `#{email}`

**حقل «متغير رقم هاتف المشتري»** (اختياري إذا تم تحديد Email) — هنا يمكن استخدام متغير يحتوي على رقم هاتف المشتري، بالصيغة: 79000000000، مثل: `#{phone}`\
يجب أن يكون هناك بريد Email و/أو رقم هاتف بالضرورة.

**حقل «مدة صلاحية الرابط»** — يمكن تحديد التاريخ `بصيغة dd.mm.yyyy hh:mm` (مثلًا، 25.01.2021 11:00) أو تعيين انتهاء الرابط عبر متغير. مثلًا: `#{link_expired}`

**حقل «معرّف المنتج للاشتراك»** — أدخل قيمة معرّف المنتج لإنشاء التحصيل التلقائي. لإنشاء الاشتراك يجب إنشاء منتج اشتراكي.\
دليل كامل: [إنشاء وإعداد اشتراكات Prodamus](https://help.prodamus.ru/payform/rekurrent-i-kluby/kak-sozdat-i-nastroit-podpiski)\
إذا تم تمرير معرّف المنتج للاشتراك، فلن يُؤخذ مبلغ الدفع بعين الاعتبار. تُؤخذ معلومات المنتج من بطاقة المنتج في حساب Prodamus.\
رقم الهاتف المحدد في الدفع سيكون مطلوبًا لإدارة الاشتراك.\
إذا تم تمرير معرّف المنتج للاشتراك، فسيتم تمرير معرّف هذا المنتج في callback عند نجاح الدفع.

**حقل «المحتوى المدفوع»** (إلزامي بشكل مشروط) — هذه البيانات مطلوبة لفَسْلَنة الدفع عبر Prodamus إذا لم يكن لديك صندوق نقدي إلكتروني خاص بك. في هذا الحقل تُذكر وصف عملية الشراء والسعر ورابط المحتوى.\
مثلًا: دورة «جدل الضفائر»، السعر 3000 روبل، رابط صفحة الدورة: `https://nbu.su/krasota/master-po-pleteniyu-kos/?yclid=13602995275739430911`

### زر مع وظيفة «الدفع»

إذا حددت مدة صلاحية الرابط، فسيحدث ما يلي:\
إذا طلب المستخدم رابط الدفع خلال فترة صلاحيته (أي قبل انتهاء وقت الرابط) وكان داخل المحادثة، فلن يكون الدفع ممكنًا، وستظهر له الرسالة التالية:

<div data-with-frame="true"><figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcA1KJHoyMF5WmLMZiJPJrQEGJs79zxoXK5U3E9k4mVus-Fg0tI-djr6QTagp5ulwposSxmJ-aq8trUQOslQyE0UeaREuM6-T5Ongn-E5tACdVmypFXBtgOJDmVvHRgOdATChhnBQ?key=OB7qKicH0kn-_i_EzQLdRA" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="warning" %}
يجب أن تكون مدة صلاحية الرابط بعد التاريخ الحالي، وإلا فلن يتمكن العميل من الدفع عبر هذا الرابط.
{% endhint %}

**2. عندما يطلب المستخدم الرابط، إذا لم يكن نشطًا حاليًا**\
في هذه الحالة لن يظهر الزر ببساطة. في متغيرات العميل `"error_payment_button"` سيظهر المتغير، وستكون قيمته كالتالي:\
\&#xNAN;**"خطأ: يجب أن تكون مدة صلاحية الرابط بعد التاريخ الحالي"**.

{% hint style="success" %}
حتى يتمكن المستخدم من إتمام الدفع بشكل صحيح، يُنصح بمعالجة مثل هذه الحالة بشكل إضافي.
{% endhint %}

أنشئ كتلة شرطية من هذا النوع:\
إذا وصلت الرسالة التالية:\
`error_payment_button == "خطأ: يجب أن تكون مدة صلاحية الرابط بعد التاريخ الحالي"`

فأظهر النص التالي:\
\&#xNAN;**"عذرًا، لم تتمكن من الدفع في الوقت المحدد، كان رابط الدفع غير صالح"**.

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

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

### متغيرات العميل التي تُنشأ تلقائيًا عند استخدام زر بوظيفة «الدفع»

عندما يحصل المستخدم على كتلة تحتوي على زر «الدفع»، تُنشأ تلقائيًا متغيرات للعميل:

**متغير عميل خدمي `__payments`** — هذا المتغير يخزن المبلغ ومعرّف الرابط الذي تم إنشاؤه، وهو ضروري لتحديد الـ webhook القادم من نظام الدفع.

{% hint style="danger" %}
متغير عميل خدمي `__payments`لا يجوز حذفه أو تغييره!
{% endhint %}

**`error_payment_button` متغير العميل** يُنشأ تلقائيًا إذا حدث خطأ عند إنشاء الزر.\
في هذا المتغير يُكتب نص الخطأ أو الرد الخطأ القادم من نظام الدفع.

{% hint style="warning" %}
تكون قيم المتغيرات محدثة عند الانتقال إلى الكتلة التالية.
{% endhint %}

## كيف نعالج النتيجة

**دفع ناجح**\
بعد نجاح الدفع، يصل إلى الروبوت **CALLBACK تلقائي** يتكوّن من أول 10 أحرف من المفتاح السري لنظام الدفع، `_success` وكلمة وومبلغ الدفع.\
يكفي نسخه لاستخدامه في إعداد المخطط.

مثال: `ovg58keefc_success 44`، حيث:

* `ovg58keefc` — أول 10 أحرف من المفتاح السري لنظام الدفع
* `_success` — نتيجة معالجة الطلب (دفع ناجح)
* `44` — مبلغ الدفع

{% hint style="info" %}
المستخدم لا يرى **callbacks**. فهي تظهر فقط في **«العملاء»** وتكون مرئية للمشغّل.
{% endhint %}

**مثال على الاستخدام:**\
**الخطوة 1.** نضيف الأزرار ذات وظيفة «الدفع» إلى كتلة «زر مع الدفع».\
**الخطوة 2.** في حقل **شرط الربط** الذي ينتقل من هذه الكتلة إلى كتلة «الدفع الناجح»، نحدد callback.\
وبالمثل، إذا حددت callback الدفع الناجح في شرط كتلة «الشرط الابتدائي»، فسيتم التنفيذ بالطريقة نفسها.

{% hint style="warning" %}
**مهم:** اختيار «تطابق تام» أو «حسب وجود الكلمات الأساسية».
{% endhint %}

❗️إذا قررت التحقق من الدفع في السهم المحدد بالشرط نفسه، ففكّر جيدًا في منطق المخطط الخاص بك. إذا غادر العميل الكتلة التي يجب أن يمر منها وفقًا للـ callback، فلن يحدث الانتقال إلى الكتلة. من الأفضل استخدام هذا النوع من التحقق فقط عندما لا يغيّر العميل موقعه في القمع.

في المخططات التي يتحرك فيها العميل بين الكتل، يكون من الأنسب استخدام **«الشرط الابتدائي»** مع تحديد callback في الكتلة.<br>

<div data-with-frame="true"><figure><img src="/files/0137303648f71fb82fd2ed277312d41e55211c9d" alt=""><figcaption><p>Callback للدفعة الناجحة في حقل شرط الكتلة.</p></figcaption></figure></div>

### دفع ناجح للمنتجات ذات الاشتراك التلقائي

بعد نجاح الدفع، يصل إلى الروبوت **CALLBACK تلقائي** يتكوّن من أول 10 أحرف من المفتاح السري لنظام الدفع، `_success` وكذلك من معرّف منتج الاشتراك.

مثال: `214009eefc_success 618117`، حيث:

* `009eefc` — أول 10 أحرف من المفتاح السري لنظام الدفع
* `_success` — نتيجة معالجة الطلب (دفع ناجح)
* `618117` — معرّف منتج الاشتراك

<div data-with-frame="true"><figure><img src="/files/cbb104314e3d53a0971346c8181b25a4e0fab55b" alt=""><figcaption><p>مثال على callback من Prodamus للمنتجات ذات الاشتراك التلقائي</p></figcaption></figure></div>

**دفع خاطئ**\
في حالة حدوث خطأ أثناء تنفيذ الدفع، يصل إلى الروبوت **CALLBACK تلقائي** يتكوّن من أول 10 أحرف من المفتاح السري لنظام الدفع، `_fail` وكلمة ومبلغ الدفع.

مثال: `ovg58keefc_fail 44`، حيث:

* `ovg58keefc` — أول 10 أحرف من المفتاح السري لنظام الدفع
* `_fail` — نتيجة معالجة الطلب (لم يتم الدفع أو حدث خطأ)
* `44` — مبلغ الدفع

{% hint style="warning" %}
هذا يعتمد على نظام الدفع. ليست كل أنظمة الدفع ترسل callback خاصًا بخطأ الدفع.
{% endhint %}

إذا كان المبلغ المحدد في إعدادات الزر يختلف عن المبلغ الذي دفعه العميل، فسيصل إلى الروبوت **CALLBACK تلقائي** يصل. ويتكوّن من أول 10 أحرف من المفتاح السري لنظام الدفع، `_different_amounts` وكلمة ومعرّف الدفع الفريد.

مثال: `ovg58keefc_different_amounts 123456`، حيث:

* `ovg58keefc` — أول 10 أحرف من المفتاح السري لنظام الدفع
* `_different_amounts` — نتيجة معالجة الطلب (مبلغ الدفع يختلف عن مبلغ الرابط)
* `123456` — معرّف الدفع الفريد

## في الحاسبة `get_prodamus_payment_url` الدالة

لإنشاء رابط الدفع **في كتلة الحاسبة `get_prodamus_payment_url` الدالة** يمكن استخدامها.\
**في حقل الحاسبة** نُسند إلى المتغير قيمة هذه الدالة: `get_prodamus_payment_url`.&#x20;

{% hint style="info" %}
يمكنك اختيار اسم المتغير بنفسك. وتُعرض في لقطات الشاشة أمثلة على تسمية المتغيرات.
{% endhint %}

يُكتب في هذا المتغير رابط الدفع. ويمكن عرض المتغير كرابط في الرسالة أو وضعه في زر يحتوي على نص «الدفع».

**مثال على رابط الدفع:** [https://payform.kz/7p3JR8/](https://payform.ru/7p3JR8/)

{% tabs %}
{% tab title="الحاسبة" %}
مثال 1:

<figure><img src="/files/f5273515cd0eb1cbc43a9867a42dce6b2b5c979d" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="وصف الإعدادات" %}
&#x20;`your_variable =`` `**`get_prodamus_payment_url(amount, product_name, expired, customer_phone, customer_email, discount, description, extra_params, products_for_receipt)`**

معلمات الدالة:

<table><thead><tr><th width="253">المعلمة</th><th>قيمة المعلمة</th></tr></thead><tbody><tr><td><strong><code>amount</code></strong></td><td><strong>مبلغ الدفع</strong> — يمكن أن يُمرَّر كعدد صحيح أو كعدد بفاصل نقطي. مثلًا: <code>25</code> أو <code>52.5</code>. (معلمة إلزامية)</td></tr><tr><td><strong><code>product_name</code></strong></td><td><strong>اسم المنتج</strong> (معلمة إلزامية)</td></tr><tr><td><strong><code>expired</code></strong></td><td><p><strong>مدة صلاحية رابط الدفع</strong> — <code>بصيغة dd.mm.yyyy</code> (مثلًا، 25.01.2021).<br>كما يمكن، <strong>الحاسبة</strong> في الحقل<br><code>expired = current_date + 2</code> (سيكون الرابط صالحًا لمدة يومين حتى الساعة 00:00).</p><p>يمكن أيضًا تحديد وقت دقيق: <code>بصيغة dd.mm.yyyy hh:mm</code> (مثلًا، 25.01.2021 12:23).</p><p>يمكن أيضًا استخدام المتغيرات القياسية، مثل تعيين صلاحية الرابط لمدة 30 دقيقة:</p><pre class="language-python"><code class="lang-python">time = current_time + 30
expired = "#{current_date} #{time}"
</code></pre><p>إذا أردت تخطي هذه المعلمة، فيمكنك بدلًا منها تمرير علامة اقتباس مفردة أو مزدوجة أو <code>None</code> قيمة.</p></td></tr><tr><td><strong><code>customer_phone</code></strong></td><td><strong>رقم هاتف المشتري</strong> — اختياري إذا تم تمرير <code>customer_email</code> المعلمة.<br>إذا أردت تخطي هذه المعلمة، فيمكنك بدلًا منها تمرير علامة اقتباس مفردة أو مزدوجة.</td></tr><tr><td><strong><code>customer_email</code></strong></td><td><strong>بريد Email الخاص بالمشتري</strong> — اختياري إذا تم تمرير <code>customer_phone</code> المعلمة.<br>إذا أردت تخطي هذه المعلمة، فيمكنك بدلًا منها تمرير علامة اقتباس مفردة أو مزدوجة.</td></tr><tr><td><strong><code>discount</code></strong></td><td><strong>مقدار الخصم</strong> — يمكن تمرير المعلمة كعدد صحيح أو كعدد بفاصل نقطي: <code>25</code> أو <code>63.5</code>.<br>إذا أردت تخطي هذه المعلمة، فيمكنك بدلًا منها تمرير علامة اقتباس مفردة أو مزدوجة.</td></tr><tr><td><strong><code>description</code></strong></td><td><strong>وصف المنتج</strong> (إذا لم يُذكر، فسيُملأ تلقائيًا بـ <code>'دفع الفاتورة order_id'</code> ).<br>إذا أردت تخطي هذه المعلمة، فيمكنك بدلًا منها تمرير علامة اقتباس مفردة أو مزدوجة.</td></tr><tr><td><strong><code>extra_params</code></strong></td><td><p><strong>معلمات إضافية</strong>، وهي المعلمات غير الموجودة في هذه الدالة.<br>يمكن الاطلاع على المعلمات الإضافية المتاحة في وثائق العمل مع API لنظام الدفع: <a href="https://help.prodamus.ru/payform/integracii/rest-api/instrukcii-dlya-samostoyatelnaya-integracii-servisov">Prodamus REST API</a></p><p>مثال:</p><pre class="language-python"><code class="lang-python">extra_params = {"payments_limit": "3", "payment_method": "vsegdada_installment_0_0_6"}
</code></pre><p>إذا أردت تخطي هذه المعلمة، فبدلًا منها علامة اقتباس مفردة/مزدوجة أو <code>None</code> قيمة.</p></td></tr><tr><td><strong><code>products_for_receipt</code></strong> </td><td><p><strong>سلسلة من 50 إلى 4000 حرف</strong> بصيغة <code>"وصف الطلب - السعر - رابط المورد الذي يتم شراؤه"</code>.<br>مثلًا:<br><code>“دورة ‘صيد البلم’, السعر 4999 روبل، رابط صفحة الدورة: https://www.lovilescha.ru/courses/poimai_kilogram/"</code></p><p>هذه المعلمة إلزامية إذا لم يكن لديك صندوق نقدي إلكتروني خاص بك، وهي مطلوبة لفَسْلَنة الدفع عبر Prodamus.</p></td></tr></tbody></table>
{% endtab %}

{% tab title="مثال" %}
extra\_params = {"payments\_limit": "3"}&#x20;

products\_for\_receipt = "دورة ‘صيد البلم’, السعر 4999 تينغي، رابط صفحة الدورة: <https://www.lovilescha.ru/courses/poimai\\_kilogram/"&#x20>;

link\_prodamus\_url = get\_prodamus\_payment\_url( 4999, 'دورة ‘صيد البلم’', '27.03.2023 17:00', '79167777771', '<mail@mail.com>', 20, 'أفضل دورة في السوق', extra\_params, products\_for\_receipt

في هذا المثال:

* `extra_params` — معلمات إضافية (مثل حدّ الدفع).
* `products_for_receipt` — معلومات المنتج التي ستظهر في الإيصال.
* `get_prodamus_payment_url` يتم إنشاء رابط الدفع عبر الدالة.
  {% endtab %}
  {% endtabs %}

{% hint style="warning" %}
إذا كانت هناك عدة دوال للحصول على الرابط في الكتلة وتم إرسال خطأ، فستُكتب قيمة الخطأ في **`error_payment_func`** المتغير.

يُكتب الخطأ في الحاسبة وفقًا لآخر دالة.
{% endhint %}

## `payment_sum` إنشاء الرابط عبر المتغير والمعلمات الإضافية

{% hint style="info" %}
**انتبه:** `payment_sum` تُسند القيمة إلى المتغير من آخر متغير، أي بعد المتغيرات غير الإلزامية: `payment_description`, `product_name` وغيرها.
{% endhint %}

لإنشاء رابط الدفع **في حقل الحاسبة `payment_sum` يكفي تعيين قيمة المتغير**.\
بعد ذلك، تلقائيًا **`prodamus_pay_url`** سيظهر المتغير.

**مثال على رابط الدفع:** `https://payform.ru/7p3JR8/`

يمكن عرض هذا المتغير كرابط في الرسالة أو وضعه في زر يحتوي على نص «الدفع».

`payment_sum` قبل الإعلان عن المتغير، يمكن تحديد المتغيرات غير الإلزامية التالية:

| معلمات الدالة              | وصف المعلمة                                                                                                                                                                                                                                                                                                                                                          |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **product\_name**          | **اسم المنتج** (إذا لم يُذكر، فسيُملأ تلقائيًا بـ "دفع الفاتورة order\_id'، ويوضح لقطة الشاشة أدناه أين يظهر).                                                                                                                                                                                                                                                       |
| **payment\_description**   | **وصف المنتج** (إذا لم يُذكر، فسيُملأ تلقائيًا بـ `'دفع الفاتورة order_id'` سيُملأ) – وتوضح لقطة الشاشة أدناه أين يظهر.                                                                                                                                                                                                                                              |
| **discount\_value**        | **مقدار الخصم** (مثلًا، `discount_value = 25` أو `discount_value = 50.25`)                                                                                                                                                                                                                                                                                           |
| **customer\_phone**        | **رقم هاتف المشتري** — اختياري إذا تم تمرير معلمة أخرى.                                                                                                                                                                                                                                                                                                              |
| **customer\_email**        | بريد Email الخاص بالمشتري                                                                                                                                                                                                                                                                                                                                            |
| **link\_expired**          | <p><strong>مدة صلاحية رابط الدفع</strong> — <code>بصيغة dd.mm.yyyy</code> (مثلًا، 25.01.2021).<br>كما يمكن، <strong>الحاسبة</strong> في الحقل<br><code>link\_expired = current\_date + 2</code> (سيكون الرابط صالحًا لمدة يومين حتى الساعة 00:00).</p>                                                                                                               |
| **link\_expired**          | <p>كما يمكن تحديد وقت دقيق، الصيغة: <code>بصيغة dd.mm.yyyy hh:mm</code> (مثلًا، <code>25.01.2021 12:23</code>).<br>يمكن أيضًا استخدام المتغيرات القياسية، مثل تعيين صلاحية الرابط لمدة 30 دقيقة:<br>time = current\_time + 30 link\_expired = "#{current\_date} #{time}"</p>                                                                                         |
| **currency**               | <p><strong>عملة الدفع</strong>، افتراضيًا <code>"rub"</code>.<br>القائمة الكاملة للوسائط:</p><ul><li><code>rub</code></li><li><code>usd</code></li><li><code>eur</code></li><li><code>kzt</code></li></ul><p>يجب تمرير هذه المعلمة بأحرف صغيرة.</p>                                                                                                                  |
| **payment\_title**         | <p><strong>عنوان الدفع</strong> (حتى 127 حرفًا). إذا لم يُذكر، فسيُملأ تلقائيًا بالنص التالي:<br>“<strong>دفع الفاتورة payment\_id</strong>” (<code>payment\_id</code> — معرّف الطلب في MaviBot).</p>                                                                                                                                                                |
| **payment\_description**   | **وصف مختصر للدفع** (حتى 127 حرفًا)                                                                                                                                                                                                                                                                                                                                  |
| **locale**                 | <p><strong>لغة صفحة الدفع</strong> — <code>en-US</code>, <code>fr-XC</code> وغيرها من الصيغ. القيمة الافتراضية هي <code>ru-RU</code>.<br>يمكن الاطلاع على القائمة الكاملة عبر هذا الرابط</p>                                                                                                                                                                         |
| **products\_for\_receipt** | <p><strong>سلسلة من 50 إلى 4000 حرف</strong> بصيغة <code>"وصف الطلب - السعر - رابط المورد الذي يتم شراؤه"</code>.<br>مثلًا:<br><code>“دورة ‘صيد البلم’, السعر 4999 تينغي، رابط صفحة الدورة: <https://www.lovilescha.ru/courses/poimai_kilogram/>"</code></p><p>هذه معلمة إلزامية مطلوبة لفَسْلَنة الدفع عبر Prodamus إذا لم يكن لديك صندوق نقدي إلكتروني خاص بك.</p> |
| **payment\_sum**           | (إلزامي) مبلغ الدفع                                                                                                                                                                                                                                                                                                                                                  |

<div data-with-frame="true"><img src="https://lh3.googleusercontent.com/3FazAmQkph5i0_iKy4G_HNerzVQP9Bg3_PRB_5rHZQ6vAZB_1Hxv1imi3gJCl7pU_GY7eAiiwZExJA-i4Ps5PgSJt7OXKbSL-GT27gWca_u7rFM8YEsNJ7Z-VVXTAR-jSw_-p2I0" alt="" width="563"></div>

{% hint style="success" %}
`discount_value`, `customer_phone`, `customer_email` و `link_expired` المتغيرات ذات صلة أيضًا بالاشتراكات.
{% endhint %}

<div data-with-frame="true"><figure><img src="/files/48c9356f05b9d6906e114bf03db7e6a0d2d16e38" alt="" width="524"><figcaption></figcaption></figure></div>

**مثال على التنفيذ.**\
في الكتلة الأولى نحدد مبلغ الدفع:

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

في الخطوة التالية، في المكان المطلوب **`prodamus_pay_url`** نعرض الرابط:

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

**`prodamus_available_payment_methods`** المتغير **`payment_sum`** يُعرَّف قبل الإعلان عن.\
القيم الممكنة:

<table><thead><tr><th width="323"></th><th></th></tr></thead><tbody><tr><td><strong>AC</strong></td><td>الدفع باستخدام بطاقة صادرة في روسيا</td></tr><tr><td><strong>ACkz</strong> </td><td>الدفع باستخدام بطاقة كازاخستانية</td></tr><tr><td><strong>ACf</strong></td><td>الدفع باستخدام بطاقات دول رابطة الدول المستقلة، باستثناء روسيا</td></tr><tr><td><strong>ACEURNMBX</strong></td><td>الدفع باستخدام بطاقات EUR لجميع البلدان باستثناء روسيا وروسيا البيضاء</td></tr><tr><td><strong>SBP</strong></td><td>دفع سريع دون إدخال بيانات البطاقة. للبطاقات الروسية</td></tr><tr><td><strong>QW</strong> </td><td>محفظة Qiwi </td></tr><tr><td><strong>PC</strong></td><td>Юmoney</td></tr><tr><td><strong>GP</strong></td><td>طرفية دفع</td></tr><tr><td><strong>sbol</strong></td><td>سبيربنك أونلاين </td></tr><tr><td><strong>invoice</strong> </td><td>الدفع وفقًا للفاتورة</td></tr><tr><td><strong>installment</strong> </td><td>التقسيط عبر Prodamus</td></tr><tr><td><strong>installment_5_21</strong></td><td>تقسيط لمدة 3 أشهر عبر Prodamus</td></tr><tr><td><strong>installment_6_28</strong></td><td>تقسيط لمدة 6 أشهر عبر Prodamus</td></tr><tr><td><strong>installment_10_28</strong></td><td>تقسيط لمدة 10 أشهر عبر Prodamus</td></tr><tr><td><strong>installment_12_28</strong> </td><td>تقسيط لمدة 12 شهرًا عبر Prodamus</td></tr><tr><td><strong>installment_0_0_3</strong></td><td>التقسيط لمدة 3 أشهر عبر Tinkoff</td></tr><tr><td><strong>installment_0_0_4</strong> </td><td>تقسيط لمدة 4 أشهر عبر Tinkoff</td></tr><tr><td><strong>installment_0_0_6</strong></td><td>تقسيط لمدة 6 أشهر عبر Tinkoff</td></tr><tr><td><strong>installment_0_0_10</strong></td><td>تقسيط لمدة 10 أشهر عبر Tinkoff</td></tr><tr><td><strong>installment_0_0_12</strong></td><td>تقسيط لمدة 12 شهرًا عبر Tinkoff</td></tr><tr><td><strong>installment_0_0_24</strong> </td><td>تقسيط لمدة 24 شهرًا عبر Tinkoff</td></tr><tr><td><strong>installment_0_0_36</strong></td><td>تقسيط لمدة 36 شهرًا عبر Tinkoff</td></tr><tr><td><strong>credit</strong> </td><td>قرض عبر Tinkoff</td></tr><tr><td><strong>vsegdada_installment_0_0_4</strong></td><td><strong>تقسيط لمدة 4 أشهر عبر «ВсегдаДа»</strong> (لا يعمل مع available_payment_methods)</td></tr><tr><td>vs<strong>egdada_installment_0_0_6</strong></td><td><strong>تقسيط لمدة 6 أشهر عبر «ВсегдаДа»</strong> </td></tr><tr><td><strong>vsegdada_installment_0_0_10</strong></td><td><strong>تقسيط لمدة 10 أشهر عبر «ВсегдаДа»</strong> </td></tr><tr><td><strong>vsegdada_installment_0_0_12</strong></td><td><strong>تقسيط لمدة 12 شهرًا عبر «ВсегдаДа»</strong> </td></tr><tr><td>vs<strong>egdada_installment_0_0_24</strong></td><td><strong>تقسيط لمدة 24 شهرًا عبر «ВсегдаДа»</strong> </td></tr><tr><td><strong>vsegdada_installment_0_0_36</strong> </td><td><strong>تقسيط لمدة 36 شهرًا عبر «ВсегдаДа»</strong> </td></tr><tr><td><strong>sbrf_installment_0_0_6</strong></td><td>تقسيط لمدة 6 أشهر عبر سبيربنك</td></tr><tr><td><strong>sbrf_installment_0_0_10</strong></td><td>تقسيط لمدة 10 أشهر عبر سبيربنك</td></tr><tr><td><strong>sbrf_installment_0_0_12</strong></td><td>تقسيط لمدة 12 شهرًا عبر سبيربنك</td></tr><tr><td><strong>sbrf_installment_0_0_24</strong></td><td>تقسيط لمدة 24 شهرًا عبر سبيربنك</td></tr><tr><td><strong>sbrf_installment_0_0_36</strong> </td><td>تقسيط لمدة 36 شهرًا عبر سبيربنك</td></tr><tr><td><strong>otp_installment_0_0_6</strong></td><td>تقسيط لمدة 6 أشهر عبر «بنك OTP»</td></tr><tr><td><strong>otp_installment_0_0_10</strong></td><td>تقسيط لمدة 10 أشهر عبر «بنك OTP»</td></tr><tr><td><strong>otp_installment_0_0_12</strong> </td><td>تقسيط لمدة 12 شهرًا عبر «بنك OTP»</td></tr><tr><td><strong>otp_installment_0_0_24</strong></td><td>تقسيط لمدة 24 شهرًا عبر «بنك OTP»</td></tr><tr><td><strong>otp_installment_0_0_36</strong></td><td>تقسيط لمدة 36 شهرًا عبر «بنك OTP»</td></tr><tr><td><strong>mts_installment_0_0_6</strong></td><td>تقسيط لمدة 6 أشهر عبر «بنك MTS»</td></tr><tr><td><strong>mts_installment_0_0_10</strong> </td><td>تقسيط لمدة 10 أشهر عبر «بنك MTS»</td></tr><tr><td><strong>mts_installment_0_0_12</strong> </td><td>تقسيط لمدة 12 شهرًا عبر «بنك MTS»</td></tr><tr><td><strong>mts_installment_0_0_24</strong></td><td>التقسيط لمدة 24 شهرًا عبر «بنك MTS»</td></tr><tr><td> <strong>mts_installment_0_0_36</strong> </td><td>التقسيط لمدة 36 شهرًا عبر «بنك MTS»</td></tr><tr><td><strong>monetaworld</strong></td><td>بطاقات البنوك العالمية، باستثناء روسيا</td></tr><tr><td><strong>sbrf_bnpl</strong></td><td>التقسيط عبر سبير</td></tr></tbody></table>

قيمة متعددة **بواسطة الخط العمودي** يُسمح بالتقسيم.\
مثال:

```python
prodamus_available_payment_methods = "AC|PC|QW"
```

`prodamus_currency` — هذا معلمة إضافية أخرى تتيح عرض المبلغ بعملة معينة.

العملات الممكنة:

* `kzt` — للتيينغي
* `eur` — لليورو
* `usd` — للدولار

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

**Callback `payment_callback` عند الاستلام** `currency` و `currency_sum` يجب الانتباه إلى المعلمات، حيث يتم فيها تحديد العملة والمبلغ.

{% hint style="warning" %}
إذا لم يتم التحديد، فسينتقل إلى صفحة لا تحتوي على طرق دفع.\
يمكن إضافة طرق الدفع عبر الدعم. ويمكن الاطلاع على الطرق المضافة من إعدادات الصفحة أو عبر رابط الدفع.
{% endhint %}

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

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

### كيف نعالج النتيجة

**دفع ناجح**

**مهم:** بعد الدفع الناجح أو الفاشل، تصل إلى البوت ردود callback، وبمساعدتها يمكنك تحديد ما إذا تم الدفع بنجاح.

تبدو ردود callback في النظام مثل الرسائل الواردة من المستخدم، لكن المستخدم لا يمكنه إرسالها. تكون على شكل تركيبة من المفتاح السري والحالة. مثال:

```
453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_success
```

أو

```
453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_fail
```

بعد الدفع الناجح **prodamus\_payment\_completed** المتغير `True` تلقائيًا.

**ملاحظة:** تصل ردود callback متأخرة قليلًا، لذا من الأفضل بعد إرسال الرابط إلى المستخدم إرسال رسالة:

> “بعد إجراء الدفع، انتظر حتى يكتمل الدفع بنجاح.”

***

**بنية الـ callback**

بالنسبة للروابط المنشأة عبر زر الدفع أو عبر دالة في الحاسبة، تصل إلى البوت callback تلقائيًا بعد الدفع. ويتكون من:

```
<secret_key>_success <payment_amount>
```

مثال:

```
ovg58keefc_success
```

* `ovg58keefc` — المفتاح السري الكامل لنظام الدفع
* `_success` — نتيجة معالجة الطلب (دفع ناجح)

***

**الاستخدام العملي**

يمكن معالجة الدفع الناجح عبر كتلة شرطية وعرض الرسالة المناسبة للمستخدم.

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

{% hint style="danger" %}
يجب أن يكون نوع المقارنة "Full match" / "تطابق كامل"

لإجراء دفعة جديدة، يجب بالضرورة **payment\_sum** تصفير المتغير وحذف الرابط الذي تم إنشاؤه سابقًا. بعد ذلك فقط **payment\_sum** يمكن تعيين قيمة جديدة للمتغير والحصول على الرابط المحدّث.
{% endhint %}

#### إلغاء تفعيل/إعادة تفعيل الاشتراك

كما توجد في نظام Prodamus إشعارات عن تفعيل الاشتراك أو إيقافه:

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

**«تم إيقاف الاشتراك من قبل المستخدم»** — إذا تم إيقاف الاشتراك يدويًا (على سبيل المثال، عند إلغاء الاشتراك).\
قد تصل هذه الرسالة قبل انتهاء الفترة المدفوعة الحالية. الإجراء يعتمد على قرارك: تجاهلها، أو أخذها بعين الاعتبار، أو محاولة استعادة المستخدم.

**«تم إعادة تفعيل الاشتراك من قبل المستخدم»** — تم استعادة الاشتراك.\
قد تصل هذه الرسالة إذا استعاد المستخدم الاشتراك قبل انتهاء الفترة المدفوعة الحالية. الإجراء يعتمد على قرارك: تجاهلها أو إزالتها من قائمة المراقبة.

**«إلغاء تفعيل الاشتراك»** — إذا تم إيقاف الاشتراك بعد عدة محاولات دفع فاشلة.

### حفظ القيم من callback

بعد وصول إشعار الدفع الناجح، **payment\_callback** يتم كتابة callback من Prodamus في المتغير، والذي يحتوي على جميع بيانات الدفع. يمكن حفظ هذه البيانات واستخدامها بالشكل الذي تحتاجه.

مثال على callback:

```json
{
  "date": "2021-03-30T11:44:43+03:00",
  "order_id": "757679",
  "order_num": "",
  "domain": "demo.payform.ru",
  "sum": "14.50",
  "customer_phone": "+77777777777",
  "customer_extra": "Товар",
  "payment_type": "بطاقة بلاستيكية Visa, MasterCard, МИР",
  "commission": "3.5",
  "commission_sum": "0.51",
  "attempt": "1",
  "discount_value": "10.5",
  "products[0][name]": "الوصول إلى المواد التعليمية",
  "products[0][price]": "14.50",
  "products[0][quantity]": "1",
  "products[0][sum]": "14.50",
  "payment_status": "success",
  "payment_status_description": "دفع ناجح",
  "payment_init": "manual"
}
```

عند إنشاء الرابط **product\_name** و **payment\_description** يمكن تحديد المتغيرات. عند وصول الـ callback يمكن الحصول عليها هكذا:

```python
product = get(payment_callback,'products[0][name]')
description = get(payment_callback,'customer_extra')
```

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

{% hint style="info" %}
انتبه: **payment\_sum** يُعطى المتغير **من المتغيرات** غير الإلزامية، **payment\_description**, **product\_name**.
{% endhint %}

بعدها:

```python
summa = get(payment_callback, 'sum')
```

### **ردود callback المتاحة**

إضافة إلى ردود callback الأساسية للدفع الناجح، تظهر في الدردشة الرسائل التالية التي لا يراها المستخدم:

<details>

<summary>callbacks</summary>

* ألغى المشترك الاشتراك ([المزيد هنا](#deaktivaciya-reaktivaciya-podpiski))
* أعاد المشترك تفعيل الاشتراك ([المزيد هنا](#deaktivaciya-reaktivaciya-podpiski))
* تم إنهاء الاشتراك
* دفع غير ناجح - مع ملاحظة توضيحية (في لقطة الشاشة أعلاه)
* إشعار بخصم قادم - تاريخ ووقت الخصم القادم
* طلب تقسيط بحالة

</details>

<details>

<summary><strong>أمثلة على callback في الحوار مع العميل</strong></summary>

* **ألغى المشترك الاشتراك**
* **أعاد المشترك تفعيل الاشتراك**
* **تم إنهاء الاشتراك**
* **دفع غير ناجح - لا توجد أموال كافية.**
* **دفع غير ناجح - انتهت صلاحية البطاقة.**
* **دفع غير ناجح - تم تجاوز حد البطاقة.**
* **دفع غير ناجح - البطاقة مفقودة**
* **دفع غير ناجح - خطأ في النظام**&#x20;
* **دفع غير ناجح - تم رفض العملية. يرجى التواصل مع البنك المصدر للبطاقة.**&#x20;
* **دفع غير ناجح - رفض تنفيذ العملية من قبل البنك المُصدر.**
* **دفع غير ناجح - رفض تنفيذ العملية من قبل البنك.**&#x20;
* **إشعار بخصم قادم - dd.mm.yyyy hh:mm**
* **تمت الموافقة على طلب التقسيط**
* **تم إلغاء طلب التقسيط**
* **تم رفض طلب التقسيط**

</details>

يمكنك، حسب رغبتك، إعداد إرسال أي رسالة إلى المستخدم. على سبيل المثال، إرسال إشعار عند فشل الدفع التلقائي.

يمكن إعداد كتل الرد على الإشعارات وفقًا لسبب محدد لفشل الدفع كما يلي:

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

لإرسال إشعار لكل المدفوعات الفاشلة بغض النظر عن السبب، يمكن إعدادها كما يلي:

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

في جميع callbacks، إذا كان النص يحتوي على **«الدفع فشل»** فسيتم إرسال رسالة إلى المستخدم بالنص الذي تحدده.

## **كيفية إجراء الدفع بالاشتراك**

### **كيفية إنشاء اشتراك**

لإنشاء اشتراك، يجب أولًا **إنشاء منتج اشتراك** .\
التعليمات الكاملة: [كيفية إنشاء وإعداد اشتراك](https://help.prodamus.ru/payform/rekurrent-i-kluby/kak-sozdat-i-nastroit-podpiski)

ثم نقوم بنسخ **معرّف** منتج الاشتراك. على سبيل المثال، يظهر أدناه من أين يمكن الحصول عليه:

<div data-with-frame="true"><img src="https://lh5.googleusercontent.com/YuaI5KhrMPHNozN0JNOE9kD_Jcw7a8LE6GigaM0vrVtmsDBvlHvK8GCX5IcNvaJuSQE8iWWYl0KCgR5JpYpcp9Sa2531RGDYWVLjhE72ipScrpodUWeb4KDrECRbBhz4kO-3lMvs" alt="إنشاء منتج اشتراك"></div>

لإنشاء رابط دفع الاشتراك، **prodamus\_subscription** للمتغير **معرّف** يجب تعيين معرّف منتج الاشتراك. بعد ذلك سيتم تلقائيًا **prodamus\_pay\_url** سيظهر المتغير.

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

الترجمة إلى اللغة العربية (أسلوب رسمي):

`prodamus_pay_url` يمكن عرض المتغير كرابط على الشاشة أو وضعه على زر يحمل نص «ادفع». مثال على الرابط: <https://payform.kz/7p3JR8/>

تتم معالجة النتيجة كما في الدفع لمرة واحدة (كما قرأت أعلاه).

بعد الاشتراك الناجح، يتم إرفاق **customer\_phone** المتغير الذي تم إدخاله أثناء الدفع. رقم الهاتف ضروري لإدارة الاشتراك.

إذا لم يتم توفير **customer\_email** فإنه لإدارة الاشتراك، **customer\_phone** إلزامي.

### **`get_prodamus_subscription_url` كيفية إنشاء رابط للاشتراك باستخدام الدالة**

لننظر إلى طريقة أخرى لإنشاء رابط دفع لمنتج بالاشتراك.

1. يتم إنشاء منتج اشتراك من لوحة Prodamus.\
   يمكن الاطلاع على التعليمات الكاملة عبر الرابط:\
   [كيفية إنشاء وإعداد اشتراك](https://help.prodamus.ru/payform/rekurrent-i-kluby/kak-sozdat-i-nastroit-podpiski)
2. ثم نقوم بنسخ **معرّف** منتج الاشتراك. على سبيل المثال، يظهر أدناه من أين يمكن الحصول عليه:

<div data-with-frame="true"><img src="https://lh5.googleusercontent.com/YuaI5KhrMPHNozN0JNOE9kD_Jcw7a8LE6GigaM0vrVtmsDBvlHvK8GCX5IcNvaJuSQE8iWWYl0KCgR5JpYpcp9Sa2531RGDYWVLjhE72ipScrpodUWeb4KDrECRbBhz4kO-3lMvs" alt="إنشاء منتج اشتراك"></div>

للحصول على رابط الدفع لمنتج بالاشتراك في الحاسبة نحدد الدالة&#x20;

`get_prodamus_subscription_url`(subscription\_id, product\_name, expired, customer\_phone, customer\_email, discount, description, extra\_params, products\_for\_receipt)

{% tabs %}
{% tab title="الحاسبة" %}
**مثال 1:** رابط الدفع لمنتج بالاشتراك

<figure><img src="/files/3f8e83303a8fb76516a2fcfce2d5675fd7694745" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="وصف المعلمة" %}
`link = get_prodamus_subscription_url`(subscription\_id, product\_name, expired, customer\_phone, customer\_email, discount, description, extra\_params, products\_for\_receipt)

معلمات الدالة:

<table><thead><tr><th width="253">المعلمة</th><th>قيمة المعلمة</th></tr></thead><tbody><tr><td><strong><code>subscription_id</code></strong></td><td><strong>معرّف منتج الاشتراك</strong> — يمكن نسخه من لوحة Prodamus (معلمة إلزامية).</td></tr><tr><td><strong><code>product_name</code></strong></td><td><strong>اسم المنتج</strong> (معلمة إلزامية).</td></tr><tr><td><strong><code>expired</code></strong></td><td><p><strong>مدة صلاحية رابط الدفع</strong> — بصيغة dd.mm.yyyy (مثل: 25.01.2021).</p><p>يمكن أيضًا إظهاره في حقل «الحاسبة»:</p><pre class="language-python"><code class="lang-python">expired = current_date + 2  # سيكون الرابط صالحًا لمدة يومين حتى الساعة 00:00
</code></pre><p><code>expired</code> يمكنك أيضًا تحديد المعلمة بتاريخ ووقت محددين، بالصيغة: dd.mm.yyyy hh:mm (مثال: 25.01.2021 12:23).</p><p>يمكنك أيضًا استخدام المتغيرات القياسية، مثل ضبط صلاحية الرابط لمدة 30 دقيقة:</p><pre class="language-python"><code class="lang-python">time = current_time + 30
expired = "#{current_date} #{time}"
</code></pre><p>إذا أردت تجاوز هذه المعلمة، فضع بدلًا منها علامة اقتباس مفردة أو مزدوجة، أو <code>None</code> قيمة.</p></td></tr><tr><td><strong><code>customer_phone</code></strong></td><td><p><strong>رقم هاتف الشخص الذي يدفع</strong> — اختياري إذا تم تمرير <code>customer_email</code> إذا تم توفير المعلمة.</p><p>إذا أردت تجاوز هذه المعلمة، فضع بدلًا منها علامة اقتباس مفردة أو مزدوجة.</p></td></tr><tr><td><strong><code>customer_email</code></strong></td><td><p><strong>البريد الإلكتروني للشخص الذي يدفع</strong> — اختياري إذا تم تمرير <code>customer_phone</code> إذا تم توفير المعلمة.</p><p>إذا أردت تجاوز هذه المعلمة، فضع بدلًا منها علامة اقتباس مفردة أو مزدوجة.</p></td></tr><tr><td><strong><code>discount</code></strong></td><td><p><strong>مقدار الخصم</strong> — يمكن تمرير المعلمة كعدد صحيح أو عشري: 25 أو 63.5.</p><p>إذا أردت تجاوز هذه المعلمة، فضع بدلًا منها علامة اقتباس مفردة أو مزدوجة.</p></td></tr><tr><td><strong><code>description</code></strong></td><td><p><strong>وصف المنتج</strong> — إذا لم يتم تحديده، فسيتم افتراضيًا <code>'دفع الفاتورة order_id'</code> تعبئته.</p><p>إذا أردت تجاوز هذه المعلمة، فضع بدلًا منها علامة اقتباس مفردة أو مزدوجة.</p></td></tr><tr><td><strong><code>extra_params</code></strong></td><td><p><strong>معلمات إضافية</strong>، وهي معلمات غير موجودة في هذه الدالة.<br>يمكن الاطلاع على المعلمات الإضافية الممكنة في توثيق API الخاص بنظام الدفع:<br><a href="https://help.prodamus.ru/payform/integracii/rest-api/instrukcii-dlya-samostoyatelnaya-integracii-servisov">دليل Prodamus REST API</a></p><p><strong>مثال:</strong></p><pre class="language-python"><code class="lang-python">extra_params = {"payments_limit": "3"}
</code></pre><p>إذا أردت تجاوز هذه المعلمة، فضع بدلًا منها علامة اقتباس مفردة/مزدوجة أو <code>None</code> قيمة.</p></td></tr><tr><td><strong><code>products_for_receipt</code></strong> </td><td><p><strong>سلسلة من 50 إلى 4000 حرف</strong>، الصيغة: <code>"وصف الطلب - السعر - رابط المورد الذي يتم شراؤه"</code></p><p>مثال:<br>الدورة «دورة صيد البُلطي»، السعر 4999 تنغي، رابط صفحة الدورة: <a href="https://www.lovilescha.ru/courses/poimai_kilogram/">https://www.lovilescha.ru/courses/poimai_kilogram/</a>.</p><p>هذه المعلمة <strong>إلزامية</strong>، وهي مطلوبة لفискلة المدفوعات عبر Prodamus إذا لم يكن لديك صندوق نقدي إلكتروني خاص بك.</p></td></tr></tbody></table>
{% endtab %}

{% tab title="مثال على كود للنسخ" %}
extra\_params = {"payments\_limit": "3"}&#x20;

products\_for\_receipt = "الدورة «دورة صيد البُلطي»، سعر الاشتراك الشهري 2000 تنغي، رابط صفحة الدورة: <https://www.lovilescha.ru/courses/poimai\\_kilogram/"&#x20>;

link\_prodamus\_sub = get\_prodamus\_subscription\_url(618988, 'الدورة «دورة صيد البُلطي»', '27.03.2023 17:02', '79167777771', '<mail@mail.com>', 20, 'أفضل دورة في السوق', extra\_params, products\_for\_receipt)
{% endtab %}
{% endtabs %}

{% hint style="warning" %}
إذا حدث خطأ في الكتلة عند الحصول على الرابط عبر عدة دوال، **قيمة الخطأ `error_payment_func` في المتغير** تُسجَّل.

يُكتب الخطأ في الحاسبة وفقًا لآخر دالة.
{% endhint %}

### **كيفية إدارة حالة الاشتراك**

هذه الطريقة مخصصة للاشتراكات الفعلية فقط، ولا يوجد ربط بطاقة في وضع العرض التجريبي.

لإدارة الاشتراك، يجب بالضرورة **`customer_phone`** أو **`customer_email`** أن تُمرَّر إحدى معلمات

لإخراج المستخدم من الاشتراك، يجب إنشاء كتلة واستدعاء الدالة التالية:\
[delete\_subscription\_prodamus](https://store.salebot.pro/function/delete_subscription_prodamus)

**مثال على المعلمات:**

```json
{
  "customer_phone": "#{customer_phone}",
  "id_subscription":"#{prodamus_subscription}",
  "url":"https://demo.payform.ru/",
  "secret_key":"453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66",
  "switcher":"0",
  "profile_id":"12345"
}
```

* `url` — رابط نموذج الدفع، مأخوذ من إعدادات المُنشئ
* `secret_key` — المفتاح السري المأخوذ من الإعدادات
* `id_subscription` — معرّف منتج الاشتراك
* `customer_phone` — هاتف صاحب الاشتراك
* `switcher` — إدارة الاشتراك: `0` — إيقاف الاشتراك، `1` — إعادة تفعيل الاشتراك
* `profile_id` — معرّف الملف الشخصي في نظام Prodamus

**ملاحظة:**\
إذا جاء معرّف الملف الشخصي، فسيتم حفظه في **`profile_id`** المتغير.\
`profile_id` إلى الدالة **`customer_phone`** أو **`customer_email`** يمكن تمريره بدلًا من ذلك وإيقاف الاشتراك.

**مثال:** إعداد كتل الاشتراك

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

لاحظ أن الدالة **status** تُرجع، ويمكنك حفظها ومعالجتها كما تريد. عند إيقاف الاشتراك أو إعادة تفعيله بنجاح، **status = ok** تكون.

### دالة لإدارة الاشتراك

prodamus\_subscription\_switch\_status(subscription\_id, switcher, customer\_phone, customer\_email, profile\_id) المعلمات:

subscription\_id – معرّف منتج الاشتراك

switcher – إدارة الاشتراك: 0 – إيقاف الاشتراك، 1 – إعادة تفعيل الاشتراك

customer\_phone – هاتف صاحب الاشتراك؛ غير إلزامي إذا تم تحديد customer\_email

customer\_email – البريد الإلكتروني لصاحب الاشتراك؛ غير إلزامي إذا تم تحديد customer\_phone

profile\_id – معرّف الملف الشخصي في نظام Prodamus

<div data-with-frame="true"><figure><img src="/files/7b533dc156895a6936dcb90efbb049904581dfe4" alt=""><figcaption><p>مثال على استخدام الدالة prodamus_subscription_switch_status</p></figcaption></figure></div>

الترجمة إلى اللغة العربية (أسلوب رسمي):

**مثال 1:** `customer_phone` تم توفير المعلمة، `customer_email` تم تجاوزها:

```python
stat = prodamus_subscription_switch_status('618117', '0', '75431312321')
```

**مثال 2:** `customer_email` تم توفير المعلمة، `customer_phone` تم تجاوزها:

```python
stat = prodamus_subscription_switch_status('618117', '0', '', 'examp@mail.com')
```

{% hint style="success" %}
إذا اكتملت جميع العمليات بنجاح، فإن الدالة **`ok`** تُرجع، أو تُرجع وصف الخطأ في حال حدوثه.
{% endhint %}

## إدارة الخصومات في الاشتراك

تقوم هذه الدالة بضبط مقدار الخصم على المدفوعات القادمة في الاشتراك. ويمكن أن يكون الخصم **محدودًا أو غير محدود** بعدد المدفوعات.

```python
prodamus_subscription_discount(subscription_id, discount, customer_phone, num, profile_id)
```

المعلمات:

* `subscription_id` — معرّف الاشتراك
* `discount` — عدد عشري بدقة رقمين بعد الفاصلة؛ يجب أن تكون القيمة أكبر من صفر وألا تتجاوز القيمة الأساسية للاشتراك
* `customer_phone` — رقم هاتف العميل، بالصيغة: `+79999999999` (غير إلزامي إذا كان `customer_email` المتغير موجودًا؛ يظهر بعد الدفع الأول)
* `num` — عدد المدفوعات التي سيُطبق عليها الخصم (غير إلزامي؛ إذا لم يُحدد، فسيُطبق الخصم على جميع المدفوعات)
* `profile_id` — معرّف الملف الشخصي في نظام Prodamus

إذا تم تنفيذ الطلب بنجاح، فإن الدالة `'ok'` تُرجع؛ وإذا حدث خطأ، فتُرجع وصف الخطأ.

{% hint style="warning" %}
**لن تتم إعادة كتابة مقدار الخصم والفاصل الزمني إلا إذا أعدت استدعاء الدالة بقيم جديدة!**
{% endhint %}

**أمثلة:**

**1. منح خصم 1₽ على جميع المدفوعات التلقائية القادمة** (لا يتم تحديد رقم الهاتف، لأنه يُؤخذ تلقائيًا من `customer_phone` المتغير؛ ويُطبق مبلغ الخصم افتراضيًا على كامل مدة الاشتراك):

```python
r = prodamus_subscription_discount('624034', '1')
```

<div data-with-frame="true"><img src="https://lh3.googleusercontent.com/_4i_sKKn39tHVdnb47xgj8fxfP_x9UGMWLaierBnpup9LCZMdVT0G9AmIOa8S_uMrVXWQIH6rvZnujCYPGcphkYvwFbCXEh819tWIjGIM4mHvd3afSlPzhZfcWk6D1z1tyBwFrZV" alt="" width="563"></div>

**2. مثال على منح خصم 2₽ على الدفعات الثلاث القادمة** (يُمرَّر رقم الهاتف بين علامتي اقتباس فارغتين، لأنه يُؤخذ تلقائيًا من `customer_phone` المتغير):

```python
r = prodamus_subscription_discount('624034', '2', '', '3')
```

<div data-with-frame="true"><img src="https://lh5.googleusercontent.com/IgutVRIqTFbaof9A14qdQRLCB6oop4mSAIew5s3lz62Kb4YVHdHJEt6GuC7AACStDgRiR1d_XEG1k5Dj7c2M-VNtci16JbklMTEla8_RNWD7wBNeG649g0lnFiMZilhri3phwKr-" alt="" width="563"></div>

**3. مثال على عرض الخصم كعدد عشري** (الفاصل هو النقطة، وتُعرض القيم بدون علامات اقتباس)، ويمكن تمرير رقم الهاتف عبر متغير.

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

r = prodamus\_subscription\_discount(#{prodamus\_subscription}, 10.25, #{customer\_phone}, 3)

<div data-with-frame="true"><img src="https://lh3.googleusercontent.com/xJVbZ3Q5f6LzCsYtuX-JqaKYPc69lS6Wi4yA0ui2vBxmFkXXGIHSqgO2VoK0rzDPdNG-HxVpAnpRcmbZXQ_oSrtT7ijJcQA6ZOwjXLbKP8WsCFBip-4DwRnVHpz-fIPRt_Wldo0h" alt="" width="563"></div>

## **كيفية ضبط تاريخ الدفعة القادمة في الاشتراك**

تتيح هذه الطريقة نقل تاريخ الدفعة التالية في الاشتراك. لا يمكن نقل التاريخ إلا من تاريخ الدفعة التالية الحالي **«إلى المستقبل»** ، وبذلك يمكن زيادة مدة المشاركة في النادي.

على سبيل المثال، يمكن استخدامه كهدية للمشتركين.

لذلك يجب استخدام الدالة التالية:

```python
prodamus_subscription_payment_date(subscription_id, date, customer_phone, profile_id)
```

المعلمات:

* `subscription_id` — معرّف الاشتراك
* `date` — تاريخ بصيغة dd.mm.yyyy hh:mm أو dd.mm.yyyy؛ وإذا أُعطي dd.mm.yyyy فقط، فسيكون الوقت 00:00
* `customer_phone` — غير إلزامي؛ وإذا لم يُذكر، `customer_phone` فسيُؤخذ من المتغير؛ وإذا لم يُعثر عليه فلن تعمل الدالة
* `profile_id` — معرّف الملف الشخصي في نظام Prodamus

### كيفية إرسال المعلمات إلى Prodamus

لإرسال المعلمات المطلوبة (مثل تاريخ بدء الاشتراك، إيقاف التقسيط، إلخ) إلى نظام Prodamus، أضف إلى اسم المتغير **`prodamus_`** السابقة.

بعد ذلك، عند إنشاء رابط الدفع، سيتم إرسال المعلمات الموجودة في هذا المتغير تلقائيًا إلى نظام الدفع.

## كيفية اختبار الدفع

{% hint style="info" %}
نختبر الدفع فقط!
{% endhint %}

حتى لا يتم خصم أموال من حسابك أثناء إعداد التكامل ومسارات الدفع، **يمكن استخدام بطاقات اختبار**.

{% hint style="warning" %}
أولًا، غيّر صفحة الدفع الخاصة بك إلى **وضع DEMO** ⤵\
ولا تنسَ الضغط على زر «حفظ».
{% endhint %}

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

#### يمكن استخدام حسابات اختبار لإجراء دفع تجريبي.

**بطاقات سبير الاختبارية:**

**МИР**\
رقم البطاقة: 2202 2050 0001 2424\
تاريخ الانتهاء: 05/35\
رمز التحقق على ظهر البطاقة (CVV): 669

**MasterCard**\
رقم البطاقة: 5469 9801 0004 8525\
تاريخ الانتهاء: 05/26\
رمز التحقق على ظهر البطاقة (CVV): 041\
رمز التحقق 3-D Secure: 111111

**Visa**\
رقم البطاقة: 4006 8009 0096 2514\
تاريخ الانتهاء: 05/26\
رمز التحقق على ظهر البطاقة (CVV): 941\
رمز التحقق 3-D Secure: 111111

{% hint style="success" %}
❗️عند الدفع عبر حسابات الاختبار، فإن جميع مسارات العمل والتكاملات المضبوطة **تعمل كما في الدفع العادي**❗️
{% endhint %}

تم التحقق من النموذج

{% hint style="danger" %}
للحصول على المدفوعات الفعلية، يجب أن تكون النموذج **في وضع التشغيل** ، أي يجب تحويل مفتاح وضع العرض التجريبي إلى **الأحمر الفاتح** الحالة.
{% endhint %}


---

# 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/integrations/payment/prodamus.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.
