Получение списка покупок

Для получения списка покупок используйте метод getPurchases:

RuStoreBillingClient.INSTANCE.getPurchases().getPurchases().addOnCompleteListener(new OnCompleteListener<PurchasesResponse>() {
    @Override
    public void onFailure(@NonNull Throwable throwable) {
        // Process error
    }
 
    @Override
    public void onSuccess(PurchasesResponse purchasesResponse) {
        // Process success
    }
});

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

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

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

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() — указанная разработчиком строка, содержащая дополнительную информацию о заказе;
  • getSubscriptionToken() — токен для валидации покупки на сервере.

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

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

image   

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

    image  

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

image

Was this information helpful?