كيفية إعداد Robokassa
دعنا ننظر في كيفية تنفيذ استقبال المدفوعات في البوت عبر خدمة Robokassa.
- قم بإنشاء متجر إلكتروني في الحساب الشخصي لخدمة Robokassa وحدد الإعدادات الفنية التالية:
- خوارزمية حساب التجزئة: MD5
- Result Url: https://chatter.mavibot.ai/robokassa\_callback/result\
- طريقة إرسال البيانات عبر Result Url: GET
- Success Url: https://chatter.mavibot.ai/robokassa\_callback/success\
- طريقة إرسال البيانات عبر Success Url: GET
- Fail Url: https://chatter.mavibot.ai/robokassa\_callback/fail\
- طريقة إرسال البيانات عبر Fail Url: GET

قم بإنشاء كلمات مرور اختبارية وقم بالإعداد الأولي في وضع الاختبار.
كيفية ربط Robokassa بـ MaviBot؟
انتقل إلى قسم "الاستحواذ" وانقر على "ربط" في بطاقة Robokassa:

واملأ النموذج في النافذة التي تفتح:
- حقل معرف المتجر — Shop ID، الذي يمكنك العثور عليه في إعدادات المتجر في الحساب الشخصي لـ Robokassa.
- كلمة المرور #1، كلمة المرور #2 — تسلسلات فريدة مكونة من أرقام+حروف.
- حقل نسبة ضريبة القيمة المضافة. يجب تحديد الكود المناسب لإرسال قيمة ضريبة القيمة المضافة. يحدد هذا الحقل معدل الضريبة في سجل النقد (KKT). يتم تحديده لكل نوع من السلع على حدة، ولكن لجميع وحدات سلعة معينة معًا.
يُستخدم بالقيم التالية:
- بدون ضريبة القيمة المضافة.
- ضريبة القيمة المضافة بنسبة 0%.
- ضريبة القيمة المضافة بنسبة 5%.
- ضريبة القيمة المضافة بنسبة 12%.
- ضريبة القيمة المضافة بنسبة 16%.
كيفية إنشاء رابط للدفع
يمكن إنشاء رابط للدفع في الكتلة بأحد الطرق المتاحة:
زر مع وظيفة الدفع
يمكن إنشاء رابط للدفع في زر مع وظيفة "الدفع".
كيفية إنشاء زر مع وظيفة "الدفع" موضحة هنا
دعنا ننظر في جميع المعلمات الممكنة لهذا الزر. كيفية إنشاء زر مع وظيفة الدفع موضحة في هذه المقالة:
المعلمات الإلزامية لزر الدفع
لتكوين رابط للدفع في إعدادات الزر، يجب تحديد المعلمات الإلزامية: المبلغ واسم السلعة.****

حقل المبلغ. في هذا الحقل نحدد سعر السلعة بالروبل
حقل اسم السلعة. في هذا الحقل يمكن استخدام أحرف الأبجدية الإنجليزية أو الروسية فقط، والأرقام وعلامات الترقيم. الحد الأقصى للطول — 100 حرف. تظهر هذه المعلومات في واجهة Robokassa وفي الإيصال الإلكتروني الذي يتلقاه العميل بعد الدفع الناجح.
لا يمكن استخدام الاقتباسات المزدوجة في اسم السلعة: قم بإزالتها أو استبدالها بعلامات اقتباس مفردة.
خانة الاختيار الدفع التلقائي. لتفعيل الدفع التلقائي
خانة الاختيار مع إشعار النقر. لتتبع الانتقال عبر رابط الدفع، يمكن وضع علامة اختيار. في هذه الحالة، عند النقر على الزر، سيصل إشعار إلى الحوار مع العميل في Salebot بأنه تم الانتقال عبر الرابط
يمكن تكوين منطق عمل البوت الإضافي بناءً على هذا الإشعار.
تدعم العديد من أنظمة الدفع السجلات النقدية السحابية، وهي ضرورية بموجب القانون 54-FZ.
اقرأ ميزات إصدار الإيصالات على موقع نظام الدفع المختار لتجنب المواقف المحرجة مع مفتشية الضرائب.
لتكوين الإيصال
قائمة بيانات تكوين الإيصال. عند النقر، ستفتح قائمة منسدلة مع معلمات تكوين الإيصال:

