واحدة من أهم القضايا عند العمل مع خدمات مزود خدمة IaaS هي سهولة الدفع. منذ اليوم الأول من بداية مشروعنا ، حاولنا تبسيط عملية إجراء الدفعات باستخدام البطاقات المصرفية ومواصلة تحسين هذه الآلية. قررنا اليوم التحدث عن المكان الذي بدأنا فيه وتبادل خبرتنا.
/ فليكر / محمد عشيق / CC BY-SAالخلفية
نحن نقدم خدمات
IaaS في
1cloud منذ عام 2012. خلال هذا الوقت ، تمكنا
من العمل مع عدد كبير من بوابات الدفع. كان واحدا من أول المال على الانترنت. لقد عملنا معه لمدة عامين ، ثم بدأنا في توصيل الخدمات البديلة في حالة وجود صعوبات تقنية محتملة.
كبديل ، تم النظر في PayPal و Robocassa. نتيجة لذلك ، تم توصيل كلا النظامين ، على الرغم من
وجود بعض الصعوبات في هذا . في الحالة الأولى ، لاستيراد معرف العميل في نموذج الدفع ، اضطررنا إلى ضبط قواعد CSS وتعديل العناصر القياسية في صفحة الويب. في الموقف مع Robocassa ، لم يتطابق عدد من الطلبات في API مع الوصف الخاص به ، ولكن بمساعدة الدعم الفني ، تم حل الموقف أيضًا. لم نتوقف عن هذه القرارات ونظرنا في خيارات أخرى قدمها لنا الشركاء المحتملون.
لذلك ، بدأنا العمل مع نظام الدفع PayMaster (حل محله "Money Online") ، والذي قدم لنا شروطًا مواتية بشأن العمولة و API مريحة. لفترة طويلة ، كانت بوابة الدفع هذه بمثابة البوابة الرئيسية. ومع ذلك ، قررنا مؤخرًا إعادة تصميم قابلية استخدام خدماتنا وتبسيط عملية الدفع مقابل الخدمات عن طريق البطاقة المصرفية للأفراد. من أجل تلبية UX لمتطلباتنا ، قمنا بدمج بوابة دفع أخرى - CloudPayments.
كيف يمكنني تحسين عملية الدفع UX؟
نحن نعمل على نموذج الدفع المسبق. يقوم العميل بتجديد حسابه في حسابه الشخصي ، ثم يتم خصم الأموال من هذا الحساب حيث يتم استهلاك خدمات IaaS (يتم خصمها كل عشر دقائق).
لتجديد الرصيد ببطاقة ائتمان ، في حالة PayMaster ، كان على العميل الدخول في عملية من أربع خطوات:
- أدخل مبلغ الدفع في النموذج في لوحة التحكم ، وانقر فوق الزر "الدفع" وانتقل إلى صفحة بوابة الدفع.
- أشر إلى الهاتف أو عنوان البريد الإلكتروني لتلقي الشيك وانقر فوق "متابعة".
- أدخل تفاصيل البطاقة واضغط على زر "الدفع" مرة أخرى.
- أشر إلى رمز تأكيد المعاملة الذي أرسله البنك كجزء من إجراء 3D Secure.
إخلاء المسئولية: تنطبق الخوارزمية الموضحة أعلاه على مدفوعات البطاقات المصرفية التي يقوم بها الأفراد. الكيانات القانونية تدفع مقابل خدمات موفر خدمة IaaS على الفواتير. مع تحسين قابليتها للاستخدام ، وضعنا اللمسات الأخيرة على آليات الفوترة التلقائية لهذه الفواتير ، لكننا لن ننظر إليها في إطار هذه المواد ، لأن الكيانات القانونية لا تتفاعل مع بوابة الدفع.
قررنا تبسيط عملية الدفع للمستخدمين وتحسين مظهر النماذج وسهولة استخدامها لملء بيانات البطاقة المصرفية بشكل عام. لهذا ، حددنا مهمتين لأنفسنا ، والتي سنناقشها أدناه.
المهمة 1: استبعد المقطع إلى صفحة بوابة الدفع
كما ذكرنا أعلاه ، عندما دفع المستخدم مقابل خدماتنا ، من أجل ملء تفاصيل البطاقة ، اضطر للذهاب إلى موقع بوابة الدفع. لذلك كان على الشخص الضغط على الكثير من أزرار التأكيد والانتظار لتحميل الصفحات بمعلومات حول تجديد الحساب.
في هذه الحالة ، نشأت مشكلة أخرى - بعد أن قام المستخدم بإيداع الأموال في الحساب ، بقي على صفحة بوابة الدفع حتى نقر على رابط خاص للعودة إلى 1cloud.ru. أدى ذلك إلى صعوبة العمل مع لوحة التحكم الخاصة بنا ، على سبيل المثال ، إذا أراد المستخدم ، بعد الدفع ، إضافة سعة إلى البنية الأساسية لتكنولوجيا المعلومات الخاصة به.
وقال سيرجي بلكين ، رئيس قسم التطوير في 1cloud.ru: "وفقًا للتحليلات ، اتبع عدد قليل من العملاء الرابط وعادوا إلى موقعنا على الإنترنت". - كان هذا جزئيًا بسبب حقيقة أن العميل اضطر إلى النقر على الرابط "العودة إلى المتجر عبر الإنترنت". هذا على الرغم من أن خدمتنا ليست متجرًا على الإنترنت. "
بالإضافة إلى ذلك ، أردنا تقليل عدد الحقول التي يملؤها المستخدم إلى الحد الأدنى ، مع ترك فقط تلك الحقول الضرورية حقًا للعملية. لإنجاز هذه المهمة ، اخترنا بوابة الدفع في CloudPayments ، والتي جذب موظفوها اهتمامنا في البداية بإجابات دعم فني سريعة وكاملة.
بالإضافة إلى ذلك ، كان لبوابة الدفع هذه مكتب تمثيلي في كازاخستان. جعل ذلك من الممكن تنفيذ طريقة دفع جديدة لخدمة الاستضافة
oblako.kz الخاصة
بنا . بخلاف ذلك ، ستخضع جميع عمليات النقل من كازاخستان إلى روسيا (أو العكس) إلى عمولة إضافية.
اقترح CloudPayments باستخدام برنامج
نصي chekout خاص. يتيح لك تطبيق نموذج الدفع مباشرةً في لوحة التحكم الخاصة بنا ونقل البيانات المكتملة إلى بوابة الدفع دون حفظها من جانبنا.
لتنفيذ البرنامج النصي ، اضطررنا إلى إجراء فحص أمان
PCI DSS في إحدى المؤسسات المعتمدة - وكان ذلك هو متطلبات CloudPayments. يُعد المسح الضوئي ضروريًا لتأكيد الامتثال الفني للمعيار واستبعاد إمكانية سرقة بيانات المستخدم أثناء ملء النماذج على الموقع.
تم إجراء تدقيق الامتثال PCI DSS بواسطة ARinteg. لقد أرسلنا لهم طلبًا أوضحنا فيه رغبة في الخضوع لمراجعة ، وملء استبيان وتحديد موعد للتحقق. من ناحية ARinteg ، يستغرق الإعداد للمسح حوالي نصف يوم (أي ، يمكنك المسح على الفور تقريبًا) ، لكننا استغرقنا أربعة إلى خمسة أيام إضافية لإعداد البنية التحتية لدينا بعناية.
استمر المسح حوالي 15 ساعة ، على الرغم من أن الفحص يستغرق عدة أيام. فحص أخصائي ARinteg SSL والحماية من طلبات الحقن ونقاط الضعف الأخرى على موقعنا.
لم نجتاز الاختبار الأولي ، وحصلنا على قائمة بالمشكلات التي تحتاج إلى إصلاح. كلهم كانوا غير مهمين ، على سبيل المثال ، كان هناك طريقة لاحقة تم استخدامها عندما قام المستخدم بتقييم إرشاداتنا خطوة بخطوة على الموقع. لقد أزلنا جميع التعليقات وكانت محاولة التدقيق الثانية ناجحة. بعد ذلك ، يمكننا الانتقال إلى تنفيذ البرنامج النصي chekout.
يتم تسجيل البرنامج النصي على موقعنا على الإنترنت ، ويقوم بجمع بيانات البطاقة من النموذج المحدد ويؤلف تشفيرًا منها للدفع عبر واجهة برمجة تطبيقات CloudPayments. يبدو مثل هذا:
this.createCryptogram = function () { var result = checkout.createCryptogramPacket(); if (result.success) {
يبدو نموذج إدخال بيانات البطاقة المصرفية كما يلي:

أثناء تنفيذ البرنامج النصي والنموذج ، تمكنا من تقليل عدد الحقول التي يملؤها المستخدم إلى الحد الأدنى. لقد تركوا فقط ما هو ضروري حقًا للعملية. على سبيل المثال ، تمت إزالة الحقول "الاسم الأول" و "الاسم الأخير". كما أوضح لنا ممثلو بوابة الدفع ، لا تتحقق البنوك من هذه البيانات (فقط رقم البطاقة وتاريخها و CVV مهمة) ، لذلك قررنا حذفها وتبسيط العملية برمتها.
بالإضافة إلى ذلك ، أوضحنا المعلومات حول
برنامج الخصم الخاص بنا: مع تجديد لمرة واحدة للحساب بمبلغ من 5 آلاف روبل ، يتم إضافة 10 ٪ منه في شكل مكافآت ، من 10000 روبل - 20 ٪ ، أكثر من 100000 روبل - 25 ٪. لقد أضفنا أيضًا القدرة على حفظ بيانات الخريطة للمستخدمين. يتم تخزين كل هذه المعلومات على جانب بوابة الدفع في CloudPayments في شكل مشفر.
المهمة 2: تحقيق الدفع التلقائي
هذا هو الدفع الذي يحدث تلقائيًا في بعض الحالات. في كثير من الأحيان يتم استخدام هذه الميزة عن طريق خدمات الاشتراك. ومع ذلك ، فإن معظم بوابات الدفع لا تقدم سوى الخيار عندما يحدث التجديد التلقائي في جدول (في تاريخ محدد). من المهم بالنسبة لنا أن تتاح الفرصة تلقائيًا لتجديد الحساب في أي وقت عندما ينفد العميل من الأموال على الحساب (بما أننا نعمل على الدفع المسبق). لذلك ، لتطبيق الدفع التلقائي ، استخدمنا الطريقة المستخدمة عند الدفع من بطاقة "تذكر" (باستخدام رمز مؤقت).
يعمل على النحو التالي: بعد أول عملية دفع ناجحة قام بها المستخدم ، تنشئ البوابة الرمز المميز لزوج بطاقة الخدمة وترسلها في استجابة إعادة النشر. يتم حفظ هذا الرمز المميز ، وعند الدفع المتكرر يتم نقله بالفعل ، وليس بيانات البطاقة. اتضح أننا نرسل طلبًا إلى البوابة ، حيث نشير إلى مفتاح API الخاص بنا (معرف أن الطلب جاء من 1cloud) ، الرمز المميز والمبلغ. تقوم البوابة بالتحقق مما إذا كان قد تم إنشاء مثل هذا الرمز المميز ، وإذا كان كل شيء على ما يرام ، فإنه يعالج عملية الدفع بالمبلغ المحدد.
في التاريخ الذي يكون فيه من الضروري إجراء الدفع التلقائي ، نحسب ديناميكيًا استنادًا إلى الاستهلاك الحالي للخدمات من قبل المستخدم والرصيد الموجود في الحساب. لنفترض أن العميل لديه ألف روبل في الميزانية العمومية ، وأنه استهلك روبلين على مدى آخر عشر دقائق. من الواضح أن التاريخ التقريبي للتصفير سيأتي في خمسمائة فواصل زمنية مدتها عشر دقائق - أي حوالي 34 يومًا. وبالتالي ، يمكننا إجراء دفعة تلقائية قبل أيام قليلة من نهاية الأموال. يختار العميل حجم الدفع التلقائي بشكل مستقل.
ما التالي
نحن الآن نختبر هذه الحلول ونقيّم نتائج التنفيذ. وفقًا للتصويت بين العملاء ، فإن معظمهم قابلون للتغيير. سوف ندرس بتعمق أكبر ردود الفعل حول النظام ، وتحليل البيانات ، وإذا لزم الأمر ، إجراء تعديلات.
ملاحظة: المواد الطازجة من مدونة الشركات لدينا: