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


Гугл плэй payments google com

Интеграция 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. Релиз

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

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

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

Чтобы оплата через 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 — говорим, что стоимость покупки окончательная и больше изменяться не будет.

Также есть варианты:
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 и ждете ответа.

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

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

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

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



    Гугл плэй payments google com

    Как сменить страну в Гугл Плей

    Переехав жить в другую страну я столкнулся с тем, что многие приложения для меня из этой страны недоступны. Происходит это из-за того, что аккаунт привязан к совершенно другой стране (скорее всего к той, откуда вы приехали). И на каждое такое приложение Гугл Плей писал «Данное приложение недоступно для установки в вашей стране».

    Погуглив, пояндексив, порамблерив, я не нашел путной инструкции, как поменять страну в Google Play. Как оказалось, это не так просто:

    • кто-то пишет, что надо добавить способы оплаты,
    • кто-то — почистить кэш,
    • кто-то — потанцевать с бубном.

    Поддержка гугла за 5 дней мне так и не ответила… Решение в итоге я нашел сам, и вот решил поделиться инструкцией, может кому-то будет полезно.

    Важно!

    • Переключаться между странами в Google Play можно не чаще раза в год.
    • Средства на балансе Google Play нельзя перенести в профиль в новой стране.

    Меняем страну:

    Определимся сразу, что все пункты лучше делать с компьютера. Эта статья уже стала достаточно популярна, и как показывает практика, с телефона почему-то не у всех получается сменить страну в плей-маркете. Хотя я все делал с телефона Итак, поехали.

    1. Меняем реальную страну

    Если вы уже находитесь в другой стране, то просто пропустите этот шаг. Если же вам надо сменить страну на отличную от той, в которой вы сейчас, то вам нужно указать DNS этой страны: как это сделать.

    2. Добавляем/изменяем адрес

    • Здесь меняем платежный адрес: https://payments.google.com/payments/home#paymentMethods Т.е. если у вас привязана банковская карта, то заходите в её настройки и указываете ваш новый адрес. Саму карту удалять не надо. Ссылка на справку гугла.
    • Здесь меняем домашний адрес: https://payments.google.com/payments/home#settings. Для того чтобы был домашний адрес, должен быть хотя бы один добавленный способ оплаты (карта или PayPal). Ссылка на справку гугла.
    • Здесь проверяем, что все адреса принадлежат новой стране: https://pay.google.com/payments/u/0/home#addressBook
    • Если у вас в каком-то из предыдущих пунктов осталось два адреса, то обязательно поставьте по умолчанию новый адрес.

    3. Чистим кэш

    • Удаляем кэш в гугл-плей на телефоне: Настройки ->Приложения ->Google Play Store ->Удалить данные (не само приложение, а сохраненные им данные, ну или как это называют все — КЭШ).
    • Заходим в Google Play, снова вводим пароль, принимаем соглашение для новой страны и О чудо! Всё работает!

    Частые вопросы

    1. Почему не получается сменить страну?

    Возможность сменить страну может быть отключена, если:

    • Вы меняли страну в течение последнего года.
    • Вы находитесь за пределами нужной страны (система определяет это по вашему IP-адресу). Если вы сменили DNS, то этого не произойдет.
    • Вы пользуетесь Семейной библиотекой Google Play.

    2. Что происходит с балансом Google Play после смены страны?

    Баланс Google Play связан со страной в Google Play. Если вы смените ее, то перенести средства на балансе в новый профиль будет нельзя.

    Однако средства не пропадут. Они станут доступны снова, если вы переключитесь на старую страну.



    Гугл плэй payments google com

    Это видео недоступно.

    Очередь просмотра

    • Удалить все
    • Отключить

    YouTube Premium

    ГУГЛ СНИМАЕТ ДЕНЬГИ С ВАШЕЙ БАНКОВСКОЙ КАРТЫ? helppay#

    Хотите сохраните это видео?

    • Пожаловаться

    Пожаловаться на видео?

    Понравилось?

    Не понравилось?

    Текст видео

    https://afflinks.ru/company/fb — «Создайте систему непрерывного потока клиентов из Facebook и Instagram в свой или чужой бизнес и зарабатывайте на этом от 45 000 руб. каждый месяц! Реальные Деньги из Facebook
    и Instagram 3.0″

    Если вы пользуетесь платными услугами гугл, то наверняка, вы уже добавили свою карту в центр платежей от Google. Однако, недавно я обнаружил странные списания по карте в моей выписке и адрес с пояснением g.co/helppay. Списывает ли Гугл деньги тайком?!

    **********************************
    Возвращайте деньги за покупки — https://goo.gl/rEI7eX — начните экономить уже сейчас! Покупайте в более чем 958 интернет-магазинах по всему миру!
    **********************************
    Зарабатывай на микрозаймах: https://goo.gl/oCPJmK

    ———
    Поделись видео с друзьями:

    Это канал про то, как эффективно и рационально распоряжаться деньгами, как вести планирование своих доходов и расходов.

    Как оказалось, многие думают, что надо уметь только зарабатывать. Поверьте, не меньше важны и Ваши траты. Умные траты. Без ущемления своих интересов и качества жизни.

    Понравилась статья? Поделиться с друзьями:
    Добавить комментарий

    ;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

    Adblock
    detector