En la compra de aplicaciones: dos dispositivos con la misma cuenta que no reciben los mismos artículos comprados
¿Qué estoy intentando?
Compra de artículos en un dispositivo android configurando la dirección de correo electrónico de X. Cuando compruebo otro dispositivo con la misma dirección de correo electrónico configurada. Pero los artículos comprados en el primer dispositivo no están disponibles en otro dispositivo.
- Android - ¿Cómo comprobar si se renueva la suscripción?
- OnIabPurchaseFinishedListener nunca se llama
- ¿Es OFICIALMENTE imposible recibir el precio de un elemento de facturación en la aplicación en tiempo de ejecución?
- Mostrando precios específicos de dispositivos para los productos que utilizan Googles IAB
- Facturación en la aplicación de Android, compras múltiples del mismo artículo
¿Qué he intentado?
He intentado usar:
inappBillingService.getPurchases(InAppBuyActivity.INAPPVERSION, getPackageName(), "inapp", null);
Y también intentó usar:
IabHelper.QueryInventoryFinishedListener mGotInventoryListener = new IabHelper.QueryInventoryFinishedListener() { public void onQueryInventoryFinished(IabResult result, Inventory inventory) { if (result.isFailure()) { // handle error here } else { // Not getting same purchased on both devices } } };
Estoy generando apk firmado que tiene el mismo nombre de versión y código de versión que de versión de playstore.
- No se puede cambiar la moneda predeterminada para la facturación en la aplicación
- En seguridad de facturación de aplicaciones
- NullPointer en startIntentSenderForResult, no aplicando V3
- Información de la cuenta asociada con una instalación de la aplicación
- Determinar la fecha de compra original de una aplicación de Android
- La facturación en la aplicación no funciona (su solicitud no se pudo procesar)
- ¿En la facturación de la aplicación admite varias cuentas?
- ¿Qué sucede con las suscripciones en la aplicación cuando una aplicación no se publica en Google Play?
La API de la versión 3 de facturación integrada en la aplicación facilita la integración de la facturación integrada en la aplicación en sus aplicaciones. Las características de esta versión incluyen flujo de compras síncrono mejorado, API que le permiten controlar fácilmente la propiedad de los bienes de consumo y el almacenamiento en caché local -app datos de compra.
1. Compruebe su código, si ha consumido o no consumido
Si utiliza consumibles, el usuario puede comprar el producto de tiempo múltiple, Google Store sólo un detalle de tiempo de compra y de nuevo obtener respuesta en blanco, a fin de eliminar consumibles código relacionado de su aplicación.
2. Compruebe si el usuario ya ha comprado el artículo o si no lo ha utilizado
private IInAppBillingService mService = null; //onCreare try { Intent serviceIntent = new Intent("com.android.vending.billing.InAppBillingService.BIND"); serviceIntent.setPackage("com.android.vending"); bindService(serviceIntent, mServiceConn, Context.BIND_AUTO_CREATE); // bindService(new Intent("com.android.vending.billing.InAppBillingService.BIND"), mServiceConn, Context.BIND_AUTO_CREATE); } catch (Exception e) { e.printStackTrace(); } // Method ServiceConnection mServiceConn = new ServiceConnection() { @Override public void onServiceConnected(ComponentName name, IBinder service) { mService = IInAppBillingService.Stub.asInterface(service); Log.d("TEST", "mService ready to go!"); checkownedItems(); } @Override public void onServiceDisconnected(ComponentName name) { mService = null; } }; private void checkownedItems() { try { Bundle ownedItems = mService.getPurchases(3, getPackageName(), "inapp", null); if (ownedItems.getInt("RESPONSE_CODE") == 0) { ArrayList<String> ownedSkus = ownedItems.getStringArrayList("INAPP_PURCHASE_ITEM_LIST"); ArrayList<String> purchaseDataList = ownedItems.getStringArrayList("INAPP_PURCHASE_DATA_LIST"); if (purchaseDataList.size() > 0) { // Item already Purchased.... // Manage your in-app view }else{ // Item not purchased } } } catch (RemoteException e) { e.printStackTrace(); } }
Utilizado encima de la lógica antes del artículo de la compra, si el artículo no compra entonces llamada in-app getPurchases () de otra manera oculta o maneja la opinión en-app.
He probado la aplicación utilizando dos dispositivos. Tarda algún tiempo para reflejar las compras.
Si elimino la aplicación y vuelvo a instalarla como un nuevo entonces los nuevos artículos comprados están allí. Pero, si compro un artículo y lo compruebo en el segundo dispositivo al mismo tiempo su no reflejado allí.
La aplicación muestra los artículos ya adquiridos en el segundo dispositivo cuando el usuario intenta comprarlo. Pero, no está disponible en inappBillingService.getPurchases
y IabHelper.QueryInventory
.