Ответ 1
У меня такая же проблема ранее. Перейдите на консоль разработчика Google и убедитесь, что ваше приложение ОПУБЛИКОВАНО для любой версии (alpha, beta или prod). Затем покупка приложения In будет работать:)
Это мой первый раз, когда речь идет о In-App Billing в андроиде 1) Я использую API v3 2) У меня есть альфа-версия моего приложения, чтобы проверить, а затем
3) Я создал продукт подписки
4) Это мой код для подписки на продукт
mSubscribeButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
try {
Bundle subscribeIntentBundle = mService.getBuyIntent(3, getPackageName(), "my_product_id", "subs", "bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ");
PendingIntent pendingIntent = subscribeIntentBundle.getParcelable("BUY_INTENT");
if (subscribeIntentBundle.getInt("RESPONSE_CODE") == 0) {
startIntentSenderForResult(pendingIntent.getIntentSender(), 4002, new Intent(), Integer.valueOf(0), Integer.valueOf(0), Integer.valueOf(0));
} else {
Toast.makeText(MainActivity.this, "Error Code: " + subscribeIntentBundle.getInt("RESPONSE_CODE"), Toast.LENGTH_SHORT).show();
}
} catch (RemoteException e) {
e.printStackTrace();
} catch (SendIntentException e) {
e.printStackTrace();
}
}
});
5) Я получаю следующую ошибку
Я пытался использовать разные устройства, и все они имеют ту же ошибку, я также вошел в систему с моей учетной записью Google и могу открыть Google Play Store и просматривать мои приложения.
Я попытался также очистить данные из Google Play Store от диспетчера приложений
Может ли кто-нибудь помочь?
У меня такая же проблема ранее. Перейдите на консоль разработчика Google и убедитесь, что ваше приложение ОПУБЛИКОВАНО для любой версии (alpha, beta или prod). Затем покупка приложения In будет работать:)
У вас такая же проблема с ужасным сообщением:
Требуется аутентификация. Вам нужно войти в свою учетную запись Google.
У меня было две проблемы:
"com.argonnetech.wordswriting.noads"
, но продукт приложения, настроенный в консоли разработчика Google Play (GPD), был назван просто "noads" Это сработало. Сообщение об ошибке вводит в заблуждение, такая ошибка, как "в приложении не существует, будет лучше".
Тестирование разработчика Android для учетной записи покупки в приложении должно выполняться по этим клавишам.
Base64EncodedPublicKey
//Тестирование base64EncodedPublicKey
public static final String base64EncodedPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCg" +
"KCAQEAhNe2XQ70DceAwE6uyYJGK1dIBbZcPdlER/9EEzylr6RDU6tnGj0Tk7kceN03GKvRf/ucT+ERLL3O" +
"aHR22PXRXLZ17NZ81x6oS2vGmLyXBnjrU/I+asl8cNuLGySaoCdXxPAV+A9g6OG13dk+KY9i0O1roGpFH" +
"fsAFyKCgSqR0PMJZ1bS+wFFBYf3M4IxgBcxuuZKDmR+MztCgm5N4zc6w2CwFZn3mXeDoTg15mWDU3sZO" +
"WeRwFeynhV+FCYdDp8DpAkLk1b5IiXYFQ53wxCh/GxiKqBB6uQMmAixFjAcZV1QWfcBABae9vxiV5" +
"VAEJvOOnhPxnaT9HYadW0pQ/UbJwIDAQAB";
И элемент, приобретенный таким образом,
ITEM_PURCHASED
//Тестирование ITEM_PURCHASED
public static final String ITEM_PURCHASED = "android.test.purchased";
И запустите этот код onCreate(), чтобы инициализировать класс IabHelper для покупка в приложении,
IabHelper helper = new IabHelper(this, Constants.base64EncodedPublicKey);
helper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
public void onIabSetupFinished(IabResult result) {
if (!result.isSuccess()) {
Log.d("#InAppStartSetup#", "In-app Billing setup failed: " + result);
} else {
Log.d("#InAppStartSetup#", "In-app Billing setup successful.");
}
}
});
И, наконец, купил время на этом дескрипторе кода,
helper.launchPurchaseFlow(YOUR_ACTIVITY, Constants.ITEM_PURCHASED,
YOUR_REQUEST_CODE, mPurchaseFinishedListener, "");
Спасибо, ребята...
Документация на developer.android.com кажется устаревшей.
Если вы хотите протестировать публикацию в своем аккаунте без в своем приложении, вам нужно создать группу google и добавить альфа-список тестеров. Глянь сюда: https://support.google.com/googleplay/android-developer/answer/3131213?hl=en
UPDATE
По состоянию на середину 2015 года это больше не требуется. У вас есть несколько новых вариантов тестирования в консоли разработчика Google Play.
Большинство вышеперечисленных решений работают, но для тех, кто все еще имеет эту проблему, попробуйте следующее:
В моем случае versionCode
, versionName
и applicationId
были не синхронизированы с текущей версией приложения на консоли разработчика. Я изменил их в файле build.gradle. Они были разные, потому что я переписал приложение в студии Android из затмения. После этого в приложении биллинг работал.
Ниже работает для меня: