React-native-iap: Amazon Appstore

Créé le 20 janv. 2019  ·  30Commentaires  ·  Source: dooboolab/react-native-iap

Ce module prend-il en charge les IAP d'Amazon Appstore?

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

Commentaire le plus utile

Je ne sais pas si quelqu'un a commencé à travailler là-dessus, mais j'ai commencé à implémenter la fonctionnalité pour prendre en charge les IAP d'Amazon Appstore. J'espère avoir bientôt un PR prêt.

Tous les 30 commentaires

Non. Nous ne prenons pas en charge les appareils Kindle car nous n'en avons pas ici. Il y a des PR sur notre plugin Flutter mais personne n'a encore contribué à celui-ci.

Je ne sais pas si quelqu'un a commencé à travailler là-dessus, mais j'ai commencé à implémenter la fonctionnalité pour prendre en charge les IAP d'Amazon Appstore. J'espère avoir bientôt un PR prêt.

@ gborges0727 Je pense que vous y êtes. J'ai changé le libellé en working . Merci!

@ gborges0727 , je vois votre fourchette, et que vous avez au moins commencé sur du code lié à Amazon.

Quel est le statut de ce travail?

J'en suis au point de mon projet où je dois ajouter le support Amazon.

Ce serait génial si quelqu'un a déjà compris cela :)

Le travail est en fait terminé, mais je n'ai pas encore réussi à rédiger le dactylographié / à mettre à jour le fichier readme. J'espère avoir un PR prêt ce week-end!

Doux! Ravi de l'entendre. Je teste en fait votre fourchette au cours des prochains jours. Je vous ferai savoir ce que je trouve.

Mon application utilise spécifiquement un produit d'abonnement avec 2 options de période, mensuelle et annuelle.

Quel genre de test avez-vous fait avec cela? Avez-vous testé des produits d'abonnement?

J'ai également remarqué que votre méthode pour déterminer Amazon par rapport aux autres appareils consiste à vérifier la fonctionnalité amazon.hardware.fire_tv .

Est-ce parce que votre application est en fait spécifiquement pour Fire TV, ou est-ce que cela sera vrai pour tous les appareils Amazon, y compris les tablettes et autres?

En fait, je n'ai testé que des produits d'abonnement, donc si vous avez un seul achat, ce serait également un bon test. Et mon application est spécifiquement pour fire_tv, c'est pourquoi je l'ai utilisé. Probablement une option plus générale à tester pour n'importe quel appareil Amazon

ok, j'ai trouvé ceci ,

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

Ma recherche a trouvé d'autres options, y compris la tentative de détecter à partir de quel STORE l'application a été installée, mais je pense que la détection des appareils est suffisante pour la plupart.

N'avez-vous pas reçu d'erreurs lors de l'utilisation de la classe Set ?

J'obtenais ce qui suit en essayant d'utiliser la version amazon de getProductData()

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

C'était mon travail autour de:

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;
  }

De plus, savez-vous comment désactiver la dépendance aux services Google Play lors de l'exécution, sur un appareil Amazon?

Je reçois une fenêtre contextuelle qui dit:

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

Désolé tant de questions, je ne veux pas vous spammer. Merci encore pour l'excellent travail!

J'ai apporté quelques modifications supplémentaires.

Si vous êtes intéressé, vous pouvez voir ma fourchette / branche ici:
https://github.com/curiousdustin/react-native-iap/commits/curious

  • J'ai travaillé pour appliquer les dernières modifications de la fourche principale, principalement les vérifications des modules natifs. s'engager .
  • Comme mentionné, j'ai trouvé que je devais utiliser ReadableArray à la place de Set commit
  • Je vérifie le fabricant au lieu de l'ID spécifique fire_tv . s'engager
  • Parce que j'utiliserai RVS , j'ai pensé qu'il serait utile d'ajouter userIdAmazon aux objets d'achat. s'engager

Je n'ai pas encore fait beaucoup de tests, mais cela semble bon jusqu'à présent. Merci encore!

Hé désolé d'être rentré tard! Je pense que la dépendance sur les services Google Play au moment de l'exécution peut être résolue en ajoutant quelque chose à votre AndroidManifest.xml, mais je ne me souviens pas exactement de ce que j'ai ajouté. Les erreurs autour de getProductData () pourraient être complètement valides! Je n'ai pas vraiment testé cette fonction, donc il pourrait y avoir des problèmes à 100%. Vos changements semblent bons! Il est logique de les intégrer avant de soumettre le PR ici.

Oh, j'ai oublié de mentionner, j'ai compris que le message spécifique won't run without Google Play services je recevais était en fait le résultat de l'utilisation de Firebase. J'ai trouvé un travail de piratage pour ne pas initialiser Firebase si sur Amazon, et je reçois toujours des avertissements dans les journaux, mais cela ne semble plus affecter l'utilisateur.

Toute information que vous pouvez partager sur le fichier manifeste peut encore être précieuse.

Merci!

En jetant un coup d'œil à mon fichier Android, je ne suis pas vraiment sûr de ce que j'aurais inclus qui aurait résolu n'importe quel problème. Avez-vous de la chance pour en tester d'autres?

Je ne dirais pas que j'ai testé de manière exhaustive. Toujours uniquement en test avec des produits d'abonnement.

J'ai ajouté quelques modifications supplémentaires:

Merci pour le travail ici, j'ai corrigé la fonction qui vérifie quel magasin utiliser
https://github.com/curiousdustin/react-native-iap/pull/1

Puis-je utiliser cette fonction? j'en ai besoin

Existe-t-il une documentation sur la façon d'utiliser votre code Amazon @curiousdustin @ gborges0727 ?

Je dois ajouter le support Amazon IAP pour mes applications, donc j'en ai vraiment besoin.

@ DannyRox23 , désolé, il n'y a pas de documentation après nos discussions ici.

Voici quelques clarifications:

  • Notre application en direct utilise actuellement le code trouvé ici: https://github.com/curiousdustin/react-native-iap/commit/a0911a845436f585769af28b12926bdebaf56f45
  • Nous utilisons des variantes de construction gradle pour créer un APK distinct pour amazon. Ce code dans cette branche utilise les propriétés de configuration de build générées automatiquement pour déterminer s'il s'agit de l'APK amazon ou non.
  • Notre application a UNIQUEMENT 1 abonnement à renouvellement automatique IAP.
  • Nous n'avons testé aucun autre type d'IAP ou de fonctionnalités.
  • Nous utilisons la validation des reçus côté serveur pour toutes les plateformes.

J'espère que cela pourra aider. J'aimerais pouvoir redonner plus à la communauté en testant complètement ceci et en l'ajoutant à la bibliothèque principale, mais je n'ai tout simplement pas le temps. Merci encore @ gborges0727 pour la plupart du travail 👍

@curiousdustin J'apprécie la réponse! J'ai utilisé votre code et je me suis débarrassé des vérifications des appareils car l'application est exclusivement destinée aux appareils Amazon. Je suis cependant un peu perdu; même avec la vérification de l'appareil, j'ai soumis mon application Amazon à Amazon et Amazon rapporte que l'application utilise l'IAP de Google, donc ils n'ont pas approuvé l'application.

Comment déboguer l'application pour voir si elle fonctionne. Doit-il afficher la fenêtre d'achat Amazon IAP sur les émulateurs? Ai-je besoin d'un appareil Amazon pour effectuer un test complet? Fonctionne-t-il avec Bluestacks? Existe-t-il des émulateurs d'appareils Amazon que je peux utiliser?

J'ai pu supprimer les avertissements de facturation Google en utilisant ce fichier manifeste qui fusionne avec mon fichier manifeste principal. Je pense que la clé est la ligne pour supprimer l'autorisation de facturation.

<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>

Il peut y avoir des émulateurs Amazon, mais je ne les ai pas utilisés. J'ai utilisé de vrais appareils Kindle Fire pour tester. Je n'ai pas non plus utilisé Bluestacks, désolé je ne sais pas si cela fonctionnerait.

Pour les tests, je viens de suivre les documents Amazon .

@hyochan seriez-vous ouvert à la fusion d'une assistance Amazon si elle n'inclut que la prise en charge de la facturation des abonnements?

Qui a le fork le plus à jour du code / pouvons-nous essayer d'intégrer potentiellement le PR dans le package principal? Pour faire écho à @benoitdion, serait-il correct de fusionner avec uniquement le support de la facturation des abonnements?

Je n'ai pas complètement suivi la progression du module principal react-native-iap . Cependant, je pense qu'il y a eu des changements majeurs depuis @ gborges0727 et j'y travaillais. Principalement en retravaillant le flux d'achat et d'autres changements de rupture fournis avec la version 3.0.

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

Donc, je ne pense pas qu'aucune de nos implémentations Amazon ne serait prête à fusionner avec la fourche principale pour le moment, même pour les abonnements uniquement. 😞

Salut, il semble qu'il n'y ait eu aucune activité sur ce problème récemment. Le problème a-t-il été résolu ou nécessite-t-il toujours l'attention de la communauté? Ce problème peut être résolu si aucune autre activité ne se produit. Vous pouvez également étiqueter ce problème comme "Pour discussion" ou "Bon premier numéro" et je le laisserai ouvert. Merci pour vos contributions.

Clôture de ce numéro après une période d'inactivité prolongée. Si ce problème est toujours présent dans la dernière version, n'hésitez pas à créer un nouveau problème avec des informations à jour.

@curiousdustin Pensez-vous que vous pouvez

Les mises à jour que nous avons apportées pour prendre en charge Amazon ne sont pas compatibles avec les changements majeurs de la version 3.0. Voir au dessus.

Cette page vous a été utile?
0 / 5 - 0 notes