روبوكاسا (KZ)
كيفية إعداد 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 — سلاسل فريدة مولدة من أرقام+حروف.
حقل معدل ضريبة القيمة المضافة. يجب تحديد الرمز المناسب لنقل قيمة ضريبة القيمة المضافة. يحدد هذا الحقل معدل الضريبة في جهاز الدفع النقدي. يتم تحديده لكل نوع من السلع على حدة، ولكن لجميع وحدات المنتج المحدد معًا.
تُستخدم بالقيم:
بدون ضريبة قيمة مضافة.
ضريبة قيمة مضافة بنسبة 0%.
ضريبة قيمة مضافة بنسبة 5%
ضريبة قيمة مضافة على الإيصال بالمعدل الحسابي 12%.
ضريبة قيمة مضافة على الإيصال بالمعدل الحسابي 16%.
كيفية إنشاء رابط للدفع
يمكن إنشاء رابط الدفع في البلوك بأحد الطرق المتاحة:
إنشاء رابط باستخدام المتغير payment_sum والمعلمات الإضافية (نسخة عاملة قديمة)
زر بوظيفة الدفع
يمكن إنشاء رابط الدفع في الزر ذو وظيفة "الدفع".
شرح كيفية إنشاء زر بوظيفة "الدفع" هنا
لننظر في جميع المعلمات الممكنة لهذا الزر. وقد تم شرح كيفية إنشاء زر بوظيفة الدفع في هذه المقالة:
المعلمات الإلزامية لزر الدفع
لإنشاء رابط الدفع في إعدادات الزر، يجب تحديد المعلمات الإلزامية: المبلغ واسم المنتج.

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

حقل اسم المنتج. إلزامي لإنشاء الإيصال.
ممنوع استخدام علامات الاقتباس المزدوجة في اسم المنتج: احذفها أو استبدلها بعلامات اقتباس مفردة.
حقل المبلغ الكامل بالروبل. في هذا الحقل يجب تحديد المبلغ المطلوب دفعه مع مراعاة عدد المنتجات. إذا كان العدد يساوي 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-ФЗ. اقرأ خصائص إعداد الإيصالات على موقع نظام الدفع المختار حتى لا تقع في موقف محرج مع مصلحة الضرائب.
مثال 1:

get_robokassa_payment_url(amount, description, products_for_receipt, recurrent, currency)
معلمات الوظيفة:
amount
مبلغ الدفع. في هذا الحقل نحدد قيمة المنتج بالروبل.
(معلمة إلزامية)
description
اسم المنتج. في هذا الحقل يمكن استخدام أحرف من الأبجدية الإنجليزية أو الروسية، والأرقام وعلامات الترقيم فقط. الحد الأقصى للطول — 100 رمز. تظهر هذه المعلومات في واجهة Robokassa وفي الإيصال الإلكتروني الذي يحصل عليه العميل بعد الدفع الناجح. (معلمة إلزامية)
products_for_
receipt
معلمات إنشاء الإيصالات.
اقرأ المزيد هنا.
recurrent
تفعيل الدفع التلقائي. إذا كان الدفع التلقائي مفعّلًا، فمرِّر القيمة 1، وإذا كان معطلاً فمرِّر القيمة None
currency
رمز العملة المكون من ثلاثة أحرف.
يجب تمرير القيمة بدقة وفقًا للمعلمات التي يقبلها خدمة Robokassa. USD - دولار؛ EUR - يورو؛ KZT - تينغي.
مثال 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 and nomenclature_code.
! products_for_receipt يجب تحديده بالتنسيق التالي:
[
{"name": "اسم المنتج", "quantity": "كمية المنتج", "sum": "سعر المنتج", "tax": "معدل ضريبة القيمة المضافة"},
{"name": "اسم المنتج 2", "quantity": "كمية المنتج 2", "sum": "سعر المنتج", "tax": "معدل ضريبة القيمة المضافة"}
]
حيث،
1) name - اسم المنتج. إذا كنت تستخدم رموزًا خاصة في اسم المنتج، مثل علامات الاقتباس، فيجب إخفاؤها دائمًا.
2) quantity - كمية أو وزن المنتج (عدد صحيح أو كسري عبر النقطة)
3) sum أو amount (إلزامي، اسمان بديلان) - المبلغ الكامل بالروبل لجميع كميات هذا المنتج مع مراعاة جميع الخصومات المحتملة والمكافآت والأسعار الخاصة.
4) tax أو vat_code - (إلزامي، اسمان بديلان، والقيمة تعتمد على الاسم) - معدل ضريبة القيمة المضافة. هذه المعلمة تحدد معدل الضريبة في جهاز الدفع النقدي.
none
بدون ضريبة قيمة مضافة
vat0
ضريبة قيمة مضافة بنسبة 0%
vat5
ضريبة قيمة مضافة بنسبة 5%
vat12
ضريبة قيمة مضافة بنسبة 12%
vat16
ضريبة قيمة مضافة بنسبة 16%
'1'
بدون ضريبة قيمة مضافة
'2'
ضريبة قيمة مضافة بنسبة 0%
'8'
ضريبة قيمة مضافة بنسبة 5%
'15'
ضريبة قيمة مضافة بنسبة 12%
'14'
ضريبة قيمة مضافة بنسبة 16%
5) method أو payment_method - (اسمان بديلان، معلمة اختيارية) علامة على طريقة التسوية.
full_prepayment
دفعة مقدمة 100%. دفع مسبق كامل قبل لحظة تسليم موضوع التسوية
prepayment
دفعة مقدمة. دفعة مسبقة جزئية قبل لحظة تسليم موضوع التسوية
advance
دفعة مقدمة
full_payment
تسوية كاملة. دفع كامل، بما في ذلك مع الأخذ بعين الاعتبار الدفعة المقدمة (الدفع المسبق) عند لحظة تسليم موضوع التسوية؛
partial_payment
تسوية جزئية وشراء بالدَّين. دفع جزئي لموضوع التسوية عند تسليمه مع سداد لاحق بالدَّين؛
credit
التسليم بالدَّين. تسليم موضوع التسوية دون دفعه عند لحظة التسليم مع السداد لاحقًا بالدَّين؛
credit_payment
سداد الدَّين. دفع موضوع التسوية بعد تسليمه مع الدفع بالدَّين (سداد الدَّين).
6) 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
رسم منتجعي
7) nomenclature_code - (إلزامي بصورة مشروطة) ترميز السلعة: يُمرَّر كما هو مطبوع على عبوة السلعة.
هذا المعامل إلزامي فقط للمتاجر التي تبيع سلعًا خاضعة للوسم الإلزامي.
يوجد رمز الوسم على عبوة السلعة، بجانب الباركود أو على شكل رمز QR.
مهم! من أجل التحويل الضريبي، من المهم تمرير معاملات الإيصال.
يتم تمرير الشكل الصحيح للإيصال على النحو التالي:
rec = [{"name": "باقة شهر واحد", "quantity": 1, "sum": 4800, "tax": "none"}]
response = robokassa_recurrent_payment(4800, 'التدريب في مدرسة الطيران Aviator', 'ru', rec, 'osn')
حيث يلزم إدخال بياناتك الخاصة.
إنشاء الإيصال عند قبول الدفع في الدورات على صفحة الدورة
يجب اختيار نظام الدفع Robokassa في قسم "الدفع" ضمن إعدادات الدورة:

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

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

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

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

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


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

حتى يتم تنفيذ الدفع التلقائي في الكتلة المطلوبة في حقل Calculator، يجب إضافة استدعاء الدالة 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
مثال على طلب للدفع التلقائي:

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

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

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

تنبيه!
الردّ الراجع عند المدفوعات التلقائية مطابق للردّ الراجع الذي يصل عند المدفوعات الناجحة.
شرح كيفية ضبط الاستجابة للردّ الراجع موجود في قسم "كيفية معالجة النتيجة"
ما متطلبات خدمة Robokassa لروبوتات الدردشة
الرد الرسمي من خدمة Robokassa:
يمكنك عرض السلعة في المتجر مع وصف وسعر وقبول الدفع في البوت، ويمكنك إنشاء صفحة واحدة تحتوي على الوصف والسعر وبيانات الاتصال والإشارة إلى أن تسليم السلعة/تقديم الخدمة إلكتروني. يجب أن يكون لدينا ربط بالسلعة في المتجر أو بالموقع، لأننا لا نستطيع معرفة ما الذي تبيعه في بوتك وأي بوت هو بوتك.
لا ندرج رابط قناة تليغرام ضمن URL. وكذلك متطلبات محتوى الموقع: "يجب أن يكون الموقع عاملًا، بمحتوى مكتمل، وروابط داخلية تعمل.
يجب أن تكون السلع والخدمات على موقعك موصوفة بالتفصيل: يجب أن يشمل الوصف خصائص السلع والخدمات المعروضة، وخصائصها الاستهلاكية، والسعر الحالي.
يجب أن تحتوي صفحتك على معلومات محدثة: الهاتف، البريد الإلكتروني، قواعد إتمام الطلب ومواعيد تنفيذه، شروط الدفع والتسليم والإرجاع.
يتم النظر في كل موقع بشكل فردي.
Robokassa في تيليغرام
ربط البوت التجريبي RobokassaPaymentTestBot.
عند اختيار Connect Robokassa Test ينتقل المستخدم إلى البوت RobokassaPaymentTestBot.
يضغط المستخدم على زر /ابدأ.
يتلقى المستخدم ردًا من البوت: «أدخل معرّف المتجر».
يجب إدخال معرّف المتجر في خدمة Robokassa.
سيطلب البوت تأكيدًا يثبت ملكية المتجر عبر إرسال رسالة SMS إلى الرقم المذكور في المتجر: «تم إرسال رسالة SMS إلى الرقم *%%%%» حيث %%%% هي آخر 4 أرقام من رقم الهاتف
يدخل المستخدم رمزًا من 6 أرقام.
إذا نجح كل شيء فستظهر للمستخدم الرسالة: “لقد قمت بربط البوت @BotName بنجاح مع Robokassa. سيُعلمك @BotFather بالرمز الجديد.”
بعد ذلك يظهر في BotFather رمز دفع يمكن ربط المدفوعات به.
ربط البوت الحي RobokassaPaymentBot.
عند اختيار Connect Robokassa Live ينتقل المستخدم إلى البوت RobokassaPaymentBot،
يضغط المستخدم على زر /ابدأ.
يتلقى المستخدم ردًا من البوت: «أدخل معرّف المتجر».
يجب إدخال معرّف المتجر في خدمة Robokassa.
سيطلب البوت تأكيدًا يثبت ملكية المتجر عبر إرسال رسالة SMS إلى الرقم المذكور في المتجر: «تم إرسال رسالة SMS إلى الرقم *%%%%»، حيث %%%% هي آخر 4 أرقام من رقم الهاتف
يدخل المستخدم رمزًا من 6 أرقام.
إذا نجح كل شيء فستظهر للمستخدم الرسالة: “لقد قمت بربط البوت @BotName بنجاح مع Robokassa. سيُعلمك @BotFather بالرمز الجديد.”
بعد ذلك يظهر في BotFather رمز دفع يمكن ربط المدفوعات به.
معالجة نتائج الدفع مماثلة لما هو موصوف هنا
آخر تحديث