Mise en œuvre des achats intégrés sur Windows Phone 8

Les achats intégrés constituent un excellent moyen d'augmenter les revenus de votre application Windows Phone. Dans ce tutoriel, je vais vous montrer comment implémenter des achats intégrés dans une application Windows Phone 8 Silverlight.

Pour tester votre application, vous devez créer un produit à tester. Cela signifie que vous aurez besoin d'un compte de développeur Windows Phone actif si vous souhaitez suivre.

introduction

Windows Phone 8 offre une expérience d'achat pratique, des paiements fiables, des services géo-distribués et des outils de gestion de produit pour permettre à votre application de générer un commerce intéressant. Vous pouvez choisir entre des achats intégrés et d'autres options de paiement (par exemple, PayPal), mais les achats intégrés vous offrent plus de flexibilité car ils fournissent:

  • gestion des produits à l'aide du portail de développement Windows Phone
  • Services et paiements géo-distribués dans plus de 190 pays
  • expérience d'achat cohérente pour les utilisateurs dans toutes les applications du téléphone et preuve d'authenticité par le biais de reçus sécurisés

1. Obtenez un identifiant d'application

Dans le tableau de bord du portail de développement Windows Phone, accédez au menu Détails onglet de votre application et notez le ID de l'application. Prends aussi ton Éditeur GUID depuis le portail des développeurs. Vous aurez besoin de ces informations ultérieurement pour mettre à jour le fichier manifeste de l'application..

Si vous développez une nouvelle application, allez au tableau de bord et cliquez sur Soumettre une application pour lancer le processus de soumission et réserver un nom pour votre application. Enregistrez ces détails et vous pouvez ignorer la soumission du fichier XAP pour le moment. Il suffit de noter l'identifiant de l'application à partir du Propriétés de l'application section.

2. Ajouter un produit à votre application

Sous les détails de l'application, il y a un Des produits onglet où vous pouvez ajouter et gérer des produits intégrés à votre application. Pour les besoins de cette démonstration, nous avons créé un produit nommé App Premium

Dans le portail de développement Windows Phone, vous devez ajouter les propriétés et la description de votre produit intégré à l'application. Vous pouvez éventuellement définir des prix personnalisés dans différents marchés pour votre produit..  

Vous devez renseigner les propriétés de votre produit intégré à l'application, comme indiqué dans la capture d'écran suivante. Se souvenir du Étiquette d'un produit comme vous en aurez besoin pour la liste des produits in-app dans votre application.

Voici quelques points à retenir lors de l'ajout d'un produit intégré à l'application:

  • Vous pouvez avoir plusieurs produits pour une application. Chaque produit peut être consommable ou durable. Les produits durables ne peuvent être achetés qu'une seule fois.
  • Les applications universelles peuvent partager des produits intégrés, permettant ainsi aux utilisateurs d’acheter une fois et de les utiliser n’importe où. Votre catégorie de produit dans l'application peut différer, mais le nom et l'identité du produit doivent correspondre pour que cela fonctionne..
  • Vous pouvez définir des prix personnalisés pour vos produits dans différents pays..

La section description nécessite que vous ajoutiez un titre, une description et une image pour le produit intégré à l'application, comme indiqué dans la capture d'écran ci-dessous..

Notez que le traitement de votre soumission peut prendre une ou deux heures avant que le produit ne soit publié..

3. Mise à jour du manifeste d'application

Il est temps de mettre à jour le manifeste de l'application en ajoutant le ID de l'application et Éditeur GUID, que vous avez copié à partir du portail de développement Windows Phone. En utilisant le Explorateur de solution de votre projet, naviguez jusqu'à Propriétés et localiser WMAppManifest.xml.

Visual Studio attribue un ID de produit et un ID d'éditeur aléatoires lorsque vous créez un nouveau projet, que vous devez modifier en accédant à la Emballage languette. Si vous ciblez uniquement Windows Phone 8.1, vous devez mettre à jour Paquet.appmanifest en plus de WMAppManifest.xml.

4. Répertorier les produits intégrés à votre application

L'application utilise l'API d'achat intégrée à l'application disponible dans le kit de développement logiciel Windows Phone pour extraire des produits et les répertorier. L'utilisateur a maintenant une option pour acheter ces produits à partir de l'application. Selon l'application que vous créez, vous pouvez répertorier des produits spécifiques à différents endroits, mais aux fins de la démonstration, affichons tous les produits associés à l'application et gérons le flux d'achat..

Nous avons besoin d'un ItemsControl tenir les produits. L’extrait de code suivant montre comment définir le modèle de données de votre ItemsControl et lier les produits à elle. Notez que l'achatLe bouton n'est visible que si l'utilisateur n'a pas acheté le produit. N'hésitez pas à jouer avec le modèle de données pour le rendre plus attrayant.

             

La classe publique ProductItemstocke toutes les informations relatives à un produit particulier. Il y a un ObservableCollection de type ProductItem nommé picItems, qui stocke tous les produits.

Classe publique ProductItem chaîne publique imgLink get; ensemble;  chaîne publique Status get; ensemble;  chaîne publique Nom get; ensemble;  clé de chaîne publique get; ensemble;  public System.Windows.Visibility BuyNowButtonVisible get; ensemble; 

