Google офіційно використовує API запитів на оплату, що дозволяє вам оплачувати за допомогою програм сторонніх розробників у Chrome

Google офіційно використовує API запитів на оплату в Chrome, що дозволить вам оплачувати за допомогою програм сторонніх розробників.

Буде оголошено на майбутній конференції розробників Google I/O Payment Request API революціонізує спосіб здійснення онлайн-платежів на наших мобільних пристроях. Користувачам Google Chrome на Android більше не доведеться проходити довгі процедури оформлення замовлення, пов’язані з введенням даних кредитної картки або входом у PayPal. Натомість API дозволяє розробникам веб-сайтів надсилати наміри підтримуваним платіжним програмам сторонніх розробників, щоб здійснити платіж. На відміну від багатьох інші сюрпризи які Google підготував для нас, вже є маса загальнодоступної інформації про те, як саме працюватиме цей новий спосіб оплати. Ми занурилися в усі ці документи, щоб надати вам деяку інформацію до офіційного оголошення Google цього тижня.


Спрощення платежів за допомогою Payment Request API

Давайте спершу нагадаємо, як зараз обробляються платежі у веб-переглядачах. Коли ви переходите на сторінку оформлення замовлення будь-якого онлайн-продавця, вас попросять ввести платіжну інформацію. Ви можете або додати кредитну картку, яку підтримує продавець, або скористатися інтегрованою службою, такою як PayPal, щоб завершити транзакцію. Тепер, якщо ви вже не зберегли дані своєї кредитної картки на веб-сайті (чого багато людей не бажають робити) або вже ввійшли в систему в PayPal, може бути складно встати, зайти в гаманець, знайти картку, а потім ввести номер картки, термін дії та безпеку код. Кожного разу, коли ви хочете зробити покупку на новому веб-сайті, вам потрібно пройти певний варіант цього процесу. Для тих із нас, хто

люблю полювати за угодами, це може швидко дратувати.

Різні сторінки онлайн-торговців для оформлення замовлення

Багато кредитних карток і банківські установи мають програми, доступні в Google Play Store. Оскільки ми вже використовуємо ці програми для моніторингу наших фінансових рахунків, чому ми не можемо використовувати їх для автентифікації платежів? Саме такий розумовий процес лежить в основі Робочої групи веб-платежів, що складається з таких членів, як Google, Mozilla, Samsung, Alibaba, Microsoft тощо. Ця група працювала за лаштунками, щоб представити новий API під назвою Payment Request API і новий онлайн-стандарт, визначений у Пропозиції платіжного маніфесту, щоб полегшити спілкування між веб-браузерами і онлайн-продавців, щоб онлайн-продавець міг використовувати наявні програми на пристрої кінцевого користувача для обробки платежів.

Як це працює

Щоб виконати це завдання, веб-браузери має підтримувати API запиту на оплату, онлайн-продавці повинні підтримувати API, реалізуючи так званий a Ідентифікатор способу оплатиі додатки для Android необхідність впровадження нових послуг. Не вдаючись у подробиці, я коротко поясню, що відбувається під час процесу оформлення замовлення.

Якщо ваш веб-браузер підтримує Payment Request API (докладніше про це пізніше), коли ви перейдете на сторінку платежів онлайн-продавця, ви матимете можливість оплатити за допомогою одного з підтримуваних обробників платежів (кредитна картка/PayPal тощо). Коли ви натискаєте кнопку, щоб здійснити покупку (наприклад, на прикладі сторінки нижче, яка використовується працівниками Google для перевірити Payment Request API), потім Payment Request API надсилає намір 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);

Коли Боб Пей підтвердить платіж, API запиту на оплату отримує цю інформацію в іншому намірі, надісланому Бобом Пеєм:

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 не буде прийнятий як обробник платежів.

Звичайно, я дуже, дуже, дуже спрощую загальний процес, який тут бере участь. Платежі — це неймовірно складна система, яка потребує кількох рівнів перевірок безпеки, щоб забезпечити здійснення лише дійсних платежів. У трьох документах, на які я посилався раніше, описано, як браузер повністю реалізує API запиту на оплату, як a веб-сайт реалізує файл маніфесту JSON і як програма Android може обробити намір, надісланий запитом на оплату API. Ось блок-схема, яка описує загальний процес, який я підсумував вище:

Блок-схема платежів. Джерело: Руслан Соломахін

Як бачите, тут багато кроків. Усі ці зміни виконуватимуть розробники веб-сайтів онлайн-торговців, банківського/кредитного обслуговування Android карткових програм і розробників веб-браузерів, тому кінцевий користувач, ймовірно, не матиме уявлення, що насправді відбувається тут. Але просто знайте, що кінцевим результатом є те, що ваші онлайн-платежі стануть набагато простішими, якщо залучити всі сторони запровадити ці зміни, які, сподіваюся, стануть завдяки стандартизаційним зусиллям Робочої групи веб-платежів реальність.


Історія за API запиту на оплату

