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

Подтверждение покупки

Продукты, требующие подтверждения

RuStore содержит продукты следующих типов:

  • CONSUMABLE — потребляемый (можно купить много раз, например, кристаллы в приложении);
  • NON_CONSUMABLE — непотребляемый (можно купить один раз, например, отключение рекламы в приложении);
  • SUBSCRIPTION — подписка (можно купить на период времени, например подписка в стриминговом сервисе).

Подтверждения требуют только продукты типа CONSUMABLE, если они находятся в состоянии:

  • PurchaseState.PAID (для Kotlin, Java, Unity, React Native, Flutter, Unreal Engine);
  • purchase_state == "PAID" (для Godot).

Вызов метода подтверждения

Для подтверждения покупки используйте метод confirmPurchase. Запрос на подтверждение покупки должен сопровождаться выдачей товара. После вызова подтверждения покупка перейдёт в статус CONSUMED.

val purchasesUseCase: PurchasesUseCase = billingClient.purchases
purchasesUseCase.confirmPurchase(purchaseId = "purchaseId", developerPayload = null)
.addOnSuccessListener {
// Process success
}.addOnFailureListener { throwable: Throwable ->
// Process error
}
  • purchaseId — идентификатор покупки;
  • developerPayload — указанная разработчиком строка, содержащая дополнительную информацию о заказе (необязательно).
осторожно

Метод подтверждения должен быть вызван в течение 3-х дней с момента совершения операции. Иначе статус покупки будет изменен на CANCELLED и средства будут разблокированы на счёте покупателя.