L'étape suivante consiste à ajouter une fonction RenderStoreItemsdans le code derrière pour lister tous les produits de l'application. Cette fonction effectue un appel asynchrone à LoadListingInformationAsyncrendre les produits pour l'application en cours. La fonction parcourt ensuite chaque produit, vérifiant ses informations de licence et les ajoutant à la liste. Nous lions le nom, l’état de l’achat et le prix à la zone de liste et les affichons à l’utilisateur..

ListingInformation li = wait Windows.ApplicationModel.Store.CurrentApp.LoadListingInformationAsync (); foreach (clé de chaîne dans li.ProductListings.Keys) Liste de produits pListing = li.ProductListings [clé]; System.Diagnostics.Debug.WriteLine (clé); string status = Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses [clé] .IsActive? "Acheté": pListing.FormattedPrice; string imageLink = string.Empty; // picItems est une collection observable avec une étendue globale de MainPage.xaml picItems.Add (nouveau ProductItem imgLink = key.Equals ("PremiumVersion")? "Images / block-ads.png": "Images / block-ads.png ", Name = pListing.Name, Status = status, clé = clé, BuyNowButtonVisible = Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses [clé] .IsActive? System.Windows.Visibility.Collapsed: System.Windows.Vindibility.Visibility.Visibility.Visibility.Vollibility );  pics.ItemsSource = picItems;

Notez que vous devez entrer un code correct ID de l'application, ID de l'éditeur, et ID du produit avant de pouvoir déployer l'exemple de projet avec ce tutoriel.

Ensuite, vous devez ajouter le gestionnaire d'événements click pour le bouton d'achat. La fonction ButtonBuyNow_Clickedinitie l'achat. L’utilisateur se voit proposer une expérience d’achat faisant partie de la plate-forme Windows Phone 8. Lorsque l'achat est terminé, vous pouvez activer une fonctionnalité verrouillée ou laisser l'utilisateur télécharger du contenu supplémentaire. Ceci est entièrement à vous.

Button btn = expéditeur en tant que Button; chaîne de clé = btn.Tag.ToString (); if (! Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses [clé]. IsActive) ListingInformation li = wait Windows.ApplicationModel.Store.CurrentApp.LoadListingInformationAsync (); chaîne pID = li.ProductListings [clé] .ProductId; string reçu = attendre Windows.ApplicationModel.Store.CurrentApp.RequestProductPurchaseAsync (pID, false); 

5. Après l'achat

Vous pouvez utiliser l'API d'achat intégrée à l'application pour énumérer les licences dont dispose l'utilisateur pour les produits de votre application lors du lancement ou de la reprise de l'application, ou après un achat. Cela vous permet de déterminer si l'utilisateur possède déjà le produit pour lequel il a obtenu une licence ou si son exécution est toujours en attente. Vous pouvez également récupérer les reçus des produits achetés par l'utilisateur pour vérifier si la transaction a bien eu lieu à l'aide du GetProductReceiptAsync une fonction.

string receiveXml = wait CurrentApp.GetProductReceiptAsync ("PremiumVersion");

Vérifier si LicenseInformation.IsActiverésultats vrai pour un produit avant de réaliser un achat. Cependant, l'appel de cette fonction nécessite beaucoup de ressources, il est donc conseillé de ne pas l'appeler au lancement ou à la reprise de l'application..

Lorsque vous pensez que l'achat d'un produit est terminé, vérifiez d'abord qu'il existe une licence pour cet ID de produit, puis vérifiez si C'est actif est vrai sur cette licence. Si la licence est active, l'achat doit être exécuté immédiatement..

bool productStatus = Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses ["AdBlocker"]. IsActive;

Un scénario possible dans lequel les achats intégrés à l'application peuvent être utiles est lorsque vous souhaitez distribuer votre application gratuitement avec des annonces et permettre à l'utilisateur de les supprimer par le biais d'un achat intégré. Voici un article sur l'implémentation d'une fonctionnalité de "blocage d'annonces" à l'aide de l'API d'achat intégrée à l'application. La même technique peut être utilisée pour mettre en œuvre un essai. L’avantage est que votre application est répertoriée dans la liste gratuite.catégorie dans le magasin et vous obtiendrez ainsi plus de téléchargements.

Dans le cas des produits consommables, il incombe à l'application de suivre la consommation. le CurrentApp.LicenseInformationfournit uniquement des informations sur la licence, pas sur l'état.

6. Tester les achats intégrés

Si vous testez votre application dans l'émulateur, les achats intégrés sont gratuits et aucune transaction financière n'a lieu. Chaque fois que vous réinstallez l'application dans l'émulateur, les informations de licence précédemment stockées sont effacées..

Il existe trois techniques principales pour tester les achats intégrés:

  • créer une application bêta pour le centre des développeurs et ajouter des produits bêta intégrés aux applications
  • Ajoutez la maquette de bibliothèque virtuelle d'achat virtuel à votre solution.
  • configurer un service factice d'achat intégré à l'application à l'aide de Microsoft Internet Information Services (IIS)

Conclusion

Dans ce tutoriel, vous avez appris à répertorier les produits intégrés à l'application et à activer une fonctionnalité d'application lorsque l'utilisateur achète un produit. De nombreuses personnalisations sont possibles avec les achats intégrés et peuvent être utilisées dans une variété de scénarios..

Je vous encourage à consulter l'aperçu de l'API In-AppPurchase sur MSDN. Il convient également d'examiner les options permettant de tester les fonctionnalités d'achat intégrées à votre application avant de la publier sur le marché. N'hésitez pas à télécharger les fichiers sources du didacticiel à utiliser comme référence.