Консорціум World Wide Web (скорочено W3C) був заснований у 1994 році з метою розробки платформи стандартів, які б дозволили всім веб-сайтам та їхнім користувачам отримати вигоду від взаємосумісності та послідовність. Щоб вирішити проблему зростаючої фрагментації веб-платежів, W3C створила Робоча група веб-платежів у 2015 році щоб стандартизувати деякі аспекти потоку онлайн-платежів. Після цього почалася робота між усіма членами Робочої групи веб-платежів, щоб знайти способи покращити роботу існуючих систем онлайн-платежів.

Група придумала API запиту на оплату, набір методів, які дозволяють веб-сайтам використовувати методи оплати без інтеграції методів оплати на їхній сайт. Веб-браузери потрібно оновити для підтримки API, але складніша частина випливає з залучення онлайн-торговців. З цією метою члени робочої групи виступив із пропозицією про те, як веб-сайти можуть створювати ідентифікатори, щоб визначити, які способи оплати вони підтримують. Це передбачає створення файлу маніфесту платежу JSON, який читається машиною (ідентифікатор методу платежу) – його має читати браузер, щоб API запиту на оплату може визначити, чи має користувач одну або кілька програм, що відповідають підтримуваним методам оплати, визначеним у JSON файл. Ця реалізація створена за мотивами Google Протокол посилань на цифрові активи таким чином веб-сайти перенаправляють вас зі свого мобільного сайту на свою програму, якщо вона у вас уже встановлена.

Після довгих внутрішніх переговорів групи, врешті-решт 25 листопада 2016 року Зак Кох з Google і Дапенг Лю з Alibaba подали початковий проект маніфесту способу оплати щоб розпочати процес стандартизації ідентифікаторів способу оплати, з яким можуть погодитися всі учасники. Зрештою, члени робочої групи зустрілися особисто в Чикаго між 23-24 березня щоб хешувати API запиту на платіж, пропозицію платіжного маніфесту тощо. Робоча група проголосували за офіційне прийняття нова версія Пропозиції платіжного маніфесту (версія 2), де ми перебуваємо сьогодні.


Підтримка API запитів на оплату

10 травня з’явилася підтримка сторонніх платіжних додатків Android увімкнено за замовчуванням у Chromium, оскільки передумови маніфесту веб-платежів було схвалено у гілці blink-dev (Blink — це назва механізму візуалізації, який використовується Chrome). Зауважте, що ця функція тестується в Chrome місяцями, але лише нещодавно виявилося, що група готова до цього. Ця функція буде доставлена усі платформи/версії Chromium, крім Android Webview (який не має інтерфейсу користувача і тому не може реалізувати API запиту на оплату).

Лише після кількох місяців закулісної роботи ми тепер побачимо переваги того, над чим працювала робоча група веб-платежів. На Google I/O компанія, ймовірно, оголосить, що Google Chrome постачатиметься з увімкненим Payment Request API, і Зак Кох згадав раніше виступить у четвер про те, як сторонні постачальники платежів можуть підтримувати API, створюючи Payment Manifest JSON файли.

Інші браузери також працюють над підтримкою API запиту на оплату. Mozilla і Samsung висловили публічну підтримку додавання API за словами співробітника Google Руслан Соломахін поки що нічого не відомо про те, чи буде підтримуватися браузер Edge від Microsoft або Safari від Apple. Відзначимо, що Microsoft є вже тестує API запиту на оплату для програм універсальної платформи Windows (UWP). і при принаймні один банк уже запровадив підтримку (Monzo) у своєму додатку.

Що стосується інших онлайн-торговців і додатків для Android, які підтримуватимуть цю нову платіжну специфікацію, то, за словами працівника Google Зака ​​Коха:

Кількість «постачальників методів оплати», яким потрібно було б реалізувати цю специфікацію, досить мала (сотні), і зараз ми працюємо безпосередньо лише з дуже невеликою підмножиною з них (<5), щоб перевірити води. Якби ми зіткнулися з ситуацією, коли нам потрібно було б змінити одне з полів, я думаю, ми могли б зробити це легко та без особливого (якщо взагалі є) ризику взаємодії. Усі наші перші партнери знають, що ці специфікації можуть змінюватися, і погоджуються з цим.

Розгортання цього надзвичайно важливо для того, щоб інші гравці могли брати участь в екосистемі PR, принаймні на Android. Я справді волів би не йти повним власним шляхом, щоб увімкнути рідні програми для Android. Ми навмисно зменшили його площу, щоб залишити простір для зростання та більш просунутих випадків використання.

Таким чином, ми бачимо, що хоча Google є піонером у підтримці Payment Request API, мине деякий час, перш ніж ми дійсно побачимо, що цей новий спосіб оплати з’явиться у всіх браузерах, усі онлайн-продавці та всі програми. Особисто я дуже радий бачити, що Google підтримує API запитів на оплату. Екосистема електронної комерції протягом багатьох років була без потреби фрагментована методами оплати, і якщо цей новий API означає, що мені більше ніколи не доведеться вручну вводити інформацію про свою кредитну картку на веб-сайті, тоді я за це.


Що ви думаєте про цей майбутній стандарт? Озвучте коментарі та повідомте нам свою думку!