android - test - ¿Cuáles son las posibilidades de obtener este código de error 3 en la compra de InApp?
pay app billing (7)
Como podemos ver directamente en el código de configuración de IabHElper de la muestra proporcionada por Google, el error significa:
"El servicio de facturación no está disponible en el dispositivo".
Como puedes leer here significa error
Billing API version is not supported for the type requested
Esta es la referencia de facturación en la aplicación (IAB versión 3), por lo que el error significa que IAB v3 no está instalado en el dispositivo.
En realidad, esto significa que el usuario tiene una cuenta de Google, y probablemente también un servicio de facturación en la aplicación, pero no tiene la última versión. Esto sucede en dispositivos antiguos, y donde el usuario nunca actualiza nada, suele ser dispositivos en los que puede ver la aplicación antigua de Market en lugar de la aplicación Play.
Entonces, el error que tiene que mostrarle al usuario y la prueba que debe realizar no es si el dispositivo tiene una cuenta de Google, sino si tiene los servicios de Google Play instalados y actualizados correctamente.
ACTUALIZAR:
Si busca el código en todo el SDK de la biblioteca y las clases de ayuda proporcionadas por google, el único lugar donde podemos encontrar eso exactamente en la función que está llamando: el startSetup
de la clase IabHelper
Intent serviceIntent = new Intent(
"com.android.vending.billing.InAppBillingService.BIND");
if (!mContext.getPackageManager().queryIntentServices(serviceIntent, 0)
.isEmpty()) {
// service available to handle that Intent
mContext.bindService(serviceIntent, mServiceConn,
Context.BIND_AUTO_CREATE);
} else {
// no service available to handle that Intent
mServiceConn=null;
if (listener != null) {
listener.onIabSetupFinished(new IabResult(
BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE,
"Billing service unavailable on device."));
}
}
Esto significa que la aplicación no pudo conectarse al servicio en el dispositivo, ya que el administrador de paquetes ni siquiera lo sabe . Esa es la única opción que puede desencadenar ese error. ¿Y qué significa que no pueda conectarse al servicio? Significa uno de estos:
- El dispositivo no tiene el servicio instalado.
- Tiene una versión antigua, ya que sabemos que las últimas versiones de Play Store utilizan el IAB v3.
Por lo tanto, su error solo puede significar uno de esto, que para usted significa que debe mostrar un mensaje al usuario como "No tiene instalados los servicios de Google Play, o tiene que actualizarlo". Y no hay otras posibilidades o conseguir ese error.
Pero, si desea facilitar la tarea a los usuarios, puede decir que necesitan actualizar la aplicación Google Play a la última versión . Y eso hará que todo funcione a la perfección.
Estoy usando el código InApp V3 para compras dentro de la aplicación en mi aplicación, obtengo este error BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE
y error value :3
cuando la cuenta de Google no está disponible en el dispositivo. Quiero saber si hay alguna otra posibilidad para obtener este error, porque cuando recibo este error necesito mostrar una ventana emergente al usuario con algunos datos. Si esto se produce debido a que la cuenta de Google no está disponible en el dispositivo, se mostrará el cuadro de diálogo con el texto relacionado. Este es el código que estoy usando
mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
public void onIabSetupFinished(IabResult result) {
if (!result.isSuccess()) {
// error here
return;
}
}
});
este es el error Error checking for billing v3 support. (response: 3:Billing Unavailable)
Error checking for billing v3 support. (response: 3:Billing Unavailable)
En algún momento, si no ha autenticado su dispositivo con la cuenta de Google, puede recibir este error.
Este error también se recibe después de que el usuario elimine su cuenta de Google del dispositivo.
Inicia sesión en Play Store con cualquier cuenta.
Después de iniciar sesión en la facturación funciona incluso en Android Studio Emulator.
La mayor posibilidad de su problema BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE
es que en algunos países todavía no se permite la compra de aplicaciones, como Serbia y muchos países.
Por lo tanto, cualquier usuario del país donde Google Play no admita la compra en la aplicación, obtendrá BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE
.
Esto supondría una menor posibilidad de que el usuario no tenga el Servicio de Google Play actualizado instalado en el teléfono, por lo que no debe preocuparse por este caso.
Para cualquier persona que aún enfrenta este problema, en la mayoría de los casos, iab no es compatible en su país, como dijo Williams. Puedes usar una VPN para que funcione.
Prueba estos hacks
Elimine la memoria caché, los datos y las actualizaciones de la aplicación de reproducción, ¡reinicie la aplicación de nuevo para que funcione! o prueba con las últimas actualizaciones (si está arreglado)
Para tu información:
Sólo tenga en cuenta:
IABv3 está integrado en los servicios de Google Play, por lo que requiere una actualización de la aplicación Play Services.
V2 fue integrado en el propio cliente de Play Store. El problema de la memoria caché / EULA no está específicamente relacionado con IAB, está relacionado con la configuración de los Servicios de reproducción (y es de esperar que sea innecesario para la mayoría de los usuarios, la parte de la memoria caché de todos modos).
Es un fastidio estar en este período de transición en el que Play Services tiene que actualizarse antes de que la aplicación pueda aprovecharla, pero creo que la mayoría de la gente estaría de acuerdo en que es mejor que esperar por una actualización del sistema operativo ".
Ver este ref: informe de error , G + post