Google pay api android

Содержание
  1. Рекомендации по интеграции Google Pay API
  2. Сделайте Google Pay способом оплаты по умолчанию
  3. Оптимизируйте процесс оплаты
  4. Разместите кнопку Google Pay в рекомендуемых местах
  5. На странице товара
  6. На странице оплаты
  7. Вверху списка доступных способов оплаты
  8. Над разделом, где нужно вводить платежную информацию
  9. Получите платежную информацию пользователя из Google Pay
  10. Разрешите оплату без регистрации в Google Pay
  11. Используйте Google Pay только с целью сбора релевантных пользовательских данных
  12. Интеграция Google Pay
  13. 1. Верстка
  14. 2. Код
  15. 3. Тестирование
  16. 4. Отправка на ручную проверку
  17. 5. Релиз
  18. Tutorial
  19. Step 1: Define your Google Pay API version
  20. Kotlin
  21. Step 2: Request a payment token for your payment provider
  22. Kotlin
  23. Step 3: Define supported payment card networks
  24. Kotlin
  25. Kotlin
  26. Step 4: Describe your allowed payment methods
  27. Kotlin
  28. Kotlin
  29. Step 5: Create a PaymentsClient instance
  30. Kotlin
  31. Step 6: Determine readiness to pay with the Google Pay API
  32. Kotlin
  33. Kotlin
  34. Step 7: Create a PaymentDataRequest object
  35. Kotlin
  36. Kotlin
  37. Kotlin
  38. Step 8: Register event handler for user gesture
  39. Kotlin
  40. Step 9: Handle the response object
  41. Kotlin
  42. Put it all together
  43. CheckoutActivity.kt (Kotlin)
  44. PaymentsUtil.kt (Kotlin)
  45. CheckoutActivity.java (Java)
  46. PaymentsUtil.java (Java)

Рекомендации по интеграции Google Pay API

При интеграции Google Pay API полагайтесь на представленные ниже рекомендации. Они подготовлены для разных сценариев, учитывающих особенности процесса покупки и интерфейса сайта или приложения.

Сделайте Google Pay способом оплаты по умолчанию

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

Оптимизируйте процесс оплаты

Вы можете списывать средства сразу после выбора Google Pay. Для этого выполните следующие действия:

  • Убедитесь, что конечная стоимость показывается пользователям до вызова окна оплаты через Google Pay.
  • Установите для параметра CheckoutOption значение COMPLETE_IMMEDIATE_PURCHASE . Тогда пользователи будут видеть кнопку Оплатить вместо Продолжить в диалоге выбора способа оплаты Google Pay.

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

Рисунок 3. Возможность быстро оплатить покупку

Разместите кнопку Google Pay в рекомендуемых местах

Расположите кнопку для оплаты через Google Pay в следующих местах:

Если вы располагаете кнопку Google Pay в нескольких местах, проверьте, везде ли совпадают элементы IsReadytoPayRequest .

На странице товара

Добавьте кнопку Google Pay на страницу товара, чтобы пользователи могли быстро его заказать. Это упростит процесс покупки и позволит увеличить число конверсий.

Рисунок 4. Кнопка Google Pay на странице товара

На странице оплаты

Кнопку Google Pay можно разместить рядом с кнопками Оформить заказ или Добавить в корзину.

Если вы разместите кнопку для оплаты через Google Pay таким образом, у покупателей появятся следующие преимущества:

  • удобный просмотр элементов в корзине;
  • показ итоговой стоимости заказа;
  • возможность быстрой оплаты.

Рисунок 5. Кнопка Google Pay рядом со стандартным способом оплаты

Вверху списка доступных способов оплаты

Убедитесь, что кнопка Google Pay, позволяющая оплатить заказ одним нажатием, хорошо заметна.

Рисунок 6. Кнопка Google Pay над другими способами оплаты

Над разделом, где нужно вводить платежную информацию

В этом случае покупателям не придется вручную вводить платежные данные, в частности платежный адрес и адрес доставки, а значит процесс покупки будет завершен быстрее и коэффициент конверсии вырастет.

Рисунок 7. Кнопка Google Pay над разделом, где нужно вводить платежную информацию

Получите платежную информацию пользователя из Google Pay

Эта настройка позволит покупателям подтверждать адрес доставки на экране Google Pay наряду с платежными данными. Вводить адрес вручную им не потребуется. В ответе от Google Pay API будет представлена как платежная информация, так и сведения о доставке.

Рисунок 8. Адрес доставки в окне оплаты через Google Pay

Разрешите оплату без регистрации в Google Pay

Разрешите пользователям, не имеющим аккаунта, платить за заказ через Google Pay. Платежные и адресные данные, необходимые для оформления заказа, запросите в рамках запроса к Google Pay API.

