У меня есть приложение, в котором у меня есть 4 управляемых продукта в App-billing. Я использую следующий код для восстановления In-App-Billing:
Bundle ownedItems = mService.getPurchases(3, getPackageName(), "inapp", null);
int response = ownedItems.getInt("RESPONSE_CODE");
if (response == 0) {
ArrayList<String> ownedSkus =
ownedItems.getStringArrayList("INAPP_PURCHASE_ITEM_LIST");
ArrayList<String> purchaseDataList =
ownedItems.getStringArrayList("INAPP_PURCHASE_DATA_LIST");
ArrayList<String> signatureList =
ownedItems.getStringArrayList("INAPP_DATA_SIGNATURE_LIST");
String continuationToken =
ownedItems.getString("INAPP_CONTINUATION_TOKEN");
for (int i = 0; i < purchaseDataList.size(); ++i) {
String purchaseData = purchaseDataList.get(i);
String signature = signatureList.get(i);
String sku = ownedSkus.get(i);
// do something with this purchase information
}
Все работает хорошо годами. Но в последнее время многие из моих пользователей сообщают, что не могут восстановить свои покупки в приложении. Я провел тысячи тестов, а также отправил пользователям несколько версий для тестирования (включая последнюю и несколько старых версий) и обнаружил:
buyDataList.size () всегда возвращает ноль, что говорит о том, что пользователи этого не сделали. Ничего не покупаю.
Но они покупали раньше. Кроме того, когда тестировщики пытались приобрести тот же IAP, который они уже приобрели ранее, с них взималась плата во второй раз.
Я думаю, что что-то пошло не так с моими настройками в Google Play или где-то еще.
Ничего не менял (Артикул c.), Кроме цен на IAP. Я тестировал несколько дней и до сих пор не могу решить эту проблему. Может ли кто-нибудь дать мне какие-нибудь подсказки или идеи?