Интеграция SDK на стороне приложения
Общая логика покупки
- Реализуйте получение платежного токена одним из следующих способов:
- С помощью методов библиотеки Store (рекомендуется):
- Для покупки одного предмета вызовите метод
createOrderByItemSku
. - Для покупки товаров в корзине:
- После наполнения корзины пользователем вызовите метод
fillCurrentCartWithItems
. - Вызовите метод
createOrderFromCartById
илиcreateOrderFromCurrentCart
.
- После наполнения корзины пользователем вызовите метод
- Для покупки одного предмета вызовите метод
- С помощью методов библиотеки Store (рекомендуется):
- С помощью IGS & BB API.
- С помощью собственных серверных методов или методов BaaS-решения.
- Реализуйте открытие платежного интерфейса:
- kotlin
vmPurchase.paymentToken.observe(this) { token ->
val intent = XPayments.createIntentBuilder(this)
.accessToken(AccessToken(token))
.isSandbox(BuildConfig.IS_SANDBOX)
.useWebview(true)
.build()
startActivityForResult(intent, RC_PAYSTATION)
}
- Реализуйте обработку результата платежа:
- kotlin
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == RC_PAYSTATION) {
val (status, _) = XPayments.Result.fromResultIntent(data)
when (status) {
XPayments.Status.COMPLETED -> showSnack(getString(R.string.payment_completed))
XPayments.Status.CANCELLED -> showSnack(getString(R.string.payment_cancelled))
XPayments.Status.UNKNOWN -> showSnack(getString(R.string.payment_unknown))
}
}
}
Варианты открытия платежного интерфейса
В зависимости от того, какие параметры передаются в метод XPayments.createIntentBuilder
, платежный интерфейс открывается с помощью WebView или Custom Tab.
Если передается параметр useWebview(true)
, для открытия платежного интерфейса всегда используется WebView.
Custom Tab используется, если выполняются условия:
- При вызове
XPayments.createIntentBuilder
не передается параметрuseWebview
или передаетсяuseWebview(false)
. - На устройстве пользователя по умолчанию используется один из следующих браузеров:
- Google Chrome;
- Samsung Internet Browser;
- Huawei Browser.
Если используется другой браузер, платежный интерфейс откроется в WebView независимо от параметров метода XPayments.createIntentBuilder
.
В WebView пользователь не увидит строку браузера и стандартные элементы навигации. Это позволяет сделать процесс покупки в приложении бесшовным. Но вам потребуется доработать приложение и добавить значок ← для закрытия платежного интерфейса на любом этапе покупки. Пример такой доработки приведен в демоприложении.
При использовании Custom Tab пользователь сможет закрыть платежный интерфейс, нажав значок ✖.
Пример использования WebView:
Пример использования Custom Tab:
Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.