حقل اسم السلعة. إلزامي لتكوين الإيصال.
لا يمكن استخدام الاقتباسات المزدوجة في اسم السلعة: قم بإزالتها أو استبدالها بعلامات اقتباس مفردة.
حقل المبلغ الإجمالي بالروبل. في هذا الحقل يجب تحديد المبلغ المستحق الدفع مع مراعاة كمية السلع. إذا كانت الكمية تساوي 1، فإن المبلغ الإجمالي بالروبل يساوي القيمة في حقل المبلغ في الإعداد الإلزامي للزر
حقل الكمية. كمية أو وزن السلعة. يمكن إرسال عدد صحيح أو كسري بنقطة. مثال، 5 أو 10.3
متغيرات العميل التي سيتم إنشاؤها تلقائيًا عند استخدام زر مع وظيفة الدفع
بمجرد أن يتلقى المستخدم كتلة مع زر "الدفع"، سيتم إنشاء متغيرات العميل تلقائيًا:

المتغير الخدمي للعميل __payments، الذي يخزن المبلغ ومعرف الرابط الذي تم إنشاؤه، ضروري لتحديد هوك من نظام الدفع.
لا يمكن حذف أو تغيير المتغير الخدمي للعميل __payments!
متغير العميل error_payment_button يتم إنشاؤه إذا حدث خطأ أثناء تكوين الزر.
سيتم تسجيل إما نص الخطأ أو رد نظام الدفع مع الخطأ في قيمة المتغير error_payment_button.
تصبح قيم المتغيرات سارية المفعول عند الانتقال إلى الكتلة التالية
كيفية معالجة النتيجة
نلفت الانتباه!
ترسل Robokassa إشعارًا فقط للمعاملات الناجحة عبر معلمة Result URL. لا توجد استدعاءات للمدفوعات غير الناجحة في خدمة Robokassa.
Fail URL - هي فقط صفحة الدفع غير الناجح، حيث سيتم إعادة توجيه الدافع في حالة حدوث خطأ برمجي على صفحة الدفع.
الدفع الناجح.
بعد أن تقوم بتكوين الدفع بشكل صحيح وإنشاء رابط لإجراء الدفع، اختبر الإعدادات التي تم إنشاؤها. إذا تم الدفع بنجاح، فسيصل تلقائيًا إلى حوار العميل (قسم "العملاء") استدعاء (كولباك) يتكون من 10 أحرف من المفتاح السري لنظام الدفع، وكلمة _success ومسافة ثم مبلغ الدفع. يتم إنشاء الكولباك تلقائيًا، ولا تحتاج إلى تكوينه بنفسك أو طلبه من دعم نظام الدفع.


على سبيل المثال: ovg58keefc_success 2999، حيث:
ovg58keefc : 10 أحرف من المفتاح السري لنظام الدفع
_success : نتيجة معالجة الطلب (دفع ناجح)
2999 : مبلغ الدفع
معالجة الكتلة:

الكولباك:

لا يرى المستخدم الكولباك (الإشعارات) من نظام الدفع. تظهر فقط في علامة التبويب "العملاء" ويراها المشغل/المسؤول.
مثال على تكوين رد فعل على الكولباك
في الكتلة ذات الشرط (يمكن أن تكون كتلة "الشرط الابتدائي" أو كتلة "ليست حالة مع شرط")، يجب تحديد الكولباك الذي يصل عند الدفع.
مهم: اختيار التطابق التطابق التام أو حسب وجود كلمات مفتاحية

بعد ذلك، عند الدفع، سيصل للعميل رسالة من الكتلة التي تم فيها تكوين رد الفعل على الكولباك:

الدفع مع خطأ
إذا كان المبلغ المحدد في إعدادات الزر يختلف عن المبلغ الذي دفعه العميل، فسيصل تلقائيًا إلى البوت كولباك يتكون من 10 أحرف من المفتاح السري لنظام الدفع، وكلمة _different_amounts ومسافة ثم معرف فريد للدفع
على سبيل المثال: ovg58keefc_different_amounts 123456، حيث:
ovg58keefc : 10 أحرف من المفتاح السري لنظام الدفع
_different_amounts : نتيجة معالجة الطلب (مبلغ الدفع يختلف عن المبلغ في الرابط)
123456 : معرف فريد للدفع
دالة get_robokassa_payment_url في الآلة الحاسبة
لتكوين رابط للدفع، يمكن استخدام دالة get_robokassa_payment_url في كتلة الآلة الحاسبة.
في حقل الآلة الحاسبة، سنسند للمتغير قيمة دالة get_robokassa_payment_url
اسم المتغير تحدده بنفسك. في لقطات الشاشة أمثلة على أسماء المتغيرات.
سيتم تسجيل رابط الدفع في هذا المتغير. يمكن عرض المتغير على الشاشة كرابط في رسالة أو وضعه في زر مع نص "الدفع".
مثال على رابط الدفع: https://auth.robokassa.ru/Merchant/Index.aspx?MerchantLogin=test_salebot&OutSum=800&InvId=1412&IsTest=1&SignatureValue=0427369c3bd068bae30935f896060dda
تدعم العديد من أنظمة الدفع السجلات النقدية السحابية، وهي ضرورية بموجب القانون 54-FZ.
اقرأ ميزات إصدار الإيصالات على موقع نظام الدفع المختار لتجنب المواقف المحرجة مع مفتشية الضرائب.
الآلة الحاسبة
مثال 1:

