تعتمد Google رسميًا واجهة برمجة تطبيقات طلب الدفع، مما يتيح لك الدفع باستخدام تطبيقات الطرف الثالث في Chrome

من المقرر الإعلان عنه خلال Google I/O، حيث تتبنى Google رسميًا واجهة برمجة تطبيقات طلب الدفع في Chrome، مما يسمح لك بالدفع باستخدام تطبيقات الطرف الثالث.

من المقرر الإعلان عنها في مؤتمر مطوري Google I/O القادم، ستحدث واجهة برمجة تطبيقات طلب الدفع ثورة في الطريقة التي نجري بها عمليات الدفع عبر الإنترنت على أجهزتنا المحمولة. لن يضطر مستخدمو Google Chrome على Android بعد الآن إلى إجراء عمليات دفع مطولة تتضمن إدخال معلومات بطاقة الائتمان الخاصة بهم أو تسجيل الدخول إلى PayPal. وبدلاً من ذلك، تتيح واجهة برمجة التطبيقات (API) لمطوري مواقع الويب إرسال الأغراض إلى تطبيقات الدفع المدعومة التابعة لجهات خارجية من أجل إجراء الدفع. على عكس العديد من مفاجآت أخرى التي تخبئها Google لنا، يوجد بالفعل الكثير من المعلومات العامة حول كيفية عمل هذه الطريقة الجديدة للدفع بالضبط. لقد بحثنا في كل هذه المستندات لنقدم لك بعض المعلومات قبل إعلان Google الرسمي هذا الأسبوع.


جعل عمليات الدفع أسهل باستخدام واجهة برمجة تطبيقات طلب الدفع

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

ترغب في البحث عن الصفقات، يمكن أن يصبح هذا مزعجًا بسرعة كبيرة.

صفحات الخروج التجارية المختلفة عبر الإنترنت

لدى العديد من مؤسسات بطاقات الائتمان والمؤسسات المصرفية تطبيقات متاحة على متجر Google Play. وبما أننا نستخدم هذه التطبيقات بالفعل لمراقبة حساباتنا المالية، فلماذا لا يمكننا استخدامها لمصادقة المدفوعات؟ هذه هي بالضبط عملية التفكير وراء مجموعة عمل مدفوعات الويب، المكونة من أعضاء مثل Google، وMozilla، وSamsung، وAlibaba، وMicrosoft، والمزيد. هذه المجموعة تعمل خلف الكواليس من أجل تقديم واجهة برمجة تطبيقات جديدة تسمى واجهة برمجة تطبيقات طلب الدفع ومعيار جديد عبر الإنترنت محدد في مقترح بيان الدفع لتسهيل الاتصال بين متصفحات الويب والتجار عبر الإنترنت حتى يتمكن التاجر عبر الإنترنت من استخدام التطبيقات الموجودة على جهاز المستخدم النهائي للتعامل مع المدفوعات.

كيف تعمل

ومن أجل إنجاز هذه المهمة، متصفحات الويب يجب أن يدعم واجهة برمجة تطبيقات طلب الدفع، يحتاج التجار عبر الإنترنت إلى دعم واجهة برمجة التطبيقات (API) من خلال تنفيذ ما يسمى معرف طريقة الدفع، وتطبيقات الأندرويد بحاجة إلى تنفيذ خدمات جديدة. دون الخوض في الكثير من التفاصيل، سأشرح بإيجاز ما يحدث أثناء عملية الدفع.

بافتراض أن متصفح الويب الخاص بك يدعم واجهة برمجة تطبيقات طلب الدفع (المزيد حول ذلك لاحقًا)، فعندما تنتقل إلى صفحة الدفع الخاصة بتاجر عبر الإنترنت، سيكون لديك خيار الدفع باستخدام أحد معالجات الدفع المدعومة (بطاقة الائتمان/PayPal/إلخ.) عندما تنقر على الزر لإجراء عملية شراء (كما هو الحال في نموذج الصفحة أدناه الذي يستخدمه موظفو Google لإجراء عملية شراء) اختبار واجهة برمجة تطبيقات طلب الدفع)، ثم تقوم واجهة برمجة تطبيقات طلب الدفع بإرسال نية Android إلى تطبيق الدفع المدعوم حتى يتمكن هذا التطبيق من مصادقة المستخدم قسط.

 لنفترض أن تطبيق بطاقة الائتمان الافتراضي الخاص بنا المثبت على جهاز Android افتراضي يسمى Bob Pay. سيضيف Bob Pay ما يلي إلى ملف AndroidManifest.xml الخاص به:

