Google официально внедрит API запроса платежей в Chrome, что будет объявлено во время Google I/O, что позволит вам платить с помощью сторонних приложений.
Будет объявлено позже На предстоящей конференции разработчиков Google I/O API запроса платежей произведет революцию в способах совершения онлайн-платежей на наших мобильных устройствах. Пользователям Google Chrome на Android больше не придется проходить длительные процессы оформления заказа, включающие ввод данных кредитной карты или вход в PayPal. Вместо этого API позволяет разработчикам веб-сайтов отправлять намерения поддерживаемым сторонним платежным приложениям для совершения платежа. В отличие от многих из другие сюрпризы что Google приготовил для нас, уже есть масса общедоступной информации о том, как именно будет работать этот новый способ оплаты.. Мы углубились во все эти документы, чтобы предоставить вам некоторую информацию до официального объявления Google на этой неделе.
Упрощение платежей с помощью API запроса платежей
Давайте сначала вспомним, как в настоящее время обрабатываются платежи в веб-браузерах. Когда вы переходите на страницу оформления заказа любого онлайн-торговца, вас просят ввести платежную информацию. Вы можете добавить кредитную карту, поддерживаемую продавцом, или использовать интегрированный сервис, такой как PayPal, для завершения транзакции. Теперь, если вы еще не сохранили данные своей кредитной карты на веб-сайте (что многие люди не хотят делать) или уже вошли в систему при входе в PayPal может быть сложно встать, зайти в свой кошелек, найти свою карту, затем ввести номер карты, срок действия и безопасность. код. Каждый раз, когда вы хотите совершить покупку на новом веб-сайте, вам придется пройти через некоторые варианты этого процесса. Для тех из нас, кто
люблю охотиться за предложениями, это может довольно быстро надоесть.Различные страницы оплаты онлайн-торговцев
Многие кредитные учреждения и банковские учреждения имеют приложения, доступные в магазине Google Play. Поскольку мы уже используем эти приложения для мониторинга наших финансовых счетов, почему мы не можем использовать их для аутентификации платежей? Именно такой мыслительный процесс лежит в основе рабочей группы по веб-платежам, состоящей из таких участников, как Google, Mozilla, Samsung, Alibaba, Microsoft и других. Эта группа работала за кулисами, чтобы представить новый API под названием API запроса платежа и новый онлайн-стандарт, определенный в Предложении о платежном манифесте, для облегчения связи между веб-браузерами. и онлайн-торговцы, чтобы интернет-торговцы могли использовать существующие приложения на устройстве конечного пользователя для обработки платежей.
Как это работает
Для выполнения этой задачи веб-браузеры должен поддерживать API запроса платежа, интернет-торговцам необходимо поддерживать API, реализуя так называемый Идентификатор способа оплатыи приложения для Android необходимо внедрить новые услуги. Не вдаваясь в подробности, я кратко объясню, что происходит во время процесса оформления заказа.
Предполагая, что ваш веб-браузер поддерживает API запроса платежа (подробнее об этом позже), при переходе на страницу оплаты онлайн-продавца у вас будет возможность оплатить. с помощью одного из поддерживаемых обработчиков платежей (кредитная карта/PayPal/и т. д.). Когда вы нажимаете кнопку, чтобы совершить покупку (например, на примере страницы ниже, используемой сотрудниками Google для протестируйте API запроса платежа), затем 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);
Как только Bob Pay подтвердит платеж, API запроса платежа получает эту информацию в другом намерении, отправленном 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 не будет принят в качестве обработчика платежей.
Конечно, я очень, очень, очень сильно упрощаю общий процесс, рассматриваемый здесь. Платежи — это невероятно сложная система, которая требует нескольких уровней проверок безопасности, чтобы гарантировать, что производятся только действительные платежи. В трех документах, на которые я ссылался ранее, описывается, как браузер полностью реализует API запроса платежа, как веб-сайт реализует файл манифеста JSON и то, как приложение Android может обрабатывать намерение, отправленное запросом платежа. API. Вот блок-схема, описывающая общий процесс, который я резюмировал выше:
Схема оплаты. Источник: Руслан Соломахин
Как видите, здесь требуется много шагов. Все эти изменения будут реализованы разработчиками веб-сайтов онлайн-торговли, Android-банкинга и кредитования. карточные приложения и разработчики веб-браузеров, поэтому конечный пользователь, скорее всего, понятия не имеет, что происходит на самом деле. здесь. Но просто знайте, что конечным результатом будет то, что ваши онлайн-платежи станут намного проще, если в этом будут участвовать все стороны. внедрить эти изменения, которые, благодаря усилиям Рабочей группы по стандартизации веб-платежей, мы надеемся, станут реальность.
История API запроса платежа
Консорциум Всемирной паутины (сокращенно 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 будет поставляться с включенным API запроса платежей, и Зак Кох упомянул ранее в четверг выступит с докладом о том, как сторонние поставщики платежей могут поддерживать API путем создания платежного манифеста JSON. файлы.
Другие браузеры также работают над добавлением поддержки API запроса платежа. Мозилла и Samsung публично выразили поддержку добавлению API. по словам Гугла Руслан Соломахин пока нет информации о том, добавит ли поддержку браузер Microsoft Edge или Apple Safari. Следует отметить, что Microsoft уже тестирует API запроса платежей для приложений универсальной платформы Windows (UWP). и в хотя бы один банк уже внедрил поддержку (Монцо) в своем приложении.
Что касается других онлайн-торговцев и приложений для Android, которые будут поддерживать эту новую спецификацию платежей, по словам сотрудника Google Зака Коха:
Число «поставщиков способов оплаты», которым потребуется реализовать эту спецификацию, довольно невелико. (сотни), и сейчас мы работаем напрямую только с очень небольшим подмножеством из них (<5) для тестирования. воды. Если бы мы столкнулись с ситуацией, когда нам нужно было изменить одно из полей, я думаю, мы могли бы сделать это легко и без особого риска взаимодействия (если таковой имеется). Все наши первые партнеры знают, что эта спецификация может измениться, и их это устраивает.
Внедрение этого процесса имеет решающее значение для того, чтобы позволить другим игрокам участвовать в PR-экосистеме, по крайней мере, на Android. Я бы предпочел не идти по полному проприетарному пути для включения собственных приложений для Android. Мы намеренно сохранили занимаемую площадь, чтобы оставить место для роста и более продвинутых вариантов использования.
Таким образом, мы видим, что, хотя Google является пионером в поддержке API запроса платежей, пройдет некоторое время, прежде чем мы действительно увидим, что этот новый способ оплаты появится во всех браузерах., всех интернет-торговцев и всех приложений. Лично я очень рад, что API запросов платежей стал поддерживаться Google. Экосистема электронной коммерции уже много лет без необходимости фрагментирована способами оплаты, и если этот новый API означает, что мне больше никогда не придется вручную вводить данные своей кредитной карты на веб-сайт, тогда я полностью за это.
Что вы думаете об этом будущем стандарте? Озвучьте в комментариях и дайте нам знать ваше мнение!