SDK enterprise-уровня для Android / Интеграция SDK на стороне приложения
  На главную

SDK enterprise-уровня для Android

Интеграция SDK на стороне приложения

Общая логика покупки

  1. Реализуйте получение платежного токена одним из следующих способов:
    • С помощью методов библиотеки Store (рекомендуется):
      • Для покупки одного предмета вызовите метод createOrderByItemSku.
      • Для покупки товаров в корзине:
        1. После наполнения корзины пользователем вызовите метод fillCurrentCartWithItems.
        2. Вызовите метод createOrderFromCartById или createOrderFromCurrentCart.

    • С помощью IGS API.
    • С помощью собственных серверных методов или методов BaaS-решения.

  1. Реализуйте открытие платежного интерфейса:
Copy
Full screen
Small screen
val intent = XPayments.createIntentBuilder(this)
               .accessToken(<accessToken>)
               .isSandbox(<isSandbox>)
           	.setStatusReceivedCallback(object : StatusReceivedCallback {
               	override fun onSuccess(data: InvoicesDataResponse) {
                   		Log.d(TAG, "StatusReceivedCallback is fired. Result data = $data")
               	}
           	})
           	.build()
Примечание
В качестве примера реализации используйте демопроект.

Варианты открытия платежного интерфейса

В SDK для Android предусмотрено 3 способа отображения платежного интерфейса внутри приложения:

WebViewCustom TabsTrusted Web Activity
Преимущества
  • Позволяет сделать процесс покупки в приложении бесшовным, т. к. пользователи не видят переходов между приложением и веб-страницей.
  • Нет стандартной панели инструментов в верхней части экрана.
  • Интегрируется с Google Wallet и другими платежными сервисами на устройстве. Это позволяет автоматически заполнять поля сохраненными данными, например, email-адрес, реквизиты банковской карты.
  • Позволяет плавно переходить на веб-страницу с использованием специального фона и эффекта затухания.
  • Интегрируется с Google Wallet  и другими платежными сервисами на устройстве. Это позволяет автоматически заполнять поля сохраненными данными, например, email-адрес, реквизиты банковской карты.
  • Позволяет зафиксировать положение экрана.
  • Нет стандартной панели инструментов в верхней части экрана.
Недостатки
  • Не поддерживает функции безопасности, например, Google Wallet.
  • Не работает автозаполнение полей сохраненными данными, например, email-адрес, реквизиты банковской карты.
  • Открывает веб-страницу в отдельном окне поверх приложения.
  • Возможности зависят от браузера Chrome на устройстве пользователя и его версии.
  • Нельзя зафиксировать положение экрана.

Пример отображения WebView:

Пример отображения Custom Tabs:

Пример отображения Trusted Web Activity:

Настройка способа открытия платежного интерфейса

По умолчанию SDK использует Custom Tabs. Если на устройстве пользователя использование Custom Tabs недоступно, например, если не установлен подходящий браузер, SDK автоматически переключится на другие способы открытия платежного интерфейса. Сначала на WebView, а затем на внешний браузер, установленный на устройстве по умолчанию.

Вы можете установить другой основной способ открытия платежного интерфейса с помощью метода setActivityType.

Пример:

Copy
Full screen
Small screen
XPayments.createIntentBuilder(this)
  .accessToken(AccessToken(token))
  .isSandbox(BuildConfig.IS_SANDBOX)
  .setActivityType(ActivityType.TRUSTED_WEB_ACTIVITY)
  .build()

В случае, если установленный вами способ будет недоступен, SDK будет переключаться на другие варианты в следующем порядке: Trusted Web Activity > Custom Tabs > WebView > внешний браузер, установленный на устройстве по умолчанию.

Внимание

Если вы хотите установить Trusted Web Activity в качестве основного способа открытия платежного интерфейса обратитесь к персональному менеджеру проекта или напишите на csm@xsolla.com.

Вам потребуется предоставить следующую информацию:

Подробная информация о Trusted Web Activity приведена в документации Google.

Настройка кнопки закрытия платежного интерфейса

Мы рекомендуем настроить кнопку закрытия платежного интерфейса, т. к. строка браузера и стандартные элементы навигации не видны пользователю в WebView и Trusted Web Activity. Для этого в объекте PaymentOptions в параметре ui.mobile передайте объект mobile = UiMobileProjectSettingHeader с параметром closeButton=true.

Вы можете выбрать значок, который будет отображаться на кнопке. Для этого передайте в параметре closeButtonIcon:

  • “arrow” — для отображения значка ;
  • “cross” — для отображения значка × (по умолчанию).

Пример объекта PaymentOptions:

Copy
Full screen
Small screen
val paymentOptions = PaymentOptions(
            isSandbox = isSandbox,
            settings = PaymentProjectSettings(
                ui = UiProjectSetting(mobile = MobileSettings(header = UiMobileProjectSettingHeader(closeButton = true, closeButtonIcon = "arrow"))),
                returnUrl = "app://xpayment.${getApplication<Application>().packageName}",
                redirectPolicy = SettingsRedirectPolicy(
                    redirectConditions = "any",
                    delay = 5,
                    statusForManualRedirection = "any",
                    redirectButtonCaption = "Back to the Game"
                )
            )
        )

Пример использования параметров closeButton и closeButtonIcon в WebView и Trusted Web Activity:

Была ли статья полезна?
Спасибо!
Что может сделать страницу еще лучше? Сообщение
Жаль, что так произошло
Расскажите, почему статья не была полезна. Сообщение
Спасибо за обратную связь!
Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.
Последнее обновление: 5 сентября 2024

Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.

Сообщите о проблеме
Мы постоянно улучшаем качество нашей документации. Ваш отзыв поможет нам в этом.
Укажите email-адрес, чтобы мы могли связаться с вами
Спасибо за обратную связь!