وصف المعلمات
get_robokassa_payment_url(amount, description, products_for_receipt, recurrent, currency)
معلمات الدالة:
| المعلمة | قيمة المعلمة |
|---|---|
amount |
**المبلغ المستحق الدفع.** في هذا الحقل نحدد سعر السلعة بالروبل. (معلمة إلزامية) |
description |
**اسم السلعة.** في هذا الحقل يمكن استخدام أحرف الأبجدية الإنجليزية أو الروسية فقط، والأرقام وعلامات الترقيم. الحد الأقصى للطول — 100 حرف. تظهر هذه المعلومات في واجهة Robokassa وفي الإيصال الإلكتروني الذي يتلقاه العميل بعد الدفع الناجح. (معلمة إلزامية) |
|
|
**معلمات تكوين الإيصالات.** اقرأ المزيد هنا. |
recurrent |
**تفعيل الدفع التلقائي.** إذا كان الدفع التلقائي مفعلًا، أرسل القيمة 1، إذا كان معطلًا أرسل القيمة None |
currency |
**رمز العملة المكون من ثلاثة أحرف.** يجب إرسال القيمة بدقة وفقًا للمعلمات التي تقبلها خدمة Robokassa. |
مثال للنسخ
مثال 1: رابط للدفع بدون إيصال
res = get_robokassa_payment_url(100, 'اشترني')
مثال 2: رابط للدفع مع إيصال
receipt = [{"name":"DDDDDDDD","amount":"44","quantity":"1","vat_code":"5","method":"full_payment","object":"commodity"}]
res = get_robokassa_payment_url(100, 'اشترني', receipt, '3', 1, 1)
يمكن عرض المتغير على الشاشة كرابط في رسالة أو وضعه في زر مع نص، على سبيل المثال، "شراء".
إذا كان هناك عدة دوال في الكتلة للحصول على الرابط وحدث خطأ، فسيتم تسجيل قيمة الخطأ في المتغير
error_payment_func
سيتم تسجيل الخطأ بناءً على آخر دالة في الآلة الحاسبة
بعد أن تقوم بتكوين الدفع بشكل صحيح وإنشاء رابط لإجراء الدفع، اختبر الإعدادات التي تم إنشاؤها.
كيفية إضافة وصف الدفع
يمكنك إضافة وصف للدفع عن طريق تعيين المتغير payment_description

سيظهر هذا الوصف في نموذج الدفع، وكذلك على الإيصال.
كيفية معالجة النتيجة
إذا تم الدفع بنجاح، فسيصل تلقائيًا إلى حوار العميل (قسم "العملاء") كولباك يتكون من 10 أحرف من المفتاح السري لنظام الدفع، وكلمة _success ومسافة ثم مبلغ الدفع. يتم إنشاء الكولباك تلقائيًا، ولا تحتاج إلى تكوينه بنفسك أو طلبه من دعم نظام الدفع.
على سبيل المثال: ovg58keefc_success 1500، حيث:
ovg58keefc : 10 أحرف من المفتاح السري لنظام الدفع
_success : نتيجة معالجة الطلب (دفع ناجح)
1500 : مبلغ الدفع
نلفت انتباهك!
الكولباك مرئي لك فقط في المحادثة مع العميل.
العميل لا يرى الكولباك، ولكن يمكنك ضبط رد الفعل على معالجة الدفع الناجحة.
مثال
إعدادات الكتلة مع وظيفة get_robokassa_payment_url:
- إذا قمت بإصدار الرابط في النص:

مهم!
رابط الدفع فريد: لا يمكن نسخه وإرساله لاحقًا إلى عملاء آخرين!
أرسل رابط الدفع عبر متغير في البوت (انظر الشكل 17).
الكولباك عند الدفع الناجح:

- الرابط في الزر:

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

الكولباك عند الدفع الناجح:

إنشاء رابط باستخدام متغير payment_sum ومعلمات إضافية
يمكنك أيضًا قبول الدفع عن طريق إنشاء رابط باستخدام متغير payment_sum، حيث يكفي تحديد مبلغ الدفع.
يرجى الملاحظة: يتم تعيين قيمة المتغير payment_sum أخيرًا، بعد المتغيرات الاختيارية payment_description, product_name إلخ.
لإنشاء رابط الدفع، تحتاج إلى تعيين قيمة المتغير payment_sum، وبعد ذلك مباشرة سيظهر المتغير robokassa_pay_url. يمكن عرض هذا المتغير على الشاشة كرابط أو وضعه على زر مع نص "دفع".

