J'ai essayé de configurer la facturation via l'application pour ma première application et j'utilise le sku android.test.purchased. L'achat est effectué et j'arrive à insérer le SKU dans mon inventaire, mais, comme le titre l'indique, onIabPurchaseFinished, n'est jamais appelé.
Je pense que cela peut avoir quelque chose à voir avec ce journal: "Impossible d'enregistrer quelle vue a le focus car la vue focalisée com.android.internal.policy.impl.PhoneWindow$DecorView@406743d0 n'a pas d'identifiant". Cela apparaît juste avant de passer à Google Play. Je ne suis pas vraiment sûr de ce que cela signifie cependant ...
Lancement de l'achat:
mHelper.launchPurchaseFlow(this, sku, 10001, mPurchaseFinishedListener, "");
Et l'auditeur:
IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() {
@Override
public void onIabPurchaseFinished(IabResult result, Purchase info) {
System.out.println("Purchase Finish heard something");
if (result.isFailure()) {
Log.d(TAG, "Error purchasing: " + result);
return;
} else{
Log.d(TAG,"Success!");
}
}
};
android
in-app-billing
AAAton
la source
la source
Réponses:
Essayez d'ajouter ceci à l'activité qui appelle
mHelper.launchPurchaseFlow(..)
:la source
Je viens de découvrir une autre chose importante: le requestCode qui est utilisé pour lancer le flux d'achat doit être> = 0!
J'ai utilisé "new Random (). nextInt ()" pour générer un requestCode aléatoire, et parfois cela fonctionnait, parfois non. maintenant, j'ai découvert dans la documentation suivante que le requestCode ne devrait pas être un nombre négatif:
http://developer.android.com/reference/android/app/Activity.html#startActivityForResult%28android.content.Intent,%20int%29
la source
J'ai eu le même problème et onActivityResult n'a pas été appelé non plus.
Inspiré de la réponse de @ Ghulam, j'ai réalisé que l'activité onActivityResult n'appelait pas automatiquement onActivityResult du fragment, donc j'ai dû le faire manuellement.
la source
Vous devez appeler protected void onActivityResult (); Dans votre activité parentale au lieu de MainActivity (Trivial Drive) d'où vous appelez votre MainActivity qui est Trivial Drive Activity.
vous recevrez les valeurs de code de résultat -1 si l'achat réussit sinon 0.
la source
J'étais confronté au même problème et la solution acceptée était déjà mise en œuvre mais je ne pouvais pas dire ce qui en était la cause. Le passage à la nouvelle bibliothèque de facturation Google Play 1.0 (publiée le 19 septembre 2017) a résolu le problème pour moi!
J'espère que les liens suivants aideront quelqu'un qui voudrait implémenter la nouvelle bibliothèque:
Article de blog de Google sur la sortie
Vidéo YouTube de Google
Cours de formation Play Billing Library
Exemple de Google Trivial Drive v2
Atelier de codage Play Billing Library publié pendant Google I / O 2017
Lire la documentation de la bibliothèque de facturation
Référence officielle des classes et méthodes
Notes de sortie
la source