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