Перейти к основному содержимому

Отмена покупки

примечание

Настоящий раздел содержит сведения об отмене покупки для следующих языков программирования:

  • Kotlin;
  • Java;
  • Unity;
  • Godot;
  • React Native;
  • Flutter;
  • Unreal Engine.

Для отмены покупки используйте метод deletePurchase

val purchasesUseCase: PurchasesUseCase = billingClient.purchases
purchasesUseCase.deletePurchase(purchaseId = "purchaseId")
.addOnSuccessListener {
// Process success
}.addOnFailureListener { throwable: Throwable ->
// Process error
}

purchaseId — идентификатор покупки.

к сведению

Используйте этот метод, если у вас есть логика, завязанная на удалении покупки. Покупка отменяется автоматически через таймаут в 20 минут, либо при повторной покупке от того же клиента.

Обработка ошибок

Для показа диалога с ошибкой пользователю используйте метод resolveForBilling.

public fun RuStoreException.resolveForBilling(context: Context)

Возможные ошибки

  • RuStoreNotInstalledException() — на устройстве пользователя не установлен RuStore.
  • RuStoreOutdatedException() — RuStore установленный на устройстве пользователя не поддерживает платежи.
  • RuStoreUserUnauthorizedException() — пользователь не авторизован в RuStore.
  • RuStoreApplicationBannedException() — приложение заблокировано в RuStore.
  • RuStoreUserBannedException() — пользователь заблокирован в RuStore.
  • RuStoreException(message: String) — базовая ошибка RuStore от которой наследуются остальные ошибки.

При вызове метода RuStoreBillingClient.purchases.purchaseProduct(), ошибки обрабатываются автоматически.