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

SDK для Android

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

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

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

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

  1. Реализуйте открытие платежного интерфейса:
Примечание
В качестве примера реализации используйте демопроект.
Copy
Full screen
Small screen
vmPurchase.paymentToken.observe(this) { token ->
    val intent = XPayments.createIntentBuilder(this)
        .accessToken(AccessToken(token))
        .isSandbox(BuildConfig.IS_SANDBOX)
        .useWebview(true)
        .build()
    startActivityForResult(intent, RC_PAYSTATION)
}
  1. Реализуйте обработку результата платежа:
Copy
Full screen
Small screen
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:

Прогресс интеграции
Спасибо за обратную связь!
Последнее обновление: 21 марта 2024

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

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