Ответ 1
Вы не получаете подписи для идентификаторов тестов, android.test.purchased и т.д.
Вы получите подписи с реальными покупками.
Я работаю над 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 - нет.
Вы не получаете подписи для идентификаторов тестов, android.test.purchased и т.д.
Вы получите подписи с реальными покупками.
Как было сказано Rawkode, вы больше не получаете подписи для тестовых покупок (android.test. *). Я взял погружение и загрузил свое приложение на рынок (просто не публиковал его), используя мои настоящие продукты.
Подписи с низким и созерцанием начали возвращаться! Я рекомендую изменить любую проверку на стороне сервера, которую вы используете, чтобы пропустить проверку подписи, когда данные содержат идентификатор android.test. *. Id.
Что вы имеете в виду подписи? Это подписки? Или элемент в приложении (потребляемый или нет)? Поскольку 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
Там также пример кода.