2016-07-20 5 views
0

Я пытаюсь реализовать в приложении биллинговой системы в моем приложении, но я не могу запросить инвентарь для получения подписки, потому что я получаю следующее сообщение об ошибке:Android в приложении покупка не удалась

IabResult: Error refreshing inventory (querying owned items). (response: -1003:Purchase signature verification failed) 

Что я сделал:

  1. Подпись APK загружается в магазине Google Play в закрытом ALPHA и это опубликовал
  2. Я добавил тестер счета (Gmail) в разделе тестеры (На тестирующем устройстве используется одна и та же учетная запись gmail)
  3. Я отправил электронное письмо со ссылкой на тестеры, чтобы «стать тестером » для приложения (я также вижу приложение в Play Хранить если искать его)
  4. Я создал подписку и все опубликованные
  5. заявление было рассмотрено Google и все, кажется, хорошо (статус: опубликовано)
  6. применение версии название «1.1. 5-альфа-15 ", код версии" 15 "и имя пакета совпадает с именем в Google Play.

Код (в деятельности):

private IabHelper mIabHelper;  

// Init setup listener 
private IabHelper.OnIabSetupFinishedListener mIabSetupListener = new IabHelper.OnIabSetupFinishedListener() { 
    @Override 
    public void onIabSetupFinished(IabResult result) { 
     if (result.isSuccess()) { 
     // Load success, now query for inventory 
     List<String> skus = new ArrayList(); 
     skus.add("packagename.org.dev.subscription.monthly"); 
     skus.add("packagename.org.dev.subscription.yearly"); 

     mIabHelper.queryInventoryAsync(true, skus, mQueryInventoryFinishedListener); 
     } 
    } 
}; 

// Listener to load the subscriptions 
private IabHelper.QueryInventoryFinishedListener mQueryInventoryFinishedListener = new IabHelper.QueryInventoryFinishedListener() { 
    @Override 
    public void onQueryInventoryFinished(IabResult result, Inventory inv) { 
     if (result.isFailure()) { 
     Log.e(TAG, "Failure, check error!"); 
     return; 
     } 
    } 
}; 

@Override 
protected void onCreate(Bundle savedState) { 
    super.onCreate(savedState); 

    mIabHelper = new IabHelper(this, PUBLIC_KEY_BASE_64); 
    mIabHelper.enableDebugLogging(true, "BILLING"); 
    mIabHelper.startSetup(mIabSetupListener); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (mIabHelper == null || !mIabHelper.handleActivityResult(requestCode, resultCode, data)) 
     super.onActivityResult(requestCode, resultCode, data); 
} 

@Override 
protected void onDestroy() { 
    super.onDestroy(); 

    if (mIabHelper != null) { 
     mIabHelper.dispose(); 
    } 
} 

Я скопировал тот же APK на устройстве (подпись) и установил его, но я получаю вышеуказанную ошибку. Я также запускаю приложение в режиме отладки, такую ​​же ошибку. Я не знаю, что делать.

Я видел здесь (stackoverflow), что API Google кэширует некоторые данные. Должен ли я выполнить сброс настроек? Или как я могу очистить кэшированные данные?

+0

Правильно ли ваш «лицензионный ключ»? который вы используете? – Riad

+0

'com.google.android.gms: play-services-analytics: 9.0.0' –

+0

Я имел в виду https://developer.android.com/google/play/billing/api.html? – Riad

ответ

0

Проверка подписи не выполняется, если основной ключ базы 64 для вашего приложения неверен. убедитесь, что вы используете правильный «PUBLIC_KEY_BASE_64».

Смежные вопросы