مثال على معالجة الكتلة (روابط الدفع):

مهم!
رابط الدفع فريد: لا يمكن نسخه وإرساله لاحقًا إلى عملاء آخرين!
أرسل رابط الدفع عبر متغير في البوت
لنقل الرابط في الزر، حدد المتغير في الزر في حقل url:

نتيجة الدفع عند إنشاء رابط الدفع عبر payment_sum
بعد الدفع الناجح، سيصل كولباك إلى البوت. ترى هذا الكولباك في النظام كرسالة من المستخدم، ولأن المستخدم لا يمكنه إرسالها، فهي تتكون من كلمة المرور الأولى من خدمة Robokassa واللاحقة مع الحالة success، على سبيل المثال: qxgZ7zkNX4HHnG8UpZ61_success.

أيضًا بعد الدفع الناجح، يتم تعيين المتغير robokassa_payment_completed إلى True.
هذا الكولباك لا يراه المستخدم، بل يظهر فقط للمشغل
يجب أن يكون نوع المقارنة "مطابقة تامة"
لإجراء دفعة متكررة، يجب بالضرورة إعادة تعيين payment_sum، والرابط الذي تم إنشاؤه مسبقًا، وبعد ذلك فقط إعادة تعيين المتغير payment_sum للحصول على رابط جديد
مثال على إعادة تعيين المتغيرات:
robokassa_pay_url=''
payment_sum=0
بعد اكتمال الدفع، سيتم إضافة المتغير robokassa_callback_data للعميل، والذي يحتوي على بيانات استجابة نظام الدفع للعملية المنفذة. يمكن استخراج البيانات اللازمة من القاموس الناتج باستخدام طريقة get.
كيفية إنشاء مخطط اختبار
مثال على مخطط يسمح باختبار وبدء العمل بسرعة مع خدمة Robokassa:

يوضح الشكل مثالاً على الكتلة الأولى، حيث يُسأل المستخدم عن المبلغ الذي يريد دفعهь.
في الشكل أدناه، إعدادات السهم، يجب أن يكون المفتاح "المستخدم يدخل البيانات" مفعلاً وفي الحقل مكتوب المتغير payment_sum:

بعد ذلك، في كتلة الدفع التالية، أضف زرًا واضبط في سطر url المتغير robokassa_pay_url:


سيعمل المخطط على النحو التالي:

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

مهم!
لا يوجد كولباك للدفع غير الناجح في Robokassa.
لذلك، أضف كتلة أخرى مع شرط، وفي سطر الشرط اكتب الكولباك بالشكل "qxgZ7zkNX4HHnG8UpZ61_success":

يجب أن يكون نوع التحقق بالضرورة "مطابقة تامة"
سيعمل المخطط على النحو التالي:

كيفية إنشاء طلب للفوترة
في الزر مع وظيفة "الدفع"
عند إنشاء زر في القائمة المنسدلة "بيانات إنشاء الإيصال"، املأ الحقول "اسم المنتج"، "المبلغ الإجمالي بالروبل"، "الكمية"، "نسبة ضريبة القيمة المضافة"، "نظام الضرائب".

لمزيد من التفاصيل، راجع القسم "لإنشاء الإيصال".
باستخدام متغير payment_sum
نظرًا لأن إنشاء الرابط يتم في اللحظة التي قمت فيها بتعيين قيمة المتغير payment_sum، يجب عليك تعيين المتغيرات products_for_receipt و robokassa_sno.
مهم:
- عند إنشاء الرابط عبر متغير payment_sum، يتم تعيين نظام الضرائب في المتغير robokassa_sno.
- يجب أن يكون payment_sum مساويًا للتكلفة الإجمالية لجميع المنتجات (مجموع جميع معاملات sum).
مثال:
session_timeout = 7200
product_name = الدفعة الأولى
robokassa_sno = osn
products_for_receipt = [{"name": "اسم المنتج", "quantity": 2, "sum": 2, "tax": "none"}, {"name": "اسم المنتج 2", "quantity": 1, "sum": 6, "tax": "none"}]
payment_sum = 10
للوظائف get_robokassa_payment_url و robokassa_recurrent_payment
عند استدعاء الوظيفة get_robokassa_payment_url أو الوظيفة robokassa_recurrent_payment، قم بتمرير المتغيرات taxation و products_for_receipt كوسائط وفقًا للوصف أدناهе.
ستقوم الوظائف بإعداد الرابط مع مراعاة التسمية السلعية وإنشاء طلب للفوترة.
مهم:
يجب تعيين المتغيرات taxation و products_for_receipt لكل دفعة منفصلة.
خدمة Robokassa لا تخزن هذه المعاملات ولن تتمكن من إجراء الفوترة للدفعات التي لم يتم تمرير التسمية السلعية لها.
- products_for_receipt - مصفوفة تحتوي على التسمية السلعية.
يجب تمثيل كل وحدة من المنتج كقاموس يحتوي على المعاملات name, quantity, sum, tax, payment_method, payment_object و nomenclature_code.
!** يجب تحديد products_for_receipt بالتنسيق التالي:
[
{"name": "اسم المنتج", "quantity": "كمية المنتج", "sum": "تكلفة المنتج", "tax": "نسبة ضريبة القيمة المضافة"},
{"name": "اسم المنتج 2", "quantity": "كمية المنتج 2", "sum": "تكلفة المنتج", "tax": "نسبة ضريبة القيمة المضافة"}
]
حيث،
-
name - اسم المنتج. إذا كنت تستخدم رموزًا خاصة في اسم المنتج، مثل علامات الاقتباس، فيجب بالضرورة تخطيها.
-
quantity - كمية أو وزن المنتج (عدد صحيح أو كسري بنقطة)
-
sum أو amount (إلزامي، اسمان بديلان) - المبلغ الإجمالي بالروبل لجميع كمية هذا المنتج مع مراعاة جميع الخصومات والمكافآت والأسعار الخاصة الممكنة.
-
tax أو vat_code - (إلزامي، اسمان بديلان، تعتمد القيمة على الاسم) - نسبة ضريبة القيمة المضافة. يحدد هذا المعامل معدل الضريبة في KKT.
**قيم tax: **
| القيمة | الوصف |
|---|---|
| none | بدون ضريبة القيمة المضافة |
| vat0 | ضريبة القيمة المضافة بنسبة 0% |
| vat5 | ضريبة القيمة المضافة بنسبة 5% |
| vat12 | ضريبة القيمة المضافة بنسبة 12% |
| vat16 | ضريبة القيمة المضافة بنسبة 16% |
قيم vat_code:
| القيم | الوصف |
|---|---|
| '1' | بدون ضريبة القيمة المضافة |
| '2' | ضريبة القيمة المضافة بنسبة 0% |
| '8' | ضريبة القيمة المضافة بنسبة 5% |
| '15' | ضريبة القيمة المضافة بنسبة 12% |
| '14' | ضريبة القيمة المضافة بنسبة 16% |
- method أو payment_method - (اسمان بديلان، معامل اختياري) علامة طريقة الحساب.
| القيم الممكنة للمعامل: | ما تعنيه القيمة: |
|---|---|
| full_prepayment | دفع مسبق 100%. دفع مسبق كامل قبل لحظة نقل موضوع الحساب |
| prepayment | دفع مسبق. دفع مسبق جزئي قبل لحظة نقل موضوع الحساب |
| advance | سلفة |
| full_payment | حساب كامل. دفع كامل، بما في ذلك مع مراعاة السلفة (الدفع المسبق) في لحظة نقل موضوع الحساب؛ |
| partial_payment | حساب جزئي وائتمان. دفع جزئي لموضوع الحساب في لحظة نقله مع دفع لاحق بالائتمان؛ |
| credit | نقل بالائتمان. نقل موضوع الحساب دون دفعه في لحظة نقله مع دفع لاحق بالائتمان؛ |
| credit_payment | دفع الائتمان. دفع موضوع الحساب بعد نقله مع دفع بالائتمان (دفع الائتمان). |
- object أو payment_object - (اسمان بديلان، معامل اختياري) موضوع الحساب (إذا لم يتم تمريره، سيكون commodity (منتج))
| القيم الممكنة للمعامل | ما تعنيه القيمة |
|---|---|
| commodity | منتج. عن المنتج المباع، باستثناء المنتج القابل للاستهلاك (الاسم والمعلومات الأخرى التي تصف المنتج) |
| excise | منتج قابل للاستهلاك. عن المنتج القابل للاستهلاك المباع (الاسم والمعلومات الأخرى التي تصف المنتج) |
| job | عمل. عن العمل المنجز (الاسم والمعلومات الأخرى التي تصف العمل) |
| service | خدمة. عن الخدمة المقدمة (الاسم والمعلومات الأخرى التي تصف الخدمة) |
| gambling_bet | رهان لعبة القمار. عن استلام الرهانات عند ممارسة أنشطة إجراء ألعاب القمار |
| gambling_prize | جائزة لعبة القمار. عن دفع الأموال كجائزة عند ممارسة أنشطة إجراء ألعاب القمار |
| lottery | تذكرة يانصيب. عن استلام الأموال عند بيع تذاكر اليانصيب، تذاكر اليانصيب الإلكترونية، استلام رهانات اليانصيب عند ممارسة أنشطة إجراء اليانصيب |
| lottery_prize | جائزة اليانصيب. عن دفع الأموال كجائزة عند ممارسة أنشطة إجراء اليانصيب |
| intellectual_activity | تقديم نتائج النشاط الفكري. عن تقديم حقوق استخدام نتائج النشاط الفكري أو وسائل التخصيص |
| payment | دفع. عن السلفة، العربون، الدفع المسبق، الائتمان، القسط في حساب الدفع، الغرامة، المخالفة، المكافأة، المكافأة الإضافية وأي موضوع حساب مماثل آخر |
| agent_commission | أجر الوكيل. عن أجر المستخدم الذي هو وكيل دفع (وكيل فرعي)، وكيل دفع بنكي (وكيل فرعي)، وسيط، محام أو أي وكيل آخر؛ |
| composite | موضوع حساب مركب. عن موضوع حساب يتكون من موضوعات، يمكن تعيين قيمة لكل منها من العلامات المذكورة أعلاه |
| another | موضوع حساب آخر. عن موضوع حساب لا ينتمي إلى موضوعات الحساب المذكورة أعلاه |
| property_right | حق ملكية |
| non-operating_gain | دخل غير تشغيلي |
| insurance_premium | أقساط التأمين |
| sales_tax | ضريبة المبيعات |
| resort_fee | رسوم المنتجع |
- nomenclature_code - (إلزامي مشروط) رمز ترميز المنتج: يتم إرساله كما هو مطبوع على عبوة المنتج.
هذه المعلمة إلزامية فقط للمتاجر التي تبيع منتجات خاضعة للترميز الإلزامي.
يوجد رمز الترميز على عبوة المنتج، بجانب الباركود أو على شكل رمز QR.
مهم! من أجل إصدار الإيصال الضريبي، من المهم إرسال معلمات الإيصال.
يتم إرسال تنسيق الإيصال الصحيح على النحو التالي:
rec = [{"name": "حزمة شهر واحد", "quantity": 1, "sum": 4800, "tax": "none"}]
response = robokassa_recurrent_payment(4800, 'تدريب في مدرسة الطيران أفياتور', 'ru', rec, 'osn')
حيث يجب استبدال بياناتك الخاصة.
إنشاء إيصال عند قبول الدفع في الدورات على صفحة الدورة
تحتاج إلى تحديد نظام الدفع Robokassa في قسم "الدفع" في إعدادات الدورة:

املأ حقل "معدل ضريبة القيمة المضافة" في قسم "الاستحواذ" في إعدادات نظام الدفع (إذا لم تكن قد فعلت ذلك من قبل).

ما هي الأخطاء التي قد تحدث
رمز الخطأ 40
"لا يمكن الدفع المتكرر لنفس الفاتورة بنفس الرقم".
بعد الدفع الناجح، يجب نقل الحوار إلى كتلة "نهاية جمع البيانات" لتكوين رقم دفع جديد.
رمز الخطأ 34
"خدمة الدفع المتكرر غير مسموح بها للمتجر".
رمز الخطأ 31
"مبلغ الدفع غير صحيح".
قد يحدث هذا الخطأ عند إعادة توجيه العميل إلى صفحة الدفع لإصدار فاتورة. ويعني أنك لا ترسل لنا المبلغ الذي يجب إجراء الدفع به، أو ترسل مبلغًا يساوي صفرًا.
رمز الخطأ 29
"معلمة التوقيع غير صحيحة"
قد يكون هناك عدة أسباب لذلك، لكنها جميعًا مرتبطة بالبرنامج النصي المسؤول عن تهيئة الدفع (وبشكل أكثر تحديدًا، الجزء الذي يقوم بتكوين معلمة التوقيع وفقًا لصيغة تتكون من متغيرات). هذا الخطأ شائع جدًا، وإليك 3 أسباب محتملة:
- الأول: معرف المتجر غير صحيح (MerchantLogin)؛
- الثاني: كلمة المرور 1 غير صحيحة (MerchantPass1)؛
- الثالث: أنت تستخدم معلمات إضافية (shp_) تمت إضافتها إلى كود البرنامج الخاص بالسجل النقدي، ولكن لم يتم إدراجها في صيغة الحساب - أو العكس، فهي محددة في صيغة الحساب ولكنها غير موجودة في الكود. إذا تم استخدامها، قم بإرسالها بترتيب أبجدي - كما هو الحال في معلمات الدفع وفي صيغة حساب التوقيع.
نقطة مهمة! إذا كنت تعمل في وضع الاختبار، عن طريق إرسال المعلمة IsTest=1 أو تفعيلها بالعلامة في إعدادات الوحدة/البوت، فاستخدم فقط زوج كلمات المرور التقنية الاختبارية (علامة التبويب "الإعدادات التقنية" لبطاقة المتجر الخاص بك).
رمز الخطأ 23
"لا يمكن إنشاء دفعة اختبارية. لا يحتوي المتجر على إعدادات معلمات الاختبار".
هذا يعني أنه قبل إجراء الدفع الاختباري، لم تقم بملء جميع البيانات اللازمة في كتلة "معلمات إجراء الدفعات الاختبارية" في علامة التبويب "الإعدادات التقنية".
رمز الخطأ 25
"المتجر غير مفعل".
هذا الخطأ شائع، وقد يكون هناك سببان.
- الأول: هذا صحيح بالفعل - ويجب تفعيل المتجر، ثم إصدار الفاتورة فقط.
- الثاني: لقد أدخلت معرف المتجر بشكل غير صحيح في الإعدادات التقنية على الموقع. يمكنك رؤية المعرف الصحيح في قسم "متاجري" في الحساب الشخصي. انتقل إلى علامة التبويب "الإعدادات التقنية" وابحث عن حقل "معرف المتجر". انسخ المعرف وأدخله في إعدادات الموقع.
كيفية إجراء الدفعات التلقائية لخدمة Robokassa
دليل خطوة بخطوة لتوصيل الدفعات التلقائية لخدمة Robokassa
الخطوة 1. تفعيل الدفعات التلقائية في زر الدفع
انتقل إلى إعدادات الكتلة التي تقدم فيها رابط الدفع وانتقل إلى إعدادات الزر:

