Как пользоваться платежной системой Google Pay, как ее настроить и какие телефоны поддерживают?

itemprop=’image’ src=’https://trashbox.ru/apk_icons/893210_192.png’ class=image_microdata> >IvS2


, 15 октября 2019 — 19:23

Android
 5.0+

  Другие версии

[pp_imgslider srcs=»https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=,https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=,https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=,https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=,https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=»]
[pp_imgslider srcs=»https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=,https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=,https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=,https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=,https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=»]
[pp_imgslider srcs=»https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=,https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=,https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=,https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=,https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=»]
[pp_imgslider srcs=»https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=,https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=,https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=,https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=,https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=»]
[pp_imgslider srcs=»https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=,https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=,https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=,https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=,https://trashbox.ru/data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzciIGhlaWdodD0iMzE1Ij48L3N2Zz4=»]

Google Pay
— можно оплачивать покупки на сайтах, в приложениях, а также в магазинах и в общественном транспорте.

Чтобы начать, просто добавьте карту одного из банков-участников.Telegram-канал
создателя
Трешбокса
с инсайдами
разработки

  • Удобство. Google Pay – это быстрый способ оплачивать покупки.
     С ним у вас всегда под рукой банковские карты, карты постоянного клиента и вся платежная информация. На главной странице приложения Вы увидите список последних транзакций, ближайших магазинов и доступных бонусов.
  • Доступность.
     Пользоваться Google Pay можно по всему миру – везде, где принимается бесконтактная оплата. Помимо банковских карт, в приложение можно добавлять подарочные сертификаты и специальные предложения. Кроме того, некоторые магазины предлагают пользователям Google Pay особые бонусы и напоминают о том, что принимают оплату через приложение.
  • Простота. 
    Чтобы расплатиться через Google Pay, не нужно заполнять сложные онлайн-формы или помнить реквизиты банковской карты. Достаточно всего пары касаний.
  • Преимущества.
     У Вас нет с собой бонусной или банковской карты? Оплатите покупку через Google Pay – это так же выгодно и безопасно.
  • Безопасность.
     Google всегда заботится о безопасности пользователей, поэтому Ваши платежные и личные данные в Google Pay надежно защищены. При оплате продавцу передается не номер карты, а специальный зашифрованный номер.
  • Бонусы.
     В Google Pay можно добавить карты постоянного клиента, подарочные карты и специальные предложения. Некоторые продавцы предлагают дополнительные бонусы при оплате через Google Pay, а также напоминают воспользоваться картой, когда Вы находитесь в магазине.

Сервис Google Pay поддерживается на устройствах с ОС Android версии 4.4 и выше, без root-доступа.

Загрузите на Google Play

Telegram-канал
создателя
Трешбокса
с инсайдами
разработки

Чтобы увидеть более ранние версии, войдите на сайт
Последнее изменение: 15 октября 2019 — 19:23

Что такое Google Pay и как он работает

Google Pay — ранее известный как Android Pay — это сервис, который позволяет оплачивать покупки в магазинах, на сайтах и в приложениях через смартфон.

Google Pay можно использовать в любых магазинах и других местах, где установлены терминалы для бесконтактной оплаты. Вы наверняка уже видели подобные устройства на кассах и подносили к ним банковские карты для списывания средств.

Для оплаты через Google Pay достаточно поднести смартфон к такому терминалу вместо карты. Это удобнее, так как гаджет всегда под рукой и воспользоваться им быстрее, чем достать нужную карту или наличные из кошелька. Тем более к смартфону можно подключить несколько карт. Интернет для оплаты не нужен.

Что касается онлайн-покупок: сайты и приложения, которые принимают деньги через Google Pay, отображают на экране оплаты кнопку с логотипом этого сервиса. Если увидите такую, нужно нажать на неё и следовать дальнейшим подсказкам на дисплее смартфона.

Такой способ избавляет от необходимости каждый раз вводить данные карты и тем самым значительно ускоряет процесс.

Какие устройства и банки поддерживают Google Pay

С Google Pay совместимы все смартфоны, которые работают на Android 4.4 и выше. Кроме того, чтобы вы могли расплачиваться через терминалы, ваш телефон должен поддерживать технологию беспроводной передачи данных NFC.

Узнать версию операционной системы можно в настройках аппарата, нажав «Система» → «О телефоне».

Чтобы проверить поддержку NFC, поищите соответствующий пункт в настройках. Если он есть, смартфон поддерживает NFC. Если не найдёте такой функции самостоятельно, уточните её наличие в устройстве на сайте производителя.

Если вы получили на смартфоне права суперпользователя, то есть рут, Google Pay может отказаться работать.

Количество банков, поддерживающих Google Pay, постоянно расширяется. На сайте сервиса можно посмотреть актуальные списки для России, Украины и других стран. Рядом с названием каждого банка вы увидите типы его карт — будь то дебетовые или кредитные, Visa или MasterCard, — которые можно подключать к Google Pay.

Как подключить и настроить Google Pay

  1. Установите на смартфон бесплатное приложение Google Pay.
  2. Откройте системные настройки и включите NFC.
  3. Настройте блокировку экрана с помощью PIN-кода, пароля, графического ключа или отпечатка пальца.
  4. Запустите Google Pay и следуйте инструкциям программы по подключению карт.

[pp_imgslider srcs=»https://chart.googleapis.com/chart?cht=qr&chl=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.google.android.apps.walletnfcrel%26hl%3Dru%26gl%3Dru&chs=200×200&chld=L|0,https://lh3.googleusercontent.com/fhDauQL0p-8Fo1xiox7PBscp9ESjMxIRASPoNcGTCc59nXPkDb7LT-GAeo9sUE5OvY8=s180″]
Google Pay
Разработчик: Google LLC
Цена: Бесплатно

  • [pp_imgslider srcs=»http://elplatej.ru/wp-content/uploads/2020/02/pp_image_9752_fvdu8frgut03603e526f72f77af59d62194036afa1.jpg,http://elplatej.ru/wp-content/uploads/2020/02/pp_image_9753_60mbdiswnte85f5e17dbb395fd0ed6cdc76ceb9050.jpg,http://elplatej.ru/wp-content/uploads/2020/02/pp_image_9754_02jicm67vt820fe13d399d2123bb4692af1a17c03a.jpg,http://elplatej.ru/wp-content/uploads/2020/02/pp_image_9755_6htrbrx1ut4e1d5d760b68a790f99e1a83ca248ff8.jpg,http://elplatej.ru/wp-content/uploads/2020/02/pp_image_9756_31v9z7s6et92cc505833d460e41de25ec5f44b2195.jpg»]

Как оплачивать покупки в магазинах

  1. Если сумма превышает 1 000 рублей, разблокируйте экран смартфона. Если нет, просто включите подсветку.
  2. Поднесите мобильное устройство задней панелью к терминалу и дождитесь дальнейших инструкций. Запускать приложение Google Pay для этого не нужно.
  3. Следуйте подсказкам на экране смартфона. Скорее всего, приложение просто попросит ввести PIN-код от карты.
  4. Если вы подключили к сервису несколько карт и хотите оплатить покупку через карту, которая не указана в качестве основной в Google Pay, перед покупкой запустите приложение. Откройте раздел «Карты», выберите нужную и поднесите смартфон к терминалу.

Безопасен ли Google Pay

Google уверяет, что оплата через Google Pay безопасна. Все финансовые данные шифруются и хранятся на защищённых серверах. Кроме того, при оплате продавец не получает даже номера вашей карты: вместо этого он видит только номер виртуального счёта, который присваивается каждой карте.

Google Pay можно пользоваться только при настроенной блокировке экрана. Это защищает ваши карты от посторонних, которые не знают вашего PIN-кода, пароля или графического ключа и не могут пройти проверку отпечатка пальца. Если вы отключите функцию блокировки, то приложение сотрёт виртуальные счета, связанные с картами, в целях безопасности.

Если смартфон потеряется или его украдут, то вы сможете отследить аппарат, заблокировать или стереть с него все данные с помощью сервиса «Найти устройство».

Можно ли оплачивать покупки через смарт-часы

Сервисом можно пользоваться и на умных часах. На данный момент функция работает на территории Австралии, Великобритании, Испании, Канады, США, Польши и России. На часах, которые поддерживают Google Pay, приложение сервиса доступно из коробки.

Настройка и использование сервиса на часах происходят почти так же, как на смартфоне. Только перед оплатой нужно вручную запускать приложение Google Pay. Сам смартфон для оплаты через часы не нужен.

Читайте также

  • Tutorial

Привет, Хабр! Меня зовут Игорь, я Android-разработчик в команде Trinity Digital. Сегодня я хочу рассказать о классном инструменте — Google Pay API
. Итак
, если в вашем приложении можно совершать покупки, и при этом вы используете не In-app Billing (за процессинг отвечает не Google Play), то скорее всего среди вариантов оплаты у вас есть и “Оплата картой”. А это значит, что вам каждый раз приходится отправлять пользователя вводить данные карты или на красиво сверстанные экраны с картой, или на веб-сайт вашего провайдера платежных сервисов (далее — payment processor). Уже посчитали сколько действий придется совершить пользователю, чтобы оплатить заветный заказ? Ага, а теперь представьте, что он сможет выполнить то же целевое действие всего в два тапа. Мы тоже представили и подумали, а почему бы не дать пользователям такую возможность? Основные условия успеха — продавец быть зарегистрирован в Google и payment processor должен сотрудничать с Google. Список банков России, которые сотрудничают с Android Pay: АК Барс Банк Альфа Банк БИНБАНК Промсвязьбанк ВТБ24 Банк Открытие МТС Банк Райффайзен Банк Рокетбанк Россельхозбанк Банк Русский Стандарт Сбербанк Тинькофф Банк Точка Яндекс Деньги Как все будет выглядеть для пользователя
: он попадает на экран выбора типов оплаты в вашем приложении, нажимает на кнопку “Оплатить через Google ”, выбирает нужную карту или оставляет ту, что указана по-умолчанию, нажимает кнопку подтверждения. Готово! Помните, что Google Pay API позволяет пользователям выбрать любую карту, привязанную или к аккаунту Google, или добавленную в Google Pay. Теперь перейдем непосредственно к интеграции
. Рассмотрим этапы:

  1. Верстка
  2. Код
  3. Тестирование
  4. Отправка на ручную проверку
  5. Релиз

1. Верстка

Первое, о чем стоит сказать — предупредите дизайнеров о гайдлайнах. Если кратко по пунктам:

  • на экранах ДО ИЛИ
    на экране, где будет расположена кнопка “Оплатить через Google” должна быть указана стоимость покупки;
  • дайте пользователям возможность изменять данные заказа, выбирать тип оплаты [, менять адрес];
  • никогда не показывайте данные для оплаты полностью (любые номера, даты и так далее);
  • еще раз — “Оплатить через Google” — именно такая надпись должна быть на вашей кнопке, если делаете приложение с поддержкой русского языка;
  • Google рекомендует использовать стандартные кнопки. Если вы хотите использовать темную тему или вообще кнопку со своим дизайном, то вам стоит написать в тех. поддержку по адресу [email protected] Но даже на кастомной кнопке должно быть лого Google и надпись … да, я надеюсь, вы поняли 🙂 ;
  • по ширине ограничений нет, минимальная высота кнопки — 40dp. Если делаете выше/шире, то помните, что текст должен быть отцентрирован.

Соблюдение данных пунктов позволит вам быстрее пройти все проверки и попасть в белый список.

2. Код

Чтобы оплата через Google работала, на телефоне пользователя должны быть установлены Google Play Services версии не ниже 11.4. Но не беспокойтесь, есть специальный метод, который подскажет, можно ли провести оплату или же стоит спрятать кнопку. Для начала добавим нужные зависимости в build.gradle уровня приложения. Перед внедрением проверяйте актуальность версий!

dependencies {     compile 'com.google.android.gms:play-services-wallet:11.4.0'     compile 'com.android.support:support-v4:24.1.1'     compile 'com.android.support:appcompat-v7:24.1.1' } 

Далее следует обновить AndroidManifest:

   ...       
 

Теперь осталось совсем чуть-чуть:

  • Создаём PaymentsClient в вашей Activity или в Fragment. Чтобы не захламлять эти классы, можно вынести весь код в методы GooglePaymentUtils, например. Тогда:
    class MainActivity : AppCompatActivity() {     private lateinit var googlePaymentsClient: PaymentsClient     ...     override fun onCreate(savedInstanceState: Bundle?) {         super.onCreate(savedInstanceState)         ...         googlePaymentsClient = GooglePaymentUtils.createGoogleApiClientForPay(context)     }     ... } 
    
    object GooglePaymentUtils {     fun createGoogleApiClientForPay(context: Context): PaymentsClient =         Wallet.getPaymentsClient(context,                                   Wallet.WalletOptions.Builder()                                       .setEnvironment(WalletConstants.ENVIRONMENT_TEST)                                       .setTheme(WalletConstants.THEME_LIGHT)                                       .build())  } 
    

    Обратите внимание на константы: WalletConstants.ENVIRONMENT_TEST
    — пока Google не разрешит выход в боевую среду, вы должны использовать именно её, чтобы самостоятельно протестировать флоу оплаты. Не пугайтесь, когда увидите предупреждение на диалоге Google Pay, что приложение не опознано. WalletConstants.THEME_LIGHT
    — светлая тема диалога, также есть темная.

  • Отлично, у нас есть клиент, теперь мы готовы сделать запрос, можно ли вообще использовать оплату и показывать кнопку.
    object GooglePaymentUtils {     fun checkIsReadyGooglePay(paymentsClient: PaymentsClient,                                callback: (res: Boolean) -> Unit) {         val isReadyRequest = IsReadyToPayRequest.newBuilder()                   .addAllowedPaymentMethod(WalletConstants.PAYMENT_METHOD_CARD)                   .addAllowedPaymentMethod(WalletConstants.PAYMENT_METHOD_TOKENIZED_CARD)                   .build()        val task = paymentsClient.isReadyToPay(isReadyRequest)        task.addOnCompleteListener {             try {                 if (it.getResult(ApiException::class.java))                 // можем показать кнопку оплаты, все хорошо                     callback.invoke(true)                 else                 // должны спрятать кнопку оплаты                     callback.invoke(false)             } catch (e: ApiException) {                 e.printStackTrace()                 callback.invoke(false)             }         }     } } 
    

    PAYMENT_METHOD_CARD
    , PAYMENT_METHOD_TOKENIZED_CARD
    — говорят, что мы хотим видеть карточки из Google аккаунта пользователя и карточки, привязанные к Android Pay.

  • Если мы можем показать кнопку, значит, мы должны повесить на нее обработчик нажатий
    btnPaymentByGoogle.setOnClickListener {     val request = GooglePaymentUtils.createPaymentDataRequest(price)     AutoResolveHelper.resolveTask(googlePaymentsClient.loadPaymentData(request),                                                    context,                                                    REQUEST_CODE) } 
    

    Тут запомните, что price — это строчка. И самое важное, даже если вы вызываете AutoResolveHelper.resolveTask из фрагмента, то результат все-равно придет в активити (об этом чуть позже) [на момент написания статьи работает именно так, AutoResolveHelper не умеет возвращать результат во фрагмент].

    fun createPaymentDataRequest(price: String): PaymentDataRequest {         val transaction = createTransaction(price)         val request = generatePaymentRequest(transaction)         return request }  fun createTransaction(price: String): TransactionInfo =             TransactionInfo.newBuilder()                     .setTotalPriceStatus(WalletConstants.TOTAL_PRICE_STATUS_FINAL)                     .setTotalPrice(price)                     .setCurrencyCode(CURRENCY_CODE)                     .build()  private fun generatePaymentRequest(transactionInfo: TransactionInfo): PaymentDataRequest {     val tokenParams = PaymentMethodTokenizationParameters                                           .newBuilder()                                            .setPaymentMethodTokenizationType (WalletConstants.PAYMENT_METHOD_TOKENIZATION_TYPE_DIRECT)                                           .addParameter("publicKey", TOKENIZATION_PUBLIC_KEY)                                            build()      return PaymentDataRequest.newBuilder()                              .setPhoneNumberRequired(false)                              .setEmailRequired(true)                              .setShippingAddressRequired(true)                              .setTransactionInfo(transactionInfo)                              .addAllowedPaymentMethods(SUPPORTED_METHODS)                              .setCardRequirements(CardRequirements.newBuilder()                                              .addAllowedCardNetworks(SUPPORTED_NETWORKS)                                              .setAllowPrepaidCards(true)                                              .setBillingAddressRequired(true)                                              .setBillingAddressFormat(WalletConstants.BILLING_ADDRESS_FORMAT_FULL)                                              .build())                             .setPaymentMethodTokenizationParameters(tokenParams)                             .setUiRequired(true)                             .build()     }  
    

    Тут CURRENCY_CODE
    = “RUB”.WalletConstants.TOTAL_PRICE_STATUS_FINAL
    — говорим, что стоимость покупки окончательная и больше изменяться не будет. Также есть варианты:WalletConstants.TOTAL_PRICE_STATUS_ESTIMATED
    — стоимость примерная, и может измениться, например, после уточнения адреса.WalletConstants.TOTAL_PRICE_STATUS_NOT_CURRENTLY_KNOWN
    — еще не знаем, какая стоимость. Не могу сказать, как на практике поведут себя последние две константы, так как не проверял ¯_(ツ)_/¯. Остановимся на PaymentMethodTokenizationParameters
    и его методе setPaymentMethodTokenizationType:

    1. PAYMENT_METHOD_TOKENIZATION_TYPE_PAYMENT_GATEWAY
      используется только если ваш payment processor в списке: Adyen Braintree PaySafe Stripe Vantiv WorldPay Тогда вместо .addParameter("publicKey", TOKENIZATION_PUBLIC_KEY)
      вы должны написать .addParameter("gateway", "yourGateway")
      .addParameter("gatewayMerchantId", "yourMerchantIdGivenFromYourGateway")
    2. Иначе используется вышеуказанный тип PAYMENT_METHOD_TOKENIZATION_TYPE_DIRECT
      . Для этого вам необходимо запросить у провайдера платежных сервисов публичный ключ и передавать именно его в .addParameter("publicKey", TOKENIZATION_PUBLIC_KEY)

    Теперь остается создать запрос.
    .setPhoneNumberRequired
    — должен ли пользователь ввести номер..setEmailRequired
    — должен ли пользователь ввести email.setShippingAddressRequired
    — должен ли пользователь выбрать страну. Тут можно ограничить число стран, для которых данная транзакция выполнится..addAllowedPaymentMethods
    — у нас это WalletConstants.PAYMENT_METHOD_CARD
    — карты из google аккаунта, WalletConstants.PAYMENT_METHOD_TOKENIZED_CARD
    — карты, добавленные в Google Pay. В CardRequirements мы указываем, что должны работать карточки систем Visa, Mastercard и других (МИР, например)

    val SUPPORTED_NETWORKS = arrayListOf(WalletConstants.CARD_NETWORK_OTHER,                                          WalletConstants.CARD_NETWORK_VISA,                                          WalletConstants.CARD_NETWORK_MASTERCARD)
    
  • Все, мы создали запрос, отправили его через клиента и ждем результат через AutoResolveHelper. Как вы помните, результат придет в активити
    .
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {         super.onActivityResult(requestCode, resultCode, data)                  when (requestCode) {             LOAD_PAYMENT_DATA_REQUEST_CODE -> {                 when (resultCode) {                     Activity.RESULT_OK -> {                             if (data == null)                                 return                                                     val paymentData = PaymentData.getFromIntent(data)                     }                     Activity.RESULT_CANCELED -> {                         // Пользователь нажал назад,                          // когда был показан диалог google pay                         // если показывали загрузку или что-то еще,                          // можете отменить здесь                     }                     AutoResolveHelper.RESULT_ERROR -> {                         if (data == null)                             return                                                  // Гугл сам покажет диалог ошибки.                          // Можете вывести логи и спрятать загрузку,                         // если показывали                         val status = AutoResolveHelper.getStatusFromIntent(data)                         Log.e("GOOGLE PAY", "Load payment data has failed with status: $status")                     }                     else -> { }                 }             }                 else -> { }         }     } 
    

Вот и все, в paymentData у вас будет токен, который следует отдать вашему серверу. Дальнейшая логика зависит от вашего payment processor.

3. Тестирование

Ничего сложного, просто проверяете, что установлена константа WalletConstants.ENVIRONMENT_TEST
, и проходите весь флоу. Списание денег с карточки производиться не будет, вам будет отдаваться тестовый токен, поэтому payment processor должен отклонить оплату.

4. Отправка на ручную проверку

Поздравляю! Вы готовы отправить свой дебаг билд на ручную проверку в Google. Несколько советов:

  • Если ваше приложение поддерживает только русский язык, то подготовьте скриншоты с указаниями, куда нажимать.
  • Если есть какая-то специфика в процессе заказа, то подробно опишите.
  • Создайте тестовый аккаунт специально для Google и отправьте прямо с билдом.

Отправляете билд на [email protected] и ждете ответа.

5. Релиз

Вам сказали, что все хорошо и можно выпускать приложение. Первым делом вас попросят активировать приложение по адресу (с аккаунта продавца (merchant)). Далее вас могут попросить прислать PCI Compliance. Эти документы подтверждают, что ваш payment processor соответствует стандартам безопасности по работе с картами. Запрашиваете у него и отправляете в поддержку. Как только вы выполнили эти два пункта, вам скажут, что можно поменять WalletConstants.ENVIRONMENT_TEST
на WalletConstants.ENVIRONMENT_PRODUCTION
. Также может потребоваться поменять TOKENIZATION_PUBLIC_KEY, если вы использовали ключ с тестовой среды вашего payment processor. Вот и все, теперь протестируйте реальную оплату и можете выпускать релиз в маркет! Спасибо и удачи!

Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации