React-native-iap: Tienda de aplicaciones de Amazon

Creado en 20 ene. 2019  ·  30Comentarios  ·  Fuente: dooboolab/react-native-iap

¿Este módulo es compatible con los IAP de Amazon Appstore?

❓ question 🏃🏻‍♀️ in progress 🚶🏻 stale 🥺 feature request

Comentario más útil

No estoy seguro de si alguien ha comenzado a trabajar en esto, sin embargo, comencé a implementar la funcionalidad para admitir los IAP de Amazon Appstore. Ojalá tenga un PR listo pronto.

Todos 30 comentarios

No. No admitimos dispositivos Kindle porque no tenemos uno aquí. Hay relaciones públicas en nuestro complemento flutter, pero nadie contribuyó a este todavía.

No estoy seguro de si alguien ha comenzado a trabajar en esto, sin embargo, comencé a implementar la funcionalidad para admitir los IAP de Amazon Appstore. Ojalá tenga un PR listo pronto.

@ gborges0727 Creo que estás dentro. He cambiado la etiqueta a working . ¡Gracias!

@ gborges0727 , veo tu bifurcación, y que al menos comenzaste con algún código relacionado con Amazon.

¿Cuál es el estado de este trabajo?

Estoy en el punto de mi proyecto en el que necesito agregar soporte de Amazon.

Sería increíble si alguien ya lo hubiera descubierto :)

El trabajo está hecho, pero todavía no he llegado a escribir el texto mecanografiado / actualizar el archivo Léame. ¡Ojalá tenga un PR listo este fin de semana!

¡Dulce! Me alegro de oirlo. De hecho, estoy probando tu bifurcación durante los próximos días. Te haré saber lo que encuentro.

Mi aplicación utiliza específicamente un producto de suscripción con dos opciones de período, mensual y anual.

¿Qué tipo de pruebas has hecho con esto? ¿Ha probado productos de suscripción?

También me di cuenta de que su método para determinar Amazon frente a otros dispositivos es verificar la función amazon.hardware.fire_tv .

¿Esto se debe a que su aplicación es en realidad específicamente para Fire TV, o esto realmente será cierto para todos los dispositivos de Amazon, incluidas las tabletas y demás?

De hecho, solo he probado productos de suscripción, por lo que si tiene una sola compra, también sería una buena prueba. Y mi aplicación es específicamente para fire_tv, por eso la usé. Probablemente sea una opción más general para probar con cualquier dispositivo de Amazon

ok, encontré esto , que parece que debería ser bastante confiable.

import android.os.Build;
isAmazonDevice = Build.MANUFACTURER.equals("Amazon");

Mi investigación encontró otras opciones, incluido el intento de detectar desde qué TIENDA se instaló la aplicación, pero creo que la detección de dispositivos es lo suficientemente buena para la mayoría.

¿No recibiste errores sobre el uso de la clase Set ?

Estaba obteniendo lo siguiente al intentar usar la versión de Amazon de getProductData()

java.lang.RuntimeException: Got unknown argument class: Set

Este fue mi trabajo en torno a:

public RequestId getProductData(ReadableArray skus, Promise promise) {

    //Build Set from ReadableArray
    final Set<String> skusSet = new HashSet<String>();
    for (int i = 0; i < skus.size(); i++) {
      skusSet.add(skus.getString(i));
    }

    savePromise(GET_PRODUCT_DATA, promise);
    RequestId requestId = PurchasingService.getProductData(skusSet);
    return requestId;
  }

Además, ¿sabe cómo deshabilitar la dependencia de los servicios de Google Play en tiempo de ejecución, cuando está en un dispositivo de Amazon?

Recibo una ventana emergente que dice:

[App Name] won't run without Google Play services, which are not supported by your device.

Perdón por tantas preguntas, no quiero enviarte spam. ¡Gracias de nuevo por el increíble trabajo!

Hice algunos cambios más.

Si está interesado, puede ver mi bifurcación / rama aquí:
https://github.com/curiousdustin/react-native-iap/commits/curious

  • Trabajé un poco para aplicar los últimos cambios de la bifurcación principal, principalmente las comprobaciones de los módulos nativos. comprometerse .
  • Como se mencionó, descubrí que tenía que usar ReadableArray en lugar de Set commit
  • Estoy verificando el fabricante en lugar del fire_tv id específico. cometer
  • Debido a que usaré RVS , sentí que sería útil agregar userIdAmazon a los objetos de compra. cometer

Todavía no he hecho muchas pruebas, pero parece estar bien hasta ahora. ¡Gracias de nuevo!

¡Oye, perdón por llegar tarde! Creo que la dependencia de los servicios de Google Play en tiempo de ejecución se puede resolver agregando algo a su AndroidManifest.xml, pero no puedo recordar exactamente qué fue lo que agregué. ¡Los errores relacionados con getProductData () podrían ser completamente válidos! Realmente no probé esa función, por lo que podría haber problemas al 100% allí. ¡Tus cambios se ven bien! Tiene sentido incorporarlos antes de enviar el PR aquí.

Oh, me olvidé de mencionar, me di cuenta de que el mensaje específico won't run without Google Play services que estaba recibiendo era en realidad el resultado del uso de Firebase. Encontré un truco para no inicializar Firebase si está en Amazon, y todavía recibo advertencias en los registros, pero parece que ya no afecta al usuario.

Cualquier información que pueda compartir sobre el archivo de manifiesto podría ser valiosa.

¡Gracias!

Echando un vistazo a mi androidmanifest, no estoy realmente seguro de qué habría incluido que hubiera resuelto cualquier problema. Podría haber estado recordando fantasmas en lo que a eso respecta, jaja. ¿Tuviste suerte con probar un poco más?

No diría que lo he probado exhaustivamente. Todavía solo probamos con productos de suscripción.

Agregué algunas modificaciones más:

Gracias por el trabajo aquí, arreglé la función que verifica qué tienda usar
https://github.com/curiousdustin/react-native-iap/pull/1

¿Puedo usar esta función? lo necesito

¿Hay alguna documentación sobre cómo usar su código de Amazon @curiousdustin @ gborges0727 ?

Necesito agregar Amazon IAP Support para mis aplicaciones, así que realmente lo necesito.

@ DannyRox23 , lo siento, no hay documentación más allá de nuestras discusiones aquí.

Aquí algunas aclaraciones:

  • Nuestra aplicación en vivo utiliza actualmente el código que se encuentra aquí: https://github.com/curiousdustin/react-native-iap/commit/a0911a845436f585769af28b12926bdebaf56f45
  • Estamos utilizando variantes de compilación de Gradle para crear un APK separado para Amazon. Este código en esta rama usa las propiedades de configuración de compilación generadas automáticamente para determinar si es el APK de Amazon o no.
  • Nuestra aplicación SOLO tiene 1 IAP de suscripción de renovación automática.
  • NO hemos probado ningún otro tipo de IAP o funciones.
  • Usamos la validación de recibos del lado del servidor para todas las plataformas.

Espero que ayude. Ojalá pudiera devolver más a la comunidad probando esto completamente y agregándolo a la biblioteca principal, pero simplemente no tengo tiempo. Gracias de nuevo @ gborges0727 por hacer la mayor parte del trabajo 👍

@curiousdustin ¡Agradezco la respuesta! Usé su código y me deshice de las verificaciones del dispositivo, ya que la aplicación es exclusivamente para dispositivos Amazon. Sin embargo, estoy un poco perdido; incluso con la verificación del dispositivo, envié mi aplicación de Amazon a Amazon y Amazon informa que la aplicación está utilizando el IAP de Google, por lo que no aprobaron la aplicación.

¿Cómo depuro la aplicación para ver si funciona? ¿Debería mostrar la ventana de compra de Amazon IAP en los emuladores? ¿Necesito un dispositivo de Amazon para realizar una prueba completa? ¿Funciona con Bluestacks? ¿Hay emuladores de dispositivos de Amazon que pueda usar?

Pude eliminar las advertencias de facturación de Google utilizando este archivo de manifiesto que se fusiona con mi archivo de manifiesto principal. Creo que la clave es la línea para eliminar el permiso de facturación.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="fm.pinna.app">

    <uses-permission android:name="com.android.vending.BILLING" tools:node="remove" />

    <application>
        <receiver
            android:name="com.amazon.device.iap.ResponseReceiver"
            android:permission="com.amazon.inapp.purchasing.Permission.NOTIFY">
            <intent-filter>
                <action android:name="com.amazon.inapp.purchasing.NOTIFY" />
            </intent-filter>
        </receiver>
    </application>

</manifest>

Puede que haya emuladores de Amazon, pero no los he usado. Usé dispositivos Kindle Fire reales para probar. Tampoco he usado Bluestacks, lo siento, no sé si funcionaría.

Para las pruebas, solo seguí los documentos de Amazon .

@hyochan , ¿estaría dispuesto a fusionar parte del soporte de Amazon si solo incluye soporte para la facturación de suscripción?

¿Quién tiene la bifurcación más actualizada del código / podemos intentar llevar el PR en el paquete principal potencialmente? Para hacerse eco de @benoitdion, ¿estaría bien fusionarse con solo soporte para la facturación de suscripciones?

No me he mantenido completamente al día con el progreso del módulo principal react-native-iap . Sin embargo, creo que ha habido cambios importantes desde @ gborges0727 y estuve trabajando en esto. Principalmente reelaboración del flujo de compra y otros cambios importantes que vienen con la versión 3.0.

https://github.com/dooboolab/react-native-iap/pull/510

Por lo tanto, no creo que ninguna de nuestras implementaciones de Amazon esté lista para fusionarse con la bifurcación principal en este momento, incluso solo para suscripciones. 😞

Hola, parece que no ha habido actividad sobre este tema recientemente. ¿Se ha solucionado el problema o aún requiere la atención de la comunidad? Este problema puede cerrarse si no se produce más actividad. También puede etiquetar este problema como "Para discusión" o "Buen primer número" y lo dejaré abierto. Gracias por sus aportaciones.

Cerrando este problema después de un período prolongado de inactividad. Si este problema todavía está presente en la última versión, no dude en crear un nuevo problema con información actualizada.

@curiousdustin ¿Crees que puedes hacer

Las actualizaciones que hicimos para admitir Amazon no son compatibles con los principales cambios en 3.0. Véase más arriba.

¿Fue útil esta página
0 / 5 - 0 calificaciones