Я перехожу с AIDL на Google Billing Library 2.0.3.
queryPurchases () извлекает историю покупок локального кэша, но есть проблема, из-за которой невозможно подтвердить историю покупок из-за синхронизациипроблема.
Поэтому используйте queryPurhcaseHistoryAsync ().
Однако, хотя queryPurchaseHistoryAsync () предоставляет последнюю историю покупок для каждого элемента, он не знает статус покупки.
queryPurchases () используется для поиска в списке расходных материалов.
1.Могу ли я запрашивать только покупки, которые можно использовать с помощью запроса queryPurchaseHistoryAsync ()?
2.Планируете ли вы предоставить значение для проверки статуса покупки, например, на сервере? (потребление, состояние, покупка, тип покупки) (ps: //developers.google.com/android-publisher/api-ref/purchases/products)
3.Когда кешируется моя история покупок при совершении покупки?
4.Вызов queryPurchaseHistoryAsync () не обновляет кэш Google Play Store.Можно ли предоставить?
5.Кроме того, постоянное значение PurchaseState, по-видимому, определяется по-разному в sdk, server и json.Есть ли особая причина?
[Google Billing Library 2.0.3]
@IntDef({
PurchaseState.UNSPECIFIED_STATE,
PurchaseState.PURCHASED,
PurchaseState.PENDING,
})
@Retention(SOURCE)
public @interface PurchaseState {
// Purchase with unknown state.
int UNSPECIFIED_STATE = 0;
// Purchase is completed.
int PURCHASED = 1;
// Purchase is waiting for payment completion.
int PENDING = 2;
}
[json]
/** Returns the state of purchase. */
public @PurchaseState int getPurchaseState() {
switch (mParsedJson.optInt("purchaseState", PurchaseState.PURCHASED)) {
case 4:
return PurchaseState.PENDING;
default:
return PurchaseState.PURCHASED;
}
}
[сервер] https://developers.google.com/android-publisher/api-ref/purchases/products)
6.Кроме того, планируете ли вы предоставить возможность проверить, является ли приобретенный продукт продуктом «inapp» или продуктом «subs»? (При использовании aidl вы можете проверить itemType в объекте покупки.)