Потребление покупки
Приложение RuStore содержит продукты следующих типов:
- CONSUMABLE — потребляемый (можно купить много раз, например, кристаллы в приложении);
- NON_CONSUMABLE — непотребляемый (можно купить один раз, например отключение рекламы в приложении);
- SUBSCRIPTION — подписка (можно купить на период времени, например подписка в стриминговом сервисе).
Потребления требуют только продукты типа CONSUMABLE, если они находятся в состоянии PurchaseState.PAID.
Для потребления покупки вы можете использовать метод confirmPurchase:
RuStoreBillingClient.INSTANCE.getPurchases().confirmPurchase( "purchaseId" , "developerPayload" ).addOnCompleteListener( new OnCompleteListener<ConfirmPurchaseResponse>() { @Override public void onFailure( @NonNull Throwable throwable) { // Process error } @Override public void onSuccess(ConfirmPurchaseResponse confirmPurchaseResponse) { // Process success } }); |
- purchaseId — идентификатор покупки.
- developerPayload — дополнительная информация от разработчика AnyApp (опционально).
Метод возвращает:
interface ConfirmPurchaseResponse extends ResponseWithCode { @Nullable @Override public RequestMeta getMeta(); @Override public int getCode(); @Nullable @Override public String getErrorMessage(); @Nullable @Override public String getErrorDescription(); @Nullable @Override public List<DigitalShopGeneralError> getErrors(); } |
- getMeta() — дополнительная информация о запросе;
- getCode() — код ответа;
- getErrorMessage() — сообщение об ошибке для пользователя;
- getErrorDescription() — расшифровка сообщения об ошибке;
- getErrors() — список ошибок.
Структура дополнительной информации о запросе:
interface RequestMeta { public String getTraceId(); } |
- getTraceId() — метка запроса.
Структура ошибки:
interface DigitalShopGeneralError { @Nullable public String getName(); @Nullable public Integer getCode(); @Nullable public String getDescription(); } |
- getName() — наименование атрибута ошибки;
- getCode() — код ошибки;
- getDescription() — описание ошибки.
Was this information helpful?