"font-weight: 400;"><manifestspan><spanstyle="font-weight: 400;">package=span><spanstyle="font-weight: 400;">"com.bobpay.app"span><spanstyle="font-weight: 400;">>span>
"font-weight: 400;"> </span>span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">".IsReadyToPayService"span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">android: enabled=span><spanstyle="font-weight: 400;">"true"span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">android: exported=span><spanstyle="font-weight: 400;">"true"span><spanstyle="font-weight: 400;">>span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;"><intent-filter>span>
"font-weight: 400;"> </span>span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">"org.chromium.intent.action.IS_READY_TO_PAY"span><spanstyle="font-weight: 400;">/></span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">intent-filter>span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">service>span>
"font-weight: 400;"> </span>span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">".PaymentActivity"span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">android: exported=span><spanstyle="font-weight: 400;">"true"span><spanstyle="font-weight: 400;">>span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;"><intent-filter>span>
"font-weight: 400;"> </span>span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">"org.chromium.intent.action.PAY"span><spanstyle="font-weight: 400;">/></span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">intent-filter>span>
"font-weight: 400;"> </span>span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">"org.chromium.default_payment_method_name"span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">android: value=span><spanstyle="font-weight: 400;">"https://bobpay.com/put/optional/path/here"span><spanstyle="font-weight: 400;">/>span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">activity>span>
<spanstyle="font-weight: 400;">manifest>span>

عندما يتم إرسال نية تستهدف تطبيق بطاقة الائتمان الافتراضية هذا، يتم بدء تشغيل خدمة هذا التطبيق. جميع المعلومات اللازمة لتطبيق Bob Pay الافتراضي الخاص بنا لفهم ما يتم شراؤه ومن أي بائع ومقدار الأموال الموجودة في إضافات النية:

Bundle extras = new Bundle();
extras.putString("key", "value");
intent.putExtras(extras);

بمجرد قيام Bob Pay بالتحقق من صحة الدفع، تتلقى واجهة برمجة تطبيقات طلب الدفع هذه المعلومات في غرض آخر يرسله Bob Pay:

Intent result = new Intent();
Bundle extras = new Bundle();
extras.putString("key", "value");
result.putExtras(extras);
setResult(RESULT_OK, result); // Changeto RESULT_CANCELED on failure.
finish(); // Close the payment activity.

ولكن كيف يعرف التاجر عبر الإنترنت الذي يدعم Bob Pay أن Bob Pay المثبت على هاتفك هو Bob Pay الحقيقي، وليس بعض البرامج الضارة التي تهدف إلى ارتكاب الاحتيال؟ ويتم تحقيق ذلك عن طريق إنشاء ملف JSON لمعرف بيان طريقة الدفع الذي يمكن للمتصفح قراءته آليًا.

{
<span ><span >"span>name<span >"span>span><span >:span><span ><span >"span>BobPay - World's Greatest Payment Method<span >"span>span>,
<span ><span >"span>description<span >"span>span><span >:span><span ><span >"span>This payment method changes lives<span >"span>span>,
<span ><span >"span>short_name<span >"span>span><span >:span><span ><span >"span>BobPay<span >"span>span>,
<span ><span >"span>icons<span >"span>span><span >:span> [{
<span ><span >"span>src<span >"span>span><span >:span><span ><span >"span>icon/lowres.webp<span >"span>span>,
<span ><span >"span>sizes<span >"span>span><span >:span><span ><span >"span>64x64<span >"span>span>,
<span ><span >"span>type<span >"span>span><span >:span><span ><span >"span>image/webp<span >"span>span>
},{
<span ><span >"span>src<span >"span>span><span >:span><span ><span >"span>icon/lowres.png<span >"span>span>,
<span ><span >"span>sizes<span >"span>span><span >:span><span ><span >"span>64x64<span >"span>span>
}, {
<span ><span >"span>src<span >"span>span><span >:span><span ><span >"span>icon/hd_hi<span >"span>span>,
<span ><span >"span>sizes<span >"span>span><span >:span><span ><span >"span>128x128<span >"span>span>
}],
<span ><span >"span>serviceworker<span >"span>span><span >:span> {
<span ><span >"span>src<span >"span>span><span >:span><span ><span >"span>payment-sw.js<span >"span>span>,
<span ><span >"span>scope<span >"span>span><span >:span><span ><span >"span>/pay<span >"span>span>,
<span ><span >"span>use_cache<span >"span>span><span >:span><span >falsespan>
}
<span ><span >"span>related_applications<span >"span>span><span >:span> [
{
<span ><span >"span>platform<span >"span>span><span >:span><span ><span >"span>play<span >"span>span>,
<span ><span >"span>url<span >"span>span><span >:span><span ><span >"span>https://play.google.com/store/apps/details? id=com.bobpay<span >"span>span>,
<span ><span >"span>fingerprints<span >"span>span><span >:span> [{
<span ><span >"span>type<span >"span>span><span >:span><span ><span >"span>sha256_cert<span >"span>span>,
<span ><span >"span>value<span >"span>span><span >:span><span ><span >"span>59:5C: 88:65:FF: C4:E8:20:CF: F7:3E: C8...<span >"span>span>
}], <span >//newspan>
<span ><span >"span>min_version<span >"span>span><span >:span><span ><span >"span>1<span >"span>span>, <span >// newspan>
<span ><span >"span>id<span >"span>span><span >:span><span ><span >"span>com.example.app1<span >"span>span>
}, {
<span ><span >"span>platform<span >"span>span><span >:span><span ><span >"span>itunes<span >"span>span>,
<span ><span >"span>url<span >"span>span><span >:span><span ><span >"span>https://itunes.apple.com/app/example-app1/id123456789<span >"span>span>,
}
]
}

