
في بداية عام 2017 ، قمنا ، فريق تطوير البرمجيات في QIWI Terminals ، بجمع رغبات أقسام الشركة - لقد تعلمنا ما هي المهام العالمية التي يرغب زملاؤنا في حلها بمساعدتنا ، حتى تصبح الحياة أسهل.
لقد سررت بشدة بطلب خدمة العملاء الذي يعمل مع المكالمات والمطالبات من دافعي:
"توجد مشكلة: يقوم العميل بالدفع في المحطة الطرفية ، لكنه لا يزال لا يصل إلى المعالجة - إما أن المحطة قد تتجمد ، أو أن الإنترنت يعمل من خلال مودم gsm. واتضح أن العميل لديه شيك ، ولكن لا يوجد دفع في النظام. سيكون من اللطيف في مثل هذه الحالات معرفة كيفية توصيل المدفوعات إلى QIWI.
هناك أيضًا مجموعة من العملاء القلقين الذين ، فور إجراء الدفع ، يتصلون برقم مركز الاتصال للتأكد من أن كل شيء على ما يرام معه. سيكون من الرائع قطع العظام لمثل هذه المكالمات ".لذلك كانت لدينا مهمة معقدة: لمعرفة كيفية إنشاء دفعة في حالة فشل الاتصال مع المحطة الطرفية وتقليل عدد المكالمات الواردة من العملاء من خلال اختراع أداة خدمة ذاتية للتحقق من حالة الدفع. القضية واضحة. بدأوا في البحث عن حل مناسب للعميل وبدون مخاطر أمنية.
عرض العميل ، وفقًا للتقاليد ، خياره - للطباعة على الإيصال سلسلة من الأحرف التي يمكن أن يدفعها المشغل إلى المشغل ، وهو بدوره ، ليفهم ما إذا كان الدفع لدينا أم لا ، أو تصفية الاحتيال أو تنفيذ العملية يدويًا.
كان مفهوم الفكرة واضحًا ، ولكنه غير قابل للتحقيق ، لذلك ذهبنا إلى أبعد من ذلك بقليل: قررنا تضمين بيانات الدفع في رمز الاستجابة السريعة ، وطباعتها على الإيصال ، ونسخ QIWI Terminal على الشاشة للتأكد من دقتها. من خلال مسح رمز الاستجابة السريعة باستخدام كاميرا جهازه ، يمكن للعميل معرفة حالة العملية. وفي حالة عدم الدفع في QIWI ، يقوم النظام بإنشائه تلقائيًا. وبالتالي ، لا يكتشف العميل ما إذا كانت الأموال قد وصلت فحسب ، بل يديرها أيضًا بشكل مستقل ، بغض النظر عن حالة الجهاز.
للوهلة الأولى ، كان الحل واضحًا: خذ طلبًا موجودًا بالدفع ، ولفه في رمز الاستجابة السريعة ، واكتب صفحة ويب تحتوي على معلومات المعاملات وطلبات الخدمات الصغيرة بين الجهاز الطرفي والمعالجة والويب. كان من المفترض أن يعمل المشروع على الطرق الحالية للمصادقة الطرفية واستخدام طرق الدفع الحالية في المعالجة.
جاءت الفكرة على الفور ، وكشفت عن الإمكانات الإبداعية للفريق. بدأنا بالتدفق والتخلص من الخيارات الإضافية حتى وضع شعار وشعار وحتى الإعلان في رمز الاستجابة السريعة بالإضافة إلى بيانات الدفع:
مشروع لاثنين من العدو السريع ، لا أكثر. كان هناك.
الإحباط الأول
أخذنا دفعة حالية وشكلنا رمز QR عليها:
ونتيجة لذلك ، لم يتمكن آخر iPhone7 في ذلك الوقت من قراءته. على الشيك ، بالكاد يصلح رمز الاستجابة السريعة ، الذي يتكون فقط من بيانات الدفع والتوقيع ، على نصف ورقة مقاس A4. سطر طلب الدفع طويل جدًا. كان هذا الحزن الأول.
كان من الضروري حل مشكلتين رئيسيتين:
- تقليل عدد الأحرف في طلب الدفع ، أي التوصل إلى حل يمكننا من خلاله الابتعاد عن طلب XML الحالي إلى حل أكثر إحكاما ؛
- اختر خوارزمية تشفير وطول مفتاح يوفر قوة تشفير عالية وموثوقية مع حجم توقيع أصغر.
كان معيار تقييم العدد الأمثل من الأحرف لرمز الاستجابة السريعة واحدًا - يجب قراءته بواسطة كاميرات معظم الهواتف المحمولة.
في اجتماعين عمل ، تم التوصل إلى حل مع ذلك:
- بدلاً من طلب XML ، قررنا استخدام طلب الحصول مع معلمات الدفع والفواصل بينها ؛
- بنى توقيعًا على المنحنيات الناقصية لتقصير الطول.
كانت ميزة استخدام طلب الحصول على أن كاميرات الهواتف المحمولة أو البرامج الخاصة ، التي ترى الرابط في رمز الاستجابة السريعة ، تفتحه على الفور في المتصفح ، مما جعل من الممكن إجراء دفعة في إجراء واحد. لتقليل حجم طلب الحصول ، كان علينا استبدال اسم المعلمة بمحددات.
نتيجة لمجموعة الإجراءات ، تم تخفيض طلب الدفع من حوالي 1100 إلى 200 حرف. بالإضافة إلى ذلك ، كان عليّ تطبيق أدنى مستوى لتصحيح الخطأ لرمز QR - L.
للتنفيذ ، كان مطلوبا تطوير مكونات في النظام:
- إنشاء واجهة برمجة تطبيقات جديدة لإجراء الدفعات من خلال رمز الاستجابة السريعة ؛
- إدخال آلية جديدة للعمل مع مفاتيح التشفير بين المحطة والمعالجة ؛
- تنفيذ خدمة متناهية الصغر تتوقف عليها وظيفة طلبات الوكلاء ، والتحقق من سلامة البيانات المستلمة ، وكذلك وظيفة حظر الطلبات المشبوهة وجمع إحصائيات العمليات ؛
- تطوير صفحة ويب لعرض معلومات الدفع ؛
- تطوير نظام الحدود والشيكات لقناة دفع جديدة.
إلى مخطط العمل الحالي:

