Интеграция SDK на стороне приложения
Общая логика покупки
- Реализуйте получение платежного токена одним из следующих способов:
- С помощью методов библиотеки Store (рекомендуется):
- Для покупки одного предмета вызовите метод
createOrderByItemSku
. - Для покупки товаров в корзине:
- После наполнения корзины пользователем вызовите метод
fillCurrentCartWithItems
. - Вызовите метод
createOrderFromCartById
илиcreateOrderFromCurrentCart
.
- После наполнения корзины пользователем вызовите метод
- Для покупки одного предмета вызовите метод
- С помощью методов библиотеки Store (рекомендуется):
- С помощью IGS API.
- С помощью собственных серверных методов или методов BaaS-решения.
- Реализуйте открытие платежного интерфейса:
- kotlin
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 способа отображения платежного интерфейса внутри приложения:
WebView | Custom Tabs | Trusted Web Activity | |
---|---|---|---|
Преимущества |
|
|
|
Недостатки |
|
|
|
Пример отображения WebView:
Пример отображения Custom Tabs:
Пример отображения Trusted Web Activity:
Настройка способа открытия платежного интерфейса
По умолчанию SDK использует Custom Tabs. Если на устройстве пользователя использование Custom Tabs недоступно, например, если не установлен подходящий браузер, SDK автоматически переключится на другие способы открытия платежного интерфейса. Сначала на WebView, а затем на внешний браузер, установленный на устройстве по умолчанию.
Вы можете установить другой основной способ открытия платежного интерфейса с помощью метода setActivityType
.
Пример:
- kotlin
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.
Вам потребуется предоставить следующую информацию:
- цифровой отпечаток сертификата SHA-256 для подписи приложения;
- ID пакета Android-приложения.
Подробная информация о Trusted Web Activity приведена в документации Google.
Настройка кнопки закрытия платежного интерфейса
Мы рекомендуем настроить кнопку закрытия платежного интерфейса, т. к. строка браузера и стандартные элементы навигации не видны пользователю в WebView и Trusted Web Activity. Для этого в объекте PaymentOptions
в параметре ui.mobile
передайте объект mobile = UiMobileProjectSettingHeader
с параметром closeButton=true
.
Вы можете выбрать значок, который будет отображаться на кнопке. Для этого передайте в параметре closeButtonIcon
:
“arrow”
— для отображения значка ←;“cross”
— для отображения значка × (по умолчанию).
Пример объекта PaymentOptions:
- kotlin
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:
Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.