OnIabPurchaseFinished nunca llamado.
He estado intentando configurar la facturación en la aplicación para mi primera aplicación, y he estado usando el sku android.test.purchased. La compra viene a través, y consigo conseguir el SKU en mi inventario, pero, como el título dice, onIabPurchaseFinished, nunca se llama.
Creo que puede tener algo que ver con este registro: "No se pudo guardar qué vista tiene foco porque la vista enfocada com.android.internal.policy.impl.PhoneWindow$DecorView@406743d0 no tiene id". Eso aparece, justo antes de ir a Google Play. No estoy muy seguro de lo que eso significa …
- Transferencia de la aplicación de Android con suscripción a otra cuenta
- Facturación en la aplicación de Android: compra estancias estatales "compradas" después de la cancelación del pedido
- Estado de prueba gratuita de suscripción de IAB
- Comprador de comprobación de compra de Android en la compra sin conexión
- Límite máximo de artículos en la facturación de la aplicación o en la compra de la aplicación
Compra de lanzamiento:
mHelper.launchPurchaseFlow(this, sku, 10001, mPurchaseFinishedListener, "");
Y el oyente:
IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() { @Override public void onIabPurchaseFinished(IabResult result, Purchase info) { System.out.println("Purchase Finish heard something"); if (result.isFailure()) { Log.d(TAG, "Error purchasing: " + result); return; } else{ Log.d(TAG,"Success!"); } } };
- Android: cómo probar la facturación en la aplicación
- Android en el precio mínimo de facturación de aplicaciones
- Android en la aplicación de facturación: proteger la clave pública de la aplicación
- Android In App Billing "Servicio de facturación no disponible en el dispositivo. (respuesta: 3: Facturación no disponible) "
- Eliminar el historial del ID de prueba de facturación interna para volver a probar
- Suscripciones a Playstore - estrategia de pruebas
- ¿Cuándo la aplicación Android obtiene el estado "Vencido" después de cancelar la suscripción durante el período de prueba
- En el módulo BillingService, ¿qué necesita modificarse para aumentar la seguridad?
Intente agregar esto a la actividad que llama a mHelper.launchPurchaseFlow(..)
:
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { Log.d(TAG, "onActivityResult(" + requestCode + "," + resultCode + "," + data); // Pass on the activity result to the helper for handling if (!mHelper.handleActivityResult(requestCode, resultCode, data)) { // not handled, so handle it ourselves (here's where you'd // perform any handling of activity results not related to in-app // billing... super.onActivityResult(requestCode, resultCode, data); } else { Log.d(TAG, "onActivityResult handled by IABUtil."); } }
Acabo de descubrir otra cosa importante: el requestCode que se utiliza para iniciar el flujo de compra tiene que ser> = 0!
I used "new Random () nextInt ()" para generar un requestCode aleatorio, ya veces funcionaba, a veces no lo hacía. Ahora he encontrado en la siguiente documentación, que el requestCode no debe ser un número negativo: