Получение информации о покупке

Для получения информации о покупке, используйте метод getPurchaseInfo:

RuStoreBillingClient.INSTANCE.getPurchases().getPurchaseInfo("purchaseId").
addOnCompleteListener(new OnCompleteListener<PurchaseInfoResponse>() {
    @Override
    public void onFailure(@NonNull Throwable throwable) {
        // Process error
    }
 
    @Override
    public void onSuccess(PurchaseInfoResponse result) {
        // Process success
    }
});

Метод возвращает:

interface PurchaseInfoResponse 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();
 
    @Nullable
    public Purchase getPurchase();
}
  • getMeta() — дополнительная информация о запросе;
  • getCode() — код ответа;
  • getErrorMessage() — сообщение об ошибке для пользователя;
  • getErrorDescription() — расшифровка сообщения об ошибке; 
  • getErrors() — список ошибок для запрошенных покупок;
  • getPurchase() — список запрошенных покупок.

Структура дополнительной информации о запросе:

interface RequestMeta {
    public String getTraceId();
}

  • getTraceId() — метка запроса.

Структура ошибки:

interface DigitalShopGeneralError {
    @Nullable
    public String getName();
 
    @Nullable
    public Integer getCode();
 
    @Nullable
    public String getDescription();
}
  • getName() — наименование атрибута ошибки;
  • getCode() — код ошибки;
  • getDescription() — описание ошибки.

Структура покупки:

interface Purchase {
    @Nullable
    public String getPurchaseId();
 
    public String getProductId();
 
    @Nullable
    public ProductType getProductType();
 
    @Nullable
    public String getInvoiceId();
 
    @Nullable
    public String getDescription();
 
    @Nullable
    public String getLanguage();
 
    @Nullable
    public Date getPurchaseTime();
 
    @Nullable
    public String getOrderId();
 
    @Nullable
    public String getAmountLabel();
 
    @Nullable
    public Integer getAmount();
 
    @Nullable
    public String getCurrency();
 
    @Nullable
    public Integer getQuantity();
 
    @Nullable
    public PurchaseState getPurchaseState();
 
    @Nullable
    public String getDeveloperPayload();
 
    @Nullable
    public String getSubscriptionToken();
}
 
  • getPurchaseId() — идентификатор покупки;
  • getProductId() — идентификатор продукта;
  • getProductType() — тип продукта;
  • getInvoiceId() — идентификатор счета;
  • getDescription() — описание покупки;
  • getLanguage() — язык, указанный с помощью BCP 47 кодирования; 
  • getPurchaseTime() — время покупки (в формате RFC 3339);
  • getOrderId() — уникальный идентификатор оплаты, сформированный приложением (uuid);
  • getAmountLabel() — отформатированная цена покупки, включая валютный знак на языке [language];
  • getAmount() — цена в минимальных единицах валюты;
  • getCurrency() — код валюты ISO 4217;
  • getQuantity() — количество продукта;
  • getPurchaseState() — состояние покупки:
    • возможные значения состояния покупки: 

      • CREATED — создана;
      • INVOICE_CREATED — создана, ожидает оплаты; 
      • CONFIRMED — подтверждена;
      • PAID — оплачена;
      • CANCELLED — покупка отменена; 
      • CONSUMED — потребление покупки подтверждено; 
      • CLOSED — подписка была отменена.
  • getDeveloperPayload() — указанная разработчиком строка, содержащая дополнительную информацию о заказе;
  • getDeveloperPayload() — токен для валидации покупки на сервере.

Статусная модель (purchaseState):

Статусная модель покупки подписок (SUBSCRIPTIONS):

image

Статусная модель покупки непотребляемых продуктов (NON-CONSUMABLES):

image

 Статусная модель покупки потребляемых продуктов (CONSUMABLES):

image

Was this information helpful?