Android Market In-App-Purchase: ¿Cómo obtener la moneda que un usuario pagará?

Tengo una aplicación de Android que utiliza In-App-Purchase para atender a una audiencia internacional, por lo que espero pagos en diferentes monedas. Por supuesto me gustaría mostrar los artículos para la compra con la moneda local del usuario, pero no sé realmente cómo.

El uso de la región o el idioma de un usuario parece un indicador incorrecto, ya que la moneda parece depender de la región de la cuenta Market que el usuario está utilizando y no de la configuración del dispositivo.

¿Cómo puedo averiguar en qué moneda un usuario pagará?

Gracias.

A partir de IAB Versión 3 , los detalles de SKU para el artículo comprado incluyen un precio con formato, que incluye la moneda en la que el usuario pagaría (la moneda correspondiente a su tienda de Google Play):

Introduzca aquí la descripción de la imagen Algunos ejemplos de valores de price (no de una SKU real):

  • 3,99 €
  • 2,99 €
  • $ 4.99

EDIT : He actualizado la tabla de detalles de SKU, ahora incluye información sobre el campo price_currency_code.

Es algo difícil de hacer, ya que el tipo de cambio que el mercado utiliza para procesar la transacción puede fluctuar entre usted, mostrando el precio y la compra del usuario. Me atrevo a decir que Google preferiría que no estuvieran haciendo esto, ya que puede resultar en clientes gritando con ellos / usted porque dijo que $ 10 y se les cobró $ 12.

Su mejor apuesta (fallar a alguien sabiendo cómo hacerlo dentro del marco) es preguntarle al usuario qué moneda desea pagar y luego darles un precio aproximado (lo lista entre paréntesis junto al precio suministrado como "USD $ 10 [Aproximadamente AUD $ 9] "). Usted debe ser capaz de agarrar con un API de tipo de cambio.

Es un poco de desorden, pero sólo debe pedir una vez y guardar la preferencia. Si realmente quieres ser difícil, puedes usar datos de ubicación aproximada para obtener su configuración regional y poblar inicialmente el valor de esa manera.

  1. Puede pedirle al usuario que elija su moneda (opcional).
  2. Mostrar precio en USD por defecto. Proporcione una opción para que el usuario cambie de moneda en la pantalla de selección de artículos. Tal vez un icono / botón cerca de donde se muestra el precio que abre una lista desplegable de todas las monedas. Cuando el usuario selecciona una moneda desde la lista desplegable, el precio de todos los elementos debe mostrarse en la moneda seleccionada.

Yo no que sería una buena idea, ya que la facturación en la aplicación no es manejado por su usted, es manejado por el mercado. Simplemente escriba el precio en dólares o en euros y deje que el usuario vea la compra en su propia moneda en la página de check-out.

http://developer.android.com/guide/market/billing/index.html

Tal vez utilizar la configuración regional predeterminada del dispositivo?

String locale = Locale.getDefault().toString();

Entonces podrías hacer una comparación de eso.

¡Solo una idea!

  • IInAppBillingService.aidl no puede generar archivos Java en Android Studio
  • ¿Hay alguna manera de cambiar el nombre de una aplicación en la tienda de aplicaciones de Google Play?
  • Cómo obtener datos de Android Play Store
  • Error al agregar la biblioteca de facturación en la aplicación
  • Problemas de compatibilidad con aplicaciones Android con Nexus 6
  • ¿Esta implementación de la política de Google LVL sería razonablemente segura?
  • Excepción de tiempo de ejecución de clase intermitente de Android no encontrada
  • No se puede ejecutar el servicio de Google Play en el emulador (es necesario actualizar el servicio de Google Play)
  • Localización de las cadenas de apk tanto en inglés como en inglés?
  • Mercado de Android: el número de instalaciones activas supera el total de descargas
  • Enviar puntuaciones a las tablas de clasificación de Google Play Games y mostrar nuevos rangos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.