2014-09-11 1 views
0

Я пытаюсь добавить Google Apps для входящих платежей в приложение для Android 4+. Я настроил все, как описано в «Preparing Your In-app Billing Application». Теперь я загрузил приложение на канал тестирования Alpha в консоли разработчика.Платеж для покупок в Google Play: покупка теста не работает + Отсутствует информация о товаре

Кроме того, у меня есть тестовая учетная запись (described here), чтобы иметь возможность приобретать товары без запуска реального платежа.

После установки альфа-версии из Play Маркета на моем тестовом устройстве (с помощью тестовой учетной записи, конечно) там две проблемы:

  1. Нет продукта информация извлекается из Play Store. Таким образом, я не могу показать какую-либо информацию о ценах и т. Д.

  2. Когда я начинаю покупку, нет абсолютно никакого намека на то, что это будет бесплатная пробная покупка. Все выглядит как настоящая покупка.

Это код я использую:

String publicKey = MyApp.getPublicKey(); // de-code and get the public key 
final IabHelper googlePlayHelper = new IabHelper(context, publicKey); 

Log.d("TAG", "IabHelber Init"); 

googlePlayHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() { 
    public void onIabSetupFinished(IabResult result) { 
     if (!result.isSuccess()) { 
      Log.d("TAG", "IabHelber Init - Non Success: " + result); 
     } else { 
      Log.d("TAG", "IabHelber Init - SUCCESS"); 
      try { 
       googlePlayHelper.queryInventoryAsync(true, new IabHelper.QueryInventoryFinishedListener() { 
        public void onQueryInventoryFinished(IabResult result, Inventory inventory) { 
         if (result.isFailure()) { 
          Log.d("TAG", "query Inventory - Non Success: " + result); 
         } else { 
          Log.d("TAG", "query Inventory - SUCCESS"); 

          if (inventory.hasDetails(2my.product.id")) { 
           Log.d("TAG", "NO DETAILS"); 
          } else { 
           Log.d("TAG", "Has Details"); 
          } 
         } 
        } 
       }  
      } catch (Exception e) { 
       Log.d("TAG", "EXCEPTION: " + e.getMessage()); 
      } 
     } 
    } 
}); 

ТЕКУЩ показывает следующее:

D/TAG (25995): IabHelber Init 
D/TAG (25995): IabHelber Init - SUCCESS 
D/TAG (25995): query Inventory - SUCCESS 
D/TAG (25995): NO DETAILS 

Что может быть причина, что теперь детали извлекаются? Документы о том, что при проведении тестовой покупки должен быть намек. Почему вместо этого я запускаю «реальную» покупку?

+0

Вы проверить список продуктов через приложения с учетной записи Play Маркета, если она была активирована? –

+0

Да, статус всех IAPs «Активен» –

+0

«idmy.product.id» существует в вашем списке IAP? –

ответ

0

Мне не удалось выяснить, почему покупки тестовыми пользователями не обрабатываются как тестовые покупки. Но проблема с недостающими деталями продукта решается:

Я использовал следующий вызов для запроса инвентаризации:

googlePlayHelper.queryInventoryAsync(true, new IabHelper.QueryInventoryFinishedListener() { ... }); 

Это абсолютно правильный код и первые параметры (правда, в данном примере) говорится, что запрос должен получить сведения о продукте. Но мне кажется, что этот параметр не имеет никакого эффекта, пока еще параметр не задан: Нужно явно указать идентификаторы продукта хотелось бы принести:

List<String> productIDs = new ArrayList<String>(); 
productIDs.add(IAP_ID_1); 
productIDs.add(IAP_ID_2); 
productIDs.add(IAP_ID_3); 

googlePlayHelper.queryInventoryAsync(true, productIDs, new IabHelper.QueryInventoryFinishedListener() { ... }); 
Смежные вопросы