يوجد داخل ملف JSON هذا توقيع يُستخدم للتحقق من سلامة التطبيق المثبت على جهازك والذي يدعي أنه حقيقي بوب باي. إذا فشل التحقق من التوقيع، فلن يتم قبول Bob Pay كمعالج للدفع.

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

مخطط انسيابي للدفع. مصدر: رسلان سولوماخين

كما ترون، هناك الكثير من الخطوات المتبعة هنا. سيتم التعامل مع كل هذه التغييرات من قبل مطوري مواقع التجارة عبر الإنترنت والخدمات المصرفية/الائتمانية التي تعمل بنظام Android تطبيقات البطاقة ومطوري متصفحات الويب لذلك من المحتمل ألا يكون لدى المستخدم النهائي أي فكرة عما يحدث بالفعل هنا. ولكن اعلم فقط أن النتيجة النهائية هي أن مدفوعاتك عبر الإنترنت ستصبح أسهل كثيرًا إذا شاركت جميع الأطراف تنفيذ هذه التغييرات، والتي نأمل أن تصبح كذلك بفضل جهود توحيد مجموعة عمل المدفوعات عبر الويب الواقع.


التاريخ وراء واجهة برمجة تطبيقات طلب الدفع

تأسس اتحاد شبكة الويب العالمية (المختصر W3C) في عام 1994 من أجل تطوير منصة المعايير التي من شأنها أن تسمح لجميع مواقع الويب ومستخدميها بالاستفادة من التوافق و تناسق. من أجل معالجة التجزئة المتزايدة للمدفوعات عبر الإنترنت، قامت W3C بتشكيل مجموعة عمل مدفوعات الويب في عام 2015 من أجل توحيد بعض جوانب تدفق الدفع عبر الإنترنت. بعد ذلك، بدأ العمل بين جميع أعضاء مجموعة عمل المدفوعات عبر الإنترنت من أجل إيجاد طرق لتحسين الطريقة التي تعمل بها أنظمة الدفع عبر الإنترنت الحالية.

توصلت المجموعة إلى واجهة برمجة تطبيقات طلب الدفع، مجموعة من الأساليب التي تسمح لمواقع الويب باستخدام طرق الدفع دون دمج طريقة الدفع في موقعها. تحتاج متصفحات الويب إلى التحديث لدعم واجهة برمجة التطبيقات (API).ولكن الجزء الأصعب ينبع من الحصول على التجار عبر الإنترنت على متن الطائرة. وتحقيقا لهذه الغاية، أعضاء الفريق العامل جاء مع الاقتراح حول كيفية قيام مواقع الويب بإنشاء معرفات لتحديد طرق الدفع التي تدعمها. يتضمن ذلك إنشاء ملف بيان الدفع JSON الذي يمكن قراءته آليًا (معرف طريقة الدفع) - يجب أن يقرأه المتصفح حتى يتم يمكن لواجهة برمجة تطبيقات طلب الدفع تحديد ما إذا كان المستخدم لديه واحد أو أكثر من التطبيقات المتوافقة مع طرق الدفع المدعومة المحددة في JSON ملف. هذا التنفيذ مستوحى من Google بروتوكول روابط الأصول الرقمية وهذه هي الطريقة التي تعيد بها مواقع الويب توجيهك من موقع الهاتف المحمول الخاص بها إلى تطبيقها إذا كنت قد قمت بتثبيته بالفعل.

