Я пытаюсь реализовать в приложении биллинговой системы в моем приложении, но я не могу запросить инвентарь для получения подписки, потому что я получаю следующее сообщение об ошибке:Android в приложении покупка не удалась
IabResult: Error refreshing inventory (querying owned items). (response: -1003:Purchase signature verification failed)
Что я сделал:
- Подпись APK загружается в магазине Google Play в закрытом ALPHA и это опубликовал
- Я добавил тестер счета (Gmail) в разделе тестеры (На тестирующем устройстве используется одна и та же учетная запись gmail)
- Я отправил электронное письмо со ссылкой на тестеры, чтобы «стать тестером » для приложения (я также вижу приложение в Play Хранить если искать его)
- Я создал подписку и все опубликованные
- заявление было рассмотрено Google и все, кажется, хорошо (статус: опубликовано)
- применение версии название «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 кэширует некоторые данные. Должен ли я выполнить сброс настроек? Или как я могу очистить кэшированные данные?
Правильно ли ваш «лицензионный ключ»? который вы используете? – Riad
'com.google.android.gms: play-services-analytics: 9.0.0' –
Я имел в виду https://developer.android.com/google/play/billing/api.html? – Riad