Если у вас предусмотрена возможность создания аккаунта, используйте для этого платежные и адресные данные, предоставленные Google Pay API. Запускать процесс создания аккаунтов лучше после покупки.

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

Используйте Google Pay только с целью сбора релевантных пользовательских данных

Учтите, что использовать данные, полученные через Google Pay API, можно только для обработки транзакций. В том числе к таким транзакциям относятся подтверждение, отмена и возврат заказов, отслеживание посылок и отправка уведомлений о доставке или возврате.

Читайте также:  Scanning codes with android phone

Например, Google Pay API может возвращать адрес электронной почты. Для этого установите для параметра emailRequired значение true в объекте PaymentDataRequest .

Выполнение этой рекомендации позволяет укрепить доверие и повысить лояльность клиентов.

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Источник

Интеграция Google Pay

Меня зовут Игорь, я 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 рекомендует использовать стандартные кнопки. Если вы хотите использовать темную тему или вообще кнопку со своим дизайном, то вам стоит написать в тех. поддержку по адресу androidpay-api-support@google.com. Но даже на кастомной кнопке должно быть лого Google и надпись … да, я надеюсь, вы поняли 🙂 ;
  • по ширине ограничений нет, минимальная высота кнопки — 40dp. Если делаете выше/шире, то помните, что текст должен быть отцентрирован.

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

2. Код

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

Для начала добавим нужные зависимости в build.gradle уровня приложения. Перед внедрением проверяйте актуальность версий!

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

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

    Создаём PaymentsClient в вашей Activity или в Fragment. Чтобы не захламлять эти классы, можно вынести весь код в методы GooglePaymentUtils, например. Тогда:

Обратите внимание на константы:

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

Отлично, у нас есть клиент, теперь мы готовы сделать запрос, можно ли вообще использовать оплату и показывать кнопку.

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

Если мы можем показать кнопку, значит, мы должны повесить на нее обработчик нажатий

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

Тут CURRENCY_CODE = “RUB”.
WalletConstants.TOTAL_PRICE_STATUS_FINAL — говорим, что стоимость покупки окончательная и больше изменяться не будет.

Читайте также:  Андроид для порше кайен 957

Также есть варианты:
WalletConstants.TOTAL_PRICE_STATUS_ESTIMATED — стоимость примерная, и может измениться, например, после уточнения адреса.
WalletConstants.TOTAL_PRICE_STATUS_NOT_CURRENTLY_KNOWN — еще не знаем, какая стоимость.

Не могу сказать, как на практике поведут себя последние две константы, так как не проверял ¯\_(ツ)_/¯.

Остановимся на PaymentMethodTokenizationParameters и его методе setPaymentMethodTokenizationType:

    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»)

  • Иначе используется вышеуказанный тип 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 и других (МИР, например)

    Все, мы создали запрос, отправили его через клиента и ждем результат через AutoResolveHelper.

    Как вы помните, результат придет в активити.

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

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

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

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

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

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

    Отправляете билд на androidpay-api-support@google.com и ждете ответа.

    5. Релиз

    Вам сказали, что все хорошо и можно выпускать приложение. Первым делом вас попросят активировать приложение по адресу (с аккаунта продавца (merchant)).

    Далее вас могут попросить прислать PCI Compliance. Эти документы подтверждают, что ваш payment processor соответствует стандартам безопасности по работе с картами. Запрашиваете у него и отправляете в поддержку.

    Как только вы выполнили эти два пункта, вам скажут, что можно поменять WalletConstants.ENVIRONMENT_TEST на WalletConstants.ENVIRONMENT_PRODUCTION. Также может потребоваться поменять TOKENIZATION_PUBLIC_KEY, если вы использовали ключ с тестовой среды вашего payment processor.

    Вот и все, теперь протестируйте реальную оплату и можете выпускать релиз в маркет!

    Источник

    Tutorial

    If your Android application is distributed through the Google Play store, you can integrate it with the Google Pay API. You can also configure it to accept payment cards. To integrate your application and configure it to accept payment cards, follow the steps in this tutorial.

    Step 1: Define your Google Pay API version

    Declare the version of the Google Pay API that your application uses. The major and minor versions affect the fields expected in each passed object and are included in the response.

    Create a base request object that contains properties that are present in all other request objects.

    Kotlin

    Step 2: Request a payment token for your payment provider

    Google encrypts information about a payer’s selected card for secure processing by a payment provider.

    Kotlin

    Replace example and exampleGatewayMerchantId with the appropriate values for your payment provider. Use the following table to find the specific gateway and gatewayMerchantId values for your payment provider:

    No developer docs available

    No developer docs available

    No developer docs available

    No developer docs available

    No developer docs available

    No developer docs available

    No developer docs available

    No developer docs available

    No developer docs available

    No developer docs available

    No developer docs available

    The PAYMENT_GATEWAY tokenization type is the most common merchant implementation of the card payment method in the Google Pay API. If your payment provider isn’t supported, you might be able to accept Google Pay by a DIRECT integration. For more information, see the Direct tokenization documentation.

    Step 3: Define supported payment card networks

    Define the card networks that your application accepts.

    Kotlin

    The Google Pay API might return cards on file on Google.com ( PAN_ONLY ) or a device token on an Android device authenticated with a 3-D Secure cryptogram ( CRYPTOGRAM_3DS ).

    Kotlin

    For more information, see CardParameters in our JSON object reference. For Android device tokens support, check with your gateway or processor for the card networks supported.

    Step 4: Describe your allowed payment methods

    In order to describe your application’s support for the CARD payment method, combine your supported authentication methods and supported card networks.

    Kotlin

    Extend the base card payment method object to describe information expected to be returned to your application, which must include tokenized payment data.

    Kotlin

    For more information about supported parameters , see CardParameters in our JSON object reference.

    In addition to CARD , Google Pay also supports the PAYPAL payment method. For more details about how to add PayPal as a payment method to Google Pay, see PayPal’s developer documentation.

    Step 5: Create a PaymentsClient instance

    Create a PaymentsClient instance in the onCreate method in your Activity . The PaymentsClient is used for interaction with the Google Pay API.

    Kotlin

    Step 6: Determine readiness to pay with the Google Pay API

    Add your allowed payment methods to your base request object with the following code snippet:

    Kotlin

    Before you display the Google Pay button, call the isReadyToPay API to determine if the user can make payments with the Google Pay API. For a full list of configuration properties, see the IsReadyToPayRequest JSON object documentation.

    Kotlin

    As the example shows, it’s best to show Google Pay as a payment option only after you receive a successful result from the isReadyToPay function. It’s most common to display a Google Pay payment button through a layout include when you implement a payment option. For more information about Google Pay payment buttons, logos, and marks available for use in your application, see Brand guidelines.

    Step 7: Create a PaymentDataRequest object

    A PaymentDataRequest JSON object describes the information that you request from a payer in a Google Pay payment sheet.

    Provide information about the transaction price and the status of the provided price. For more information, see TransactionInfo JSON object documentation.

    The following example shows how to get price, price status, and currency transaction information.

    Kotlin

    Provide a user-visible merchant name. For more information, see the MerchantInfo JSON object documentation.

    The following example shows how to get the merchant’s name:

    Kotlin

    Assign your base request object to a new PaymentDataRequest JSON object. Then, add the payment methods supported by your application, such as any configuration of additional data expected in the response. Finally, add information about the transaction and the merchant who makes the request.

    The following example shows how to request payment data:

    Kotlin

    Step 8: Register event handler for user gesture

    To request display of a Google Pay payment sheet after user activation of a Google Pay payment button, define an OnClickListener .

    Kotlin

    The PaymentDataRequest object is a Parcelable that represents a payment data request. The PaymentDataRequest provides information that’s necessary in order to support a payment. Use the AutoResolveHelper class to auto resolve the Task , then handle the result in the onActivityResult method of your Activity class.

    Step 9: Handle the response object

    After a payer successfully provides the requested information in the Google Pay payment sheet, a PaymentData object is returned to onActivityResult .

    To pass payment information to your processor and to present the user with a confirmation of their purchase, convert a successful response to JSON. If the transactionInfo.totalPriceStatus passed to PaymentDataRequest is ESTIMATED , you must show a final price before you charge the returned payment method.

    Extract the payment token from the paymentData response. If you implement a gateway integration, pass this token to your gateway without any modifications.

    Kotlin

    For more information about the content and structure of the response, see the PaymentData JSON object reference.

    Put it all together

    The following snippet shows a complete example for a properly configured project. For the project-level setup steps, see Configure your project.

    CheckoutActivity.kt (Kotlin)

    This example Activity assumes a Google Pay payment button with an id attribute of googlepay_button exists in your layout.

    PaymentsUtil.kt (Kotlin)

    This example file builds JSON objects suitable to build an IsReadyToPayRequest or a PaymentDataRequest .

    CheckoutActivity.java (Java)

    This example Activity assumes a Google Pay payment button with an id attribute of googlepay_button exists in your layout.

    PaymentsUtil.java (Java)

    This example file builds JSON objects suitable to build an IsReadyToPayRequest or a PaymentDataRequest .

    Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

    Источник

    Читайте также:  Все для андроида highscreen
    Оцените статью
    Gateway Parameters and documents
    ACI
    Mastercard Payment Gateway Services
    Newebpay (formerly STPath, Pay2Go)
    Worldline — Ingenico (WL Online Checkout)