بعد الكثير من العمل الداخلي ذهابًا وإيابًا من قبل المجموعة، في نهاية المطاف في 25 نوفمبر 2016، قدم زاك كوخ من Google ودابنغ ليو من علي بابا طلبًا المسودة الأولية لبيان طريقة الدفع من أجل بدء عملية توحيد معرفات طرق الدفع التي يمكن لجميع الأعضاء الموافقة عليها. وفي نهاية المطاف، أعضاء الفريق العامل التقيت شخصيًا في شيكاغو في الفترة من 23 إلى 24 مارس من أجل تجزئة واجهة برمجة تطبيقات طلب الدفع واقتراح بيان الدفع والمزيد. الفريق العامل تم التصويت لاعتماده رسميًا نسخة جديدة من مقترح بيان الدفع (الإصدار 2)، وهو ما نقف عليه اليوم.


دعم واجهة برمجة تطبيقات طلب الدفع

في العاشر من مايو، أصبح الدعم لتطبيقات الدفع على Android التابعة لجهات خارجية الآن ممكّن افتراضيًا في Chromium منذ أن تمت الموافقة على المتطلبات الأساسية لبيان الدفع عبر الويب في فرع blink-dev (Blink هو اسم محرك العرض الذي يستخدمه Chrome). لاحظ أن هذه الميزة كانت قيد الاختبار في Chrome منذ أشهر، ولكن يبدو أن المجموعة جاهزة للمضي قدمًا في هذا الأمر مؤخرًا فقط. سيتم شحن هذه الميزة جميع الأنظمة الأساسية/إصدارات Chromium باستثناء Android Webview (التي لا تحتوي على واجهة مستخدم وبالتالي لا يمكنها تنفيذ واجهة برمجة تطبيقات طلب الدفع).

فقط بعد أشهر من العمل خلف الكواليس، سنرى الآن فوائد ما كانت تعمل عليه مجموعة عمل مدفوعات الويب. في Google I/O، من المرجح أن تعلن الشركة أن Google Chrome سيتم شحنه مع تمكين واجهة برمجة تطبيقات طلب الدفع، وقد ذكر زاك كوخ في وقت سابق سيلقي حديثه يوم الخميس حول كيف يمكن لمقدمي خدمات الدفع من الطرف الثالث دعم واجهة برمجة التطبيقات (API) من خلال إنشاء بيان الدفع JSON ملفات.

تعمل المتصفحات الأخرى أيضًا على إضافة دعم لواجهة برمجة تطبيقات طلب الدفع. موزيلا وقد أعربت شركة Samsung عن دعمها العام لإضافة واجهة برمجة التطبيقات وفقًا لموظف جوجل رسلان سولوماخين لا توجد معلومات حتى الآن عما إذا كان متصفح Microsoft Edge أو Safari من Apple سيضيف الدعم. يجب أن نلاحظ أن مايكروسوفت يتم بالفعل اختبار واجهة برمجة تطبيقات طلب الدفع لتطبيقات النظام الأساسي العالمي لـ Windows (UWP). وفي وقد قام بنك واحد على الأقل بتنفيذ الدعم بالفعل (مونزو) في التطبيق الخاص بهم.

أما بالنسبة للتجار الآخرين عبر الإنترنت وتطبيقات Android التي ستدعم مواصفات الدفع الجديدة هذه، وفقًا لموظف Google Zach Koch:

عدد "موفري طرق الدفع" الذين سيحتاجون إلى تنفيذ هذه المواصفات صغير جدًا (المئات)، ونحن الآن نعمل بشكل مباشر فقط مع مجموعة فرعية صغيرة جدًا من تلك (<5) للاختبار المياه. إذا واجهنا موقفًا احتجنا فيه إلى تغيير أحد الحقول، فأعتقد أنه يمكننا القيام بذلك بسهولة ودون الكثير من مخاطر التشغيل المتداخل (إن وجدت). يدرك جميع شركائنا الأوائل أن هذه المواصفات يمكن أن تتغير وهم موافقون على ذلك.

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

وبالتالي، يمكننا أن نرى أنه على الرغم من أن Google رائدة في دعم واجهة برمجة تطبيقات طلب الدفع، سوف يستغرق الأمر بعض الوقت قبل أن نرى هذه الطريقة الجديدة للدفع تجد طريقها إلى جميع المتصفحاتوجميع التجار عبر الإنترنت، وجميع التطبيقات. أنا شخصيًا متحمس جدًا لرؤية واجهة برمجة تطبيقات طلب الدفع تصبح مدعومة من Google. لقد تم تجزئة النظام البيئي للتجارة الإلكترونية دون داع مع طرق الدفع لسنوات، وإذا كانت واجهة برمجة التطبيقات الجديدة هذه ستفعل ذلك يعني أنني لن أضطر مطلقًا إلى إدخال معلومات بطاقتي الائتمانية يدويًا في موقع ويب مرة أخرى، فأنا أؤيد ذلك تمامًا هو - هي.


ما رأيك في هذا المعيار القادم؟ صوت في التعليقات وأخبرنا برأيك!