Android In-App Billing v3: не получает подписей

Я работаю над In App Store в своем приложении, я использовал AndroidBillingLibrary от robotmedia, когда я покупаю android.test.purchased, используя библиотеку, ответ в порядке, все данные, которые мне нужны, находятся там.

Проблема в том, что когда я переключился на Android In-App Billing v3, это все получено из ответа, без подписей.

{"packageName":"com.my.sampleapp","orderId":"transactionId.android.test.purchased","productId":"android.test.purchased","developerPayload":"","purchaseTime":0,"purchaseState":0,"purchaseToken":"inapp:com.my.sampleapp:android.test.purchased"}

Я следовал именно этому образцу https://developer.android.com/training/in-app-billing/preparing-iab-app.html#GetSample, но нет подписи. Я даже запускаю данное примерное приложение Google, но не повезло.

Я правильно установил открытый ключ RSA с кодировкой Base64 mHelper = new IabHelper(this, myPublicKey);

и это мой код покупки mHelper.launchPurchaseFlow(this, itempackage, 10001, mPurchaseFinishedListener);

OnIabPurchaseFinishedListener mPurchaseFinishedListener = new OnIabPurchaseFinishedListener() {
        public void onIabPurchaseFinished(IabResult result, Purchase purchase) {
            Log.i("Billing", "purchasing: " + result.getMessage());

            if (result.isFailure()) {
                Log.i("Billing", "Error purchasing: " + result);
                return;
            } else if (purchase.getSku().equals("android.test.purchased")) {
                Log.i("Billing - signature", purchase.getSignature());
                consumeItems();
            } else {
                Log.i("Billing", "Error purchasing: " + result);
            }
        }
    };

Как-то мой mPurchaseFinishedListener ничего не получает после покупки, но protected void onActivityResult(int requestCode, int resultCode, Intent data) получает что-то, но там нет подписи.

Какие-нибудь решения? Странно, что v2 получает сигнатуры, а v3 - нет.

Ответ 1

Вы не получаете подписи для идентификаторов тестов, android.test.purchased и т.д.

Вы получите подписи с реальными покупками.

Ответ 2

Как было сказано Rawkode, вы больше не получаете подписи для тестовых покупок (android.test. *). Я взял погружение и загрузил свое приложение на рынок (просто не публиковал его), используя мои настоящие продукты.

Подписи с низким и созерцанием начали возвращаться! Я рекомендую изменить любую проверку на стороне сервера, которую вы используете, чтобы пропустить проверку подписи, когда данные содержат идентификатор android.test. *. Id.

Ответ 3

Что вы имеете в виду подписи? Это подписки? Или элемент в приложении (потребляемый или нет)? Поскольку in-App Billing v3 не поддерживает подписки на данный момент, если вы хотите эту функцию, вам нужно использовать v2 (https://developer.android.com/google/play/billing/billing_overview.html). Кроме того, убедитесь, что ваш товар отмечен как "управляемый элемент" на консоли разработчика (для Billing v3).

Извините, если я неправильно понял. Кроме того, попробуйте включить режим отладки в вашем экземпляре IabHelper, это предоставит вам лучший обзор вашей проблемы.

mHelper.enableDebugLogging(true, "YOURTAG");

Я предлагаю взглянуть на руководство по внедрению на веб-сайте разработчиков: https://developer.android.com/google/play/billing/billing_integrate.html

Там также пример кода.