خططنا لإضافة بديل:

في سياق المشروع ، قد يبدو الأمر صغيراً ، ولكنه يتطلب حل المشكلات ، الأمر الذي استغرق في الواقع الكثير من الوقت ، مما أدى إلى تأجيل تاريخ الإطلاق.
جاء بحث UX ، أو العمل من حيث لم ينتظروا
أردت أن أفعل كل شيء مثل ما يفعله الأشخاص ، لذا فقد أحضروا متخصصين في تجربة المستخدم لتنفيذ المشروع لحل المشكلات:
- في أي جزء من شاشة QIWI Terminal لوضع رمز الاستجابة السريعة وكيفية شرح فائدته للعميل؟
- مكان وضع رمز الاستجابة السريعة على الشيك وكيف يشق تفسيرات مماثلة؟
- كيفية إنشاء تخطيط لصفحة ويب بحالة الدفع ، بحيث تكون واضحة في أدلة الشركة؟
من الواضح أنه بالنسبة للجزء المتقدم من العملاء ، لا يلزم تقديم تفسيرات إضافية حول رمز الاستجابة السريعة ، بل يحتاجون فقط إلى الإشارة إلى النتيجة. لكننا أردنا تغطية ذلك الجزء من العملاء الذين يعد رمز الاستجابة السريعة اختصارًا سحريًا أو مجرد "مربع أسود". إنهم هم ، في الواقع ، يقطعون خط مركز الاتصال.
لجعلها جميلة ومفهومة ، تم إجراء مقابلة داخل مجموعة التركيز التي تهمنا مع نتائج غير متوقعة ...
الإيجاز أقرب إلى الادخار
اتضح أنه مخيف - لم يكن الجمهور الذي نحتاجه يفهم دائمًا معنى كلمة "مسح" ومشتقاتها. لذلك ، تم التخلي عن الصياغة الأصلية "مسح واكتشاف الحالة". كان الحل هو القدرة التقنية على إرسال صورة لرمز الاستجابة السريعة عبر البريد الإلكتروني. وكان من الضروري أيضًا أن نقول ذلك باختصار ووضوح ، لأن شريط الاختيار هو المواد المستهلكة لأصحاب المحطات الطرفية واهتمامنا بأعمال هؤلاء الناس هو اقتصادها. ونتيجة لذلك ، يبدو الشيك الآن كما يلي:
أما بالنسبة لعرض رمز الاستجابة السريعة على شاشة الوحدة الطرفية ، فقد تم وضعه في الصفحة الأخيرة للدفع - وهو الأحدث في سيناريو الدفع. يتم عرضه في وقت طباعة الشيك وهو في الأساس نسخة إلكترونية من رمز QR المطبوع.
البريد الإلكتروني في كل مكان
فيما يتعلق بظهور قناة جديدة لمعالجة رموز QR في شكل بريد إلكتروني ، أصبح من الضروري تطوير ميكانيكا مع وظيفة التعرف على رموز QR المضمنة في الحروف وإنشاء استجابة بحالة الدفع.
تم أخذ وظيفة التعرف على رموز QR في الخدمة الصغيرة. عند التنفيذ الأولي ، كان معدل الاعتراف حوالي 65٪ في العينة المعروضة من الصور الفوتوغرافية. حاولنا أن نلعب مع تغير اللون وزيادة التباين - وهذا أعطى تقريبًا + 20٪ اعترافًا ناجحًا.
كان الكرز على الكعكة في مهمة التعرف على صور رمز الاستجابة السريعة هو إدخال "الذكاء الطبيعي" للحالات الصعبة غير المعروفة - بدأ إنشاء التطبيقات ومعالجتها في الوضع اليدوي:
التقنية ليست تافهة
وبطبيعة الحال ، كانت التطورات الرئيسية في هذا المشروع تتعلق بالخدمات الصغيرة نفسها والبرامج الطرفية.
QIWI تنتقل بنشاط إلى بنية الخدمات الصغيرة حتى لا تلمس المحرك الضخم. تسمح لك Microservice بإجراء تغييرات سريعة على المشاريع وإجراء الاختبارات وإطلاق الإصدارات. لذلك ، في غضون شهرين كتبنا الخاصة بنا. علقنا عليها جميع التطورات الجديدة الرئيسية التي لا يمكن تحقيقها إلا:
- طلبات الوكيل عن طريق تحليل وتحليل طلبات الحصول الواردة ، وتحويلها إلى XML لمعالجتها ،
- وظائف للحد من الطلبات الواردة من المطاريف ،
- وظيفة التعرف على رمز الاستجابة السريعة ،
- جمع الإحصاءات لمزيد من التحليل.
بالإضافة إلى تنفيذ آلية جديدة للعمل مع مفاتيح التشفير ، تطرقت التحسينات النهائية إلى تطبيق تقنية جديدة لإيصالات الطباعة.
تم أخذ وظيفة تكوينها من النواة الرئيسية للبرنامج في المكون الإضافي. يمكننا الآن تنفيذ التغييرات على الشيك على الفور ، دون التطرق إلى تشغيل المحطة ككل. إن مهمة طباعة رمز الاستجابة السريعة ، والتي تبدو للوهلة الأولى ، بسيطة للغاية وتنطوي على طباعة صورة على الشيك ، ليست بهذه السهولة.
وذلك لأن شبكة أصحاب المحطات لدينا لديها حوالي 20 طرازًا من مجموعة متنوعة من الطابعات ، ونطبع حوالي 40 نوعًا من الإيصالات. عندما بدأوا في التنفيذ ، ظهر الكثير من الفروق الدقيقة: إما أن خطوط وموقع الكائنات في قالب الاختيار بدأت بالطفو عند إضافة الصورة ، ثم كانت بعض الأوامر حساسة للموقع ، ثم تحول فاصل الأسطر إلى علامة تبويب.
بدأنا في الاختبار ، وأدركنا الحاجة إلى حل وسط - كان يجب استبعاد بعض طرز الطابعة ، لأنه عند اختبار جميع التكوينات ، ظهر عدد هائل من الحالات.
للاختبارات ، قررنا اختيار 6 نماذج رئيسية تغطي 91٪ من شبكة الوكيل. وبالطبع ، في وقت إجراء اختبارات عشوائية في بيئة قتالية ، اتضح أنه على الطابعات القديمة التي غطت حوالي 5 ٪ من شبكة الوكيل تم اكتشاف مشاكل في إيصالات الطباعة. كانت النماذج قديمة جدًا لدرجة أنه لم يعد من الممكن شراؤها حتى في السوق. كان علي البحث مع الشركاء. يغطي المشروع الآن 96٪ من الشبكة. بالفعل أقرب قليلا إلى المثالية :)
ليس شيك واحد
بالتوازي مع وضع المعلومات حول رمز الاستجابة السريعة على الشيك والصفحة الأخيرة للدفع ، تم طرح مهمة أخرى - جلب هذه الصفحة إلى نظرة عامة لجميع المشاريع النهائية:
"فيما يتعلق بصفحات إكمال الدفع في QIWI Terminals ، كان كل شيء قديمًا تمامًا: الإعلان واللافتات وإرسال الإيصالات الإلكترونية. من خمس صفحات ، قام الرفاق بعمل واحد شامل لجميع المدفوعات ". - كبير المبرمجين في الفريق.
الآن يتم استخدام هذه الصفحة العالمية في تفسيرات مختلفة ، دون كسر قاعدة بناء السيناريو ، وإغلاق الديون الكارمية لفريق التطوير.
وهكذا ، تم حل مشكلة عشر سنوات مضت ، والتي لم تصل إليها الأيدي في كل مرة. كانت هناك عدة مهام طويلة الأمد.
"أين المال يا زين؟" أو ما في الخلاصة
استغرق المشروع ، الذي تم تصميمه لسباقين ، ستة أشهر ، مما أثر على موارد 10 موظفين وعلى حافة وكالة الاستعانة بمصادر خارجية.
ونتيجة لذلك ، بعد تنفيذ المشروع على 85٪ من الشبكة الطرفية ، فاجأنا أنفسنا وخدمة العملاء - العملاء. في اليوم الثالث من رمز الاستجابة السريعة ، اعتقد الزملاء أن خطأ في النظام قد تسلل إليهم - إحصائيات حول عدد المكالمات إلى مركز الاتصال مع السؤال "أين دفعتي؟" انخفض بالفعل بنسبة 20 ٪. بدأ العملاء في مسح رمز QR ضوئيًا وإرسال إيصالات الصور عبر البريد الإلكتروني ، ومعرفة الحالة وإجراء الدفع بأنفسهم. وهكذا للشهر الثاني. يجب أن أقول أن العملاء بدأوا يفهمون ما هو "المربع الأسود" وكيف أنه مفيد.
كان المشروع الذي يحتوي على رمز الاستجابة السريعة محبوبًا من قبل جميع الأشخاص الذين تم إخبارهم عنه - كان تآزرًا للمصالح: من ناحية ، قاموا بتبسيط حياة العميل ، ومن ناحية أخرى ، قاموا بحل مشكلة تقنية غير قياسية. إن التحقق من حالة الدفع وإجراءها في قطعة من الورق عن طريق مسح رمز الاستجابة السريعة لـ QIWI هو أمر جديد. كان من الرائع أخذ تقنيات بسيطة ومعروفة يمكن من خلالها إنشاء مشروع مفيد. بشكل عام ، لم يضخ المشروع المهارات فحسب ، بل حسّن أيضًا التواصل داخل الفريق نفسه. وهذا تقريبًا هو العنصر الرئيسي في الكارما.