بعد ذلك، في إعدادات الزر، ابحث عن خانة الاختيار "الدفعات التلقائية" وقم بتفعيلها:

إذا كنت ترغب في قبول الدفعات التلقائية في جميع أزرار الدفع، فيمكنك تفعيل الدفعات التلقائية في إعدادات توصيل نظام الدفع:

الخطوة 2. إجراء دفعة عادية.
بعد ذلك، تحتاج إلى إجراء دفعة عادية (الحصول على رابط الدفع ودفع العميل له)، كما هو موضح أعلاه. بعد الدفع الناجح، سيظهر للعميل متغير robokassa_previous_invoice_id مع معرف الدفع.
المتغير robokassa_previous_invoice_id إلزامي للدفعات اللاحقة.
إذا قمت بحذفه، فلن تتمكن من إجراء الدفع التلقائي التالي.
نلفت انتباهك!
قم بإلغاء تحديد خانة الاختيار "الدفعات في وضع الاختبار" (إذا كانت نشطة لديك)، وإلا فلن يتم تكوين المتغير robokassa_previous_invoice_id مع معرف الدفع!

الخطوة 3. جدولة الخصم التلقائي
من كتلة الدفع الناجح، نقوم بجدولة سهم مع مؤقت إلى الكتلة التي تحتوي على الدفع التلقائي. على سبيل المثال، لنقم بجدولة الدفعة التالية بعد 30 يومًا.

لكي يتم تنفيذ الدفع التلقائي في الكتلة المطلوبة في حقل الآلة الحاسبة، تحتاج إلى إضافة استدعاء للدالة robokassa_recurrent_payment، مع تمرير المعلمات إليها بالترتيب المحدد:
- payment_amount - المبلغ الواجب دفعه (سعر المنتج بالروبل)
- description - اسم المنتج. يمكن استخدام أحرف الأبجدية الإنجليزية أو الروسية والأرقام وعلامات الترقيم فقط في هذا الحقل. الحد الأقصى للطول هو 100 حرف. يتم عرض هذه المعلومات في واجهة Robokassa وفي الإيصال الإلكتروني الذي يتلقاه العميل بعد الدفع الناجح.
- country - المنطقة النطاقية ('ru' أو 'kz')
- products_for_receipt - معلمات إنشاء الإيصالات.
مزيد من التفاصيل في قسم "كيفية تكوين طلب الإصدار الضريبي -> للوظائف get_robokassa_payment_url و robokassa_recurrent_payment
- taxation - نظام الضرائب.
مزيد من التفاصيل في قسم "كيفية تكوين طلب الإصدار الضريبي -> للوظائف get_robokassa_payment_url و robokassa_recurrent_payment
مثال على طلب الدفع التلقائي:

عند تنفيذ الدفع التلقائي، يجب ألا يكون هناك رابط لدفع Robokassa والمتغير payment_sum!
الخطوة 4. جدولة الخصومات المنتظمة وإعداد إمكانية إلغاء الدفعات التلقائية.
للتكرار المنتظم للدفعات، نقوم بجدولة حلقة - سهم مع تأخير، على سبيل المثال، 30 يومًا.

إذا كان لديك إمكانية إلغاء الدفعات التلقائية، فلكي لا يتم تنفيذ الدفعة التالية، تحتاج إلى حذف المتغير robokassa_previous_invoice_id من العميل.
للقيام بذلك، في حقل الآلة الحاسبة، قم بحذف المتغير:
robokassa_previous_invoice_id = ""

الدفع العادي عند تفعيل الدفعات التلقائية
إذا كانت الدفعات التلقائية مفعلة، ولكنك بحاجة إلى رابط بدون اشتراك (بدون دفعات تلقائية)، فقبل تكوين الرابط، تحتاج إلى تعيين المتغير robokassa_manual_recurrent_disable بالقيمة 1.
في حقل الآلة الحاسبة، نعلن عن المتغير:
robokassa_manual_recurrent_disable = 1

انتباه!
رد الاتصال (Callback) في الدفعات التلقائية مطابق لرد الاتصال الذي يصل عند الدفعات الناجحة.
كيفية إعداد رد الفعل على رد الاتصال، تم شرحه في قسم "كيفية معالجة النتيجة"
ما هي متطلبات خدمة Robokassa لروبوتات الدردشة
الرد الرسمي من خدمة Robokassa:
يمكنك وضع المنتج في السوق مع وصف وسعر وقبول الدفع في البوت، يمكنك إنشاء صفحة واحدة مع وصف وسعر وبيانات الاتصال وبيان أن تسليم المنتج/تقديم الخدمة إلكتروني. يجب أن يكون لدينا ارتباط بالمنتج في السوق أو بالموقع، لأن ما تبيعه في البوت الخاص بك وفي أي بوت - لا يمكننا معرفة ذلك.
نحن لا ندرج رابط قناة Telegram كعنوان URL. أيضًا، متطلبات محتوى الموقع: "يجب أن يكون الموقع عاملاً، مع محتوى مملوء، وروابط داخلية تعمل.
يجب وصف السلع والخدمات على موقعك بالتفصيل: يجب أن يتضمن الوصف خصائص السلع والخدمات المقدمة، وخصائصها الاستهلاكية، والسعر الحالي.
يجب أن يحتوي موقعك على معلومات محدثة: الهاتف، البريد الإلكتروني، قواعد التسجيل ومواعيد تنفيذ الطلب، شروط الدفع والتسليم والإرجاع.
يتم فحص كل موقع على حدة.
Robokassa في Telegram
توصيل البوت الاختباري RobokassaPaymentTestBot.
- عند اختيار Connect Robokassa Test، ينتقل المستخدم إلى البوت RobokassaPaymentTestBot.
- يضغط المستخدم على زر /start.
- يتلقى المستخدم ردًا من البوت "أدخل معرف المتجر".
- يجب إدخال معرف المتجر في خدمة Robokassa.
- سيطلب البوت تأكيدًا يؤكد ملكية المتجر عن طريق إرسال رسالة نصية قصيرة إلى الرقم المحدد في المتجر: "تم إرسال رسالة نصية قصيرة إلى الرقم *%%%%" حيث %%%% هي آخر 4 أرقام من الهاتف.
- يقوم المستخدم بإدخال رمز مكون من 6 أرقام.
- إذا تم كل شيء بنجاح، فسيظهر للمستخدم رسالة: "لقد قمت بتوصيل البوت @BotName بـ Robokassa بنجاح. سيرسل لك @BotFather رمزًا مميزًا جديدًا."
- بعد ذلك، يظهر رمز الدفع المميز في BotFather، والذي يتم توصيل الدفعات به.
توصيل البوت المباشر RobokassaPaymentBot.
- عند اختيار Connect Robokassa Live، ينتقل المستخدم إلى البوت RobokassaPaymentBot.
- يضغط المستخدم على زر /start.
- يتلقى المستخدم ردًا من البوت "أدخل معرف المتجر".
- يجب إدخال معرف المتجر في خدمة Robokassa.
- سيطلب البوت تأكيدًا يؤكد ملكية المتجر عن طريق إرسال رسالة نصية قصيرة إلى الرقم المحدد في المتجر: "تم إرسال رسالة نصية قصيرة إلى الرقم *%%%%"، حيث %%%% هي آخر 4 أرقام من الهاتف.
- يقوم المستخدم بإدخال رمز مكون من 6 أرقام.
- إذا تم كل شيء بنجاح، فسيظهر للمستخدم رسالة: "لقد قمت بتوصيل البوت @BotName بـ Robokassa بنجاح. سيرسل لك @BotFather رمزًا مميزًا جديدًا."
- بعد ذلك، يظهر رمز الدفع المميز في BotFather، والذي يتم توصيل الدفعات به.
معالجة نتائج الدفع مماثلة لما هو موضح هنا