En la aplicación de facturación V3
Tengo un problema con In App Billing. Estoy utilizando la clase de ayuda de la muestra TrivialDrive.
Aquí es cómo lo implemento.
- Prensas del usuario Eliminar anuncios
- Ayudante de inicio
- Utilice Listener para detectar cuándo el asistente está configurado.
- Inventario de consultas
- Use Listener para detectar cuándo se completa
- Compruebe si ya se ha realizado la compra. Si es así, quitar anuncios y salir
- Si no, entonces launchPurchaseFlow para comprar.
Esto funciona bien en un dispositivo, sin embargo si un usuario compra en un dispositivo y luego lo intenta en otro dispositivo el segundo dispositivo funciona de la siguiente manera:
- ¿Qué utilizar como carga útil del desarrollador en las API de facturación de Google In-App?
- Id de pedido de suscripciones de Android
- Identifying refunded Play Store descargas
- Android en la facturación de la aplicación SecurityException "Invocación de la carpeta en una interfaz incorrecta"
- Compra exitosa pero no se encuentra la clase cuando se desmarca: com.google.android.finsky.billing.lightpurchase.PurchaseParams
El ayudante se configura como de costumbre, y luego cuando comprueba el inventario, no encuentra ningún artículo comprado (entiendo que hay un retraso antes de esta actualización). A continuación, intenta comprar, pero dice el artículo ya comprado en la ventana de reproducción de Google. Esto estaría bien si pudiera detectar esto en código, pero vuelve al oyente que el usuario canceló la compra.
¿Hay alguna manera de detectar que el usuario ya ha comprado el artículo usando el purchaseFinishedListener
?
- Android en la aplicación de facturación compra de prueba se bloquea Play Store
- ¿Cómo determinar el número de suscriptores de facturación en la aplicación?
- Error en la facturación de Android en la aplicación, diciendo "Ya tienes una orden pendiente para este elemento".
- Facturación en la aplicación: "Elementos de consulta disponibles para la compra" devuelve 0 artículos
- OnIabPurchaseFinished nunca llamado.
- ¿Es OFICIALMENTE imposible recibir el precio de un elemento de facturación en la aplicación en tiempo de ejecución?
- ¿En qué condiciones se aplican los cambios de servidor de versión 3 de facturación en la aplicación disponibles en los dispositivos cliente?
- ¿Cuál es el propósito de la "carga útil del desarrollador"? Para qué se puede usar?
El código en el método handleActivityResult
devuelve usuario cancelado
else if (resultCode == Activity.RESULT_CANCELED) {
logDebug("Purchase canceled - Response: " + getResponseDesc(responseCode));
result = new IabResult(IABHELPER_USER_CANCELLED, "User canceled.");
if (mPurchaseListener != null) mPurchaseListener.onIabPurchaseFinished(result, null);
}
He añadido la línea if (responseCode==BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED) result = new IabResult(BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED, "Success");
Prueba esto
IabHelper.QueryInventoryFinishedListener mGotInventoryListener = nuevo
IabHelper.QueryInventoryFinishedListener () {
public void onQueryInventoryFinished(IabResult result, Inventory inventory) { ..................... if (inventory.hasPurchase(SKU_CONTENT)) { mHelper.consumeAsync(inventory.getPurchase(SKU_CONTENT), null); } }
};
- ¿Cómo agregar una imagen dinámica en lugar de un icono de notificación en android?
- Detectar la llamada entrante con la brecha telefónica