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.
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:
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.
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:
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é..
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.
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 ProductItem
stocke 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 RenderStoreItems
dans le code derrière pour lister tous les produits de l'application. Cette fonction effectue un appel asynchrone à LoadListingInformationAsync
rendre 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_Clicked
initie 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);
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.IsActive
ré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.LicenseInformation
fournit uniquement des informations sur la licence, pas sur l'état.
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:
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.