Потребление (подтверждение) покупки
RuStore содержит продукты следующих типов:
- CONSUMABLE — потребляемый (можно купить много раз, например, кристаллы в приложении);
- NON_CONSUMABLE — непотребляемый (можно купить один раз, например отключение рекламы в приложении);
- SUBSCRIPTION — подписка (можно купить на период времени, например подписка в стриминговом сервисе).
Потребления требуют только продукты типа CONSUMABLE, если они находятся в состоянии PurchaseState.PAID.
Для потребления покупки вы можете использовать метод confirmPurchase:
val purchasesUseCase: PurchasesUseCase = billingClient.purchases purchasesUseCase.confirmPurchase(purchaseId = "purchaseId" ) .addOnSuccessListener { response: ConfirmPurchaseResponse -> // Process success }.addOnFailureListener { throwable: Throwable -> // Process error } |
- purchaseId — идентификатор покупки;
- developerPayload — указанная разработчиком строка, содержащая дополнительную информацию о заказе (опционально).
Метод возвращает:
data class ConfirmPurchaseResponse( override val meta: RequestMeta?, override val code: Int, override val errorMessage: String?, override val errorDescription: String?, override val errors: List<DigitalShopGeneralError>?, ) : ResponseWithCode |
- meta — дополнительная информация о запросе$
- code — код ответа;
- errorMessage — сообщение об ошибке для пользователя;
- errorDescription — расшифровка сообщения об ошибке;
- errors — список ошибок.
Структура дополнительной информации о запросе:
data class RequestMeta( val traceId: String, ) |
- traceId — метка запроса.
Структура ошибки:
data class DigitalShopGeneralError( val name: String?, val code: Int?, val description: String?, ) |
- name — наименование атрибута ошибки;
- code — код ошибки;
- description — описание ошибки.
Обновлено 12 апреля 2023 г.
Was this information helpful?