Facturation in-app Une authentification de retour Android est requirejse lorsque vous essayez de vous abonner à un produit

C’est la première fois que je traite de la facturation In-App dans Android 1) J’utilise API v3 2) J’ai télécharger la version alpha de mon application pour pouvoir la tester

entrer la description de l'image ici

3) J’ai créé un produit d’abonnement

entrer la description de l'image ici

4) Ceci est mon code pour vous abonner au produit

mSubscribeButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { try { Bundle subscribeIntentBundle = mService.getBuyIntent(3, getPackageName(), "my_product_id", "subs", "bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ"); PendingIntent pendingIntent = subscribeIntentBundle.getParcelable("BUY_INTENT"); if (subscribeIntentBundle.getInt("RESPONSE_CODE") == 0) { startIntentSenderForResult(pendingIntent.getIntentSender(), 4002, new Intent(), Integer.valueOf(0), Integer.valueOf(0), Integer.valueOf(0)); } else { Toast.makeText(MainActivity.this, "Error Code: " + subscribeIntentBundle.getInt("RESPONSE_CODE"), Toast.LENGTH_SHORT).show(); } } catch (RemoteException e) { e.printStackTrace(); } catch (SendIntentException e) { e.printStackTrace(); } } }); 

5) Je reçois l’erreur suivante

entrer la description de l'image ici

  • J’ai essayé d’utiliser différents appareils et tous ont la même erreur, je suis également connecté avec mon compte Google et je peux ouvrir Google Play Store et voir mes applications

  • J’ai également essayé d’effacer les données de Google Play Store du gestionnaire d’applications

Quelqu’un peut-il aider s’il vous plaît ??

J’ai le même problème auparavant. Accédez à votre console de développeur Google et assurez-vous que votre application est PUBLIÉE sur n’importe quelle version (alpha, bêta ou prod). Ensuite, l’achat In App fonctionnera 🙂

Vous avez le même problème avec un message terrible:

L’authentification est requirejse Vous devez vous connecter à votre compte Google.

Il y a eu deux problèmes pour moi:

  1. J’ai essayé d’acheter un produit dans mon code avec l’identifiant "com.argonnetech.wordswriting.noads" mais le produit dans l’application configuré dans la console Google Play Developer (GPD) était simplement nommé “noads”
  2. Après avoir changé le nom du produit in app dans la console GPD, j’ai dû passer en mode “Actif”

Le ça a fonctionné. Le message d’erreur est trompeur, une erreur comme “dans l’élément d’application n’existe pas serait mieux”.

Les développeurs Android qui testent un compte d’achat intégré devraient suivre ces touches.

Base64EncodedPublicKey

// Test base64EncodedPublicKey

 public static final Ssortingng base64EncodedPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCg" + "KCAQEAhNe2XQ70DceAwE6uyYJGK1dIBbZcPdlER/9EEzylr6RDU6tnGj0Tk7kceN03GKvRf/ucT+ERLL3O" + "aHR22PXRXLZ17NZ81x6oS2vGmLyXBnjrU/I+asl8cNuLGySaoCdXxPAV+A9g6OG13dk+KY9i0O1roGpFH" + "fsAFyKCgSqR0PMJZ1bS+wFFBYf3M4IxgBcxuuZKDmR+MztCgm5N4zc6w2CwFZn3mXeDoTg15mWDU3sZO" + "WeRwFeynhV+FCYdDp8DpAkLk1b5IiXYFQ53wxCh/GxiKqBB6uQMmAixFjAcZV1QWfcBABae9vxiV5" + "VAEJvOOnhPxnaT9HYadW0pQ/UbJwIDAQAB"; 

Et l’article acheté clé comme ça

ITEM ACHETÉ

// Tester ITEM_PURCHASED

 public static final Ssortingng ITEM_PURCHASED = "android.test.purchased"; 

Et à partir de mettre ce code onCreate () à l’initialisation de la classe IabHelper pour l’ achat in-app ,

 IabHelper helper = new IabHelper(this, Constants.base64EncodedPublicKey); helper.startSetup(new IabHelper.OnIabSetupFinishedListener() { public void onIabSetupFinished(IabResult result) { if (!result.isSuccess()) { Log.d("#InAppStartSetup#", "In-app Billing setup failed: " + result); } else { Log.d("#InAppStartSetup#", "In-app Billing setup successful."); } } }); 

Et finalement acheté le temps sur ce code gérer ici,

 helper.launchPurchaseFlow(YOUR_ACTIVITY, Constants.ITEM_PURCHASED, YOUR_REQUEST_CODE, mPurchaseFinishedListener, ""); 

Merci les gars…

La documentation sur developer.android.com semble être obsolète.

Si vous souhaitez tester votre facturation intégrée sans la publier, vous devez créer un groupe Google et append une liste alpha de testeurs. Voir ici: https://support.google.com/googleplay/android-developer/answer/3131213?hl=fr

METTRE À JOUR

À partir de la mi-2015, ce n’est plus nécessaire. Vous disposez de plusieurs nouvelles options de test dans la console des développeurs Google Play.

La plupart des solutions ci-dessus fonctionnent, mais pour ceux qui ont encore ce problème, essayez ceci:

  • Dans Android Studio, signez votre application avec la clé de version (cela créera un fichier app-release.apk signé)
  • Ensuite, assurez- vous de l’installer sur votre périphérique physique en utilisant le chemin d’installation adb / vers / votre / app-release.apk ( PAS via l’alpha / bêta )
  • Test de votre application de facturation intégrée

capture d'écran

Dans mon cas, versionName , versionName et applicationId n’étaient pas synchronisés avec la version actuelle de l’application sur la console du développeur. Je les ai changés dans le fichier build.gradle. Ils étaient différents parce que j’ai réécrit l’application dans le studio Android d’eclipse. Après cela, dans la facturation de l’application fonctionnait.

Ci-dessous travaille pour moi:

  • Téléchargez le projet d’application en alpha ou en version bêta avec un code de version.
  • Connectez-vous sur un appareil avec un compte qui a un abonnement actif.
  • Installez une application signée sur cet appareil avec la même version que dans la version alpha / bêta.