Восстановить покупку в моем приложении больше не работает - PullRequest
0 голосов
/ 16 июня 2020

У меня есть приложение, в котором у меня есть 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. Я тестировал несколько дней и до сих пор не могу решить эту проблему. Может ли кто-нибудь дать мне какие-нибудь подсказки или идеи?

...