Моя цель - отложить подписку пользователя в Android.Сначала мне нужен токен покупки подписки, чтобы сделать вызов API.
У меня есть этот код:
private IAPManager() {
}
public static IAPManager getInstance() {
return instance;
}
public void init(final Context context) {
if (!BillingProcessor.isIabServiceAvailable(context)) {
Log.d(TAG, "In-app billing service is unavailable, please upgrade Android Market/Play to version >= 3.9.16");
}
Log.d("DEF_SUB", "billing initd");
bp = BillingProcessor.newBillingProcessor(context, LICENSE_KEY, new BillingProcessor.IBillingHandler() {
@Override
public void onProductPurchased(@NonNull String productId, @Nullable TransactionDetails details) {
updatePrefsWithPurchaseToken(context, details.purchaseInfo.purchaseData.purchaseToken);
Toast.makeText(context, "purchased TOAST", Toast.LENGTH_SHORT).show();
Log.d(TAG, "onProductPurchased: " + productId);
resultListener.onResult(true);
}
@Override
public void onBillingError(int errorCode, @Nullable Throwable error) {
Log.d(TAG, "onBillingError: " + Integer.toString(errorCode));
if (resultListener != null)
resultListener.onResult(false);
}
@Override
public void onBillingInitialized() {
Log.d(TAG, "onBillingInitialized");
readyToPurchase = true;
bp.loadOwnedPurchasesFromGoogle();
}
@Override
public void onPurchaseHistoryRestored() {
Log.d(TAG, "onPurchaseHistoryRestored");
}
});
bp.initialize();
}'
Плюс еще немного, но кажется, что он не выполняет код updatePrefsWithPurchaseToken()
, поэтому я не могу получить доступ к токену покупки в моем коде, когда это необходимо.Тост или журнал тоже не отображаются.