Activer les achats de produits in-app

Que votre application soit gratuite ou non, vous pouvez vendre du contenu, d’autres applications ou de nouvelles fonctionnalités applicatives (par exemple le déverrouillage d’un nouveau niveau de jeu) directement dans l’application. Nous allons vous montrer comment activer ces produits dans votre application.

Important

Cet article explique comment utiliser les membres de l’espace de noms Windows.ApplicationModel.Store pour activer les achats de produits dans l’application. Cet espace de noms n’est plus mis à jour avec de nouvelles fonctionnalités, et nous vous recommandons d’utiliser l’espace de noms Windows.Services.Store à la place. L’espace de noms Windows.Services.Store prend en charge les types de modules complémentaires les plus récents, tels que les extensions et abonnements consommables gérés par le Store, et est conçu pour être compatible avec les futurs types de produits et de fonctionnalités pris en charge par l’Espace partenaires et le Windows Store. L’espace de noms Windows.Services.Store a été introduit dans Windows 10 version 1607 et ne peut être utilisé que dans les projets qui ciblent Windows 10 édition anniversaire (10.0 ; Build 14393) ou une version ultérieure dans Visual Studio. Pour plus d’informations sur l’activation des achats de produits dans l’application à l’aide de l’espace de noms Windows.Services.Store , consultez cet article.

Notes

Les produits in-app ne peuvent pas être proposés à partir d’une version d’évaluation d’une application. Les clients qui utilisent une version d’évaluation de votre application ne peuvent acheter un produit in-app que s’ils achètent une version complète de votre application.

Prérequis

  • Application Windows dans laquelle ajouter des fonctionnalités que les clients peuvent acheter.
  • Lorsque vous codez et testez de nouveaux produits in-app pour la première fois, vous devez utiliser l’objet CurrentAppSimulator au lieu de l’objet CurrentApp. Cela vous permet de vérifier votre logique de licence à l’aide d’appels simulés au serveur de licences au lieu d’appels au serveur Windows Live. Pour ce faire, vous devez personnaliser le fichier nommé WindowsStoreProxy.xml dans %userprofile%\AppData\local\packages\<package name>\LocalState\Microsoft\Windows Store\ApiData. Le simulateur Microsoft Visual Studio crée ce fichier quand vous exécutez votre application pour la première fois. Vous pouvez également charger un fichier personnalisé au moment de l’exécution. Pour plus d’informations, consultez Utilisation du fichier WindowsStoreProxy.xml avec CurrentAppSimulator.
  • Cette rubrique fait également référence à des exemples de code fournis dans Exemple Windows Store. Cet exemple représente un excellent moyen d’obtenir une expérience pratique avec les différentes options de monétisation fournies pour les applications UWP.

Étape 1 : Initialisation des informations de licence de votre application

Lors de l’initialisation de votre application, obtenez l’objet LicenseInformation de votre application en initialisant l’élément CurrentApp ou CurrentAppSimulator pour activer les achats d’un produit in-app.

void InitializeApp()
{
    // Some app initialization code...

    // Initialize the license info for use in the app that is uploaded to the Store.
    // Uncomment the following line in the release version of your app.
    //   licenseInformation = CurrentApp.LicenseInformation;

    // Initialize the license info for testing.
    // Comment the following line in the release version of your app.
    licenseInformation = CurrentAppSimulator.LicenseInformation;

    // Other app initialization code...
}

Étape 2 : Ajout d’offres in-app à votre application

Pour chaque fonctionnalité que vous voulez proposer par le biais d’un produit dans l’application, créez une offre et ajoutez-la à votre application.

Important

Vous devez ajouter tous les produits in-app que vous souhaitez présenter à vos clients à votre application avant de l’envoyer au Windows Store. Pour ajouter ultérieurement de nouveaux produits dans l’application, vous devez mettre à jour votre application et en soumettre une nouvelle version.

  1. Création d’un jeton d’offre dans l’application

    Identifiez chaque produit dans l’application, via un jeton. Ce jeton est une chaîne que vous définissez et utilisez dans votre application, ainsi que dans le Windows Store, pour identifier un produit spécifique dans l’application. Donnez à votre jeton un nom unique et évocateur (dans l’application) afin de pouvoir rapidement identifier la fonctionnalité qu’il représente, lors de l’écriture du code. Voici quelques exemples de noms :

    • « SpaceMissionLevel4 »
    • « ContosoCloudSave »
    • « RainbowThemePack »

Notes

Le jeton d’offre dans l’application que vous utilisez dans votre code doit correspondre à la valeur d’ID de produit que vous spécifiez lorsque vous définissez le module complémentaire correspondant pour votre application dans l’Espace partenaires.

  1. Codage de la fonctionnalité dans un bloc conditionnel

    Vous devez placer dans un bloc conditionnel le code de chaque fonctionnalité associée à un produit dans l’application. Ce bloc vérifie si le client possède une licence lui permettant d’utiliser cette fonctionnalité.

    Voici un exemple indiquant comment vous pouvez coder une fonctionnalité de produit nommée featureName dans le bloc conditionnel propre à une licence. La chaîne , featureName, est le jeton qui identifie de façon unique ce produit dans l’application et est également utilisé pour l’identifier dans le Windows Store.

    if (licenseInformation.ProductLicenses["featureName"].IsActive)
    {
        // the customer can access this feature
    }
    else
    {
        // the customer can' t access this feature
    }
    
  2. Ajout de l’interface utilisateur d’achat pour cette fonctionnalité

    Votre application doit également fournir à vos clients un moyen d’acheter le composant ou la fonctionnalité proposés par le produit dans l’application. En effet, ils ne peuvent pas les acheter par l’intermédiaire du Windows Store, de la même façon qu’ils ont acheté l’application complète.

    Voici comment vérifier si votre client possède déjà un produit dans l’application et, si tel n’est pas le cas, comment afficher la boîte de dialogue d’achat lui permettant de l’acheter. Remplacez le commentaire « Afficher la boîte de dialogue d’achat » par votre code personnalisé pour la boîte de dialogue d’achat (par exemple, une page avec un bouton convivial « Acheter cette application ! »).

    async void BuyFeature()
    {
        if (!licenseInformation.ProductLicenses["featureName"].IsActive)
        {
            try
            {
                // The customer doesn't own this feature, so
                // show the purchase dialog.
                await CurrentAppSimulator.RequestProductPurchaseAsync("featureName", false);
    
                //Check the license state to determine if the in-app purchase was successful.
            }
            catch (Exception)
            {
                // The in-app purchase was not completed because
                // an error occurred.
            }
        }
        else
        {
            // The customer already owns this feature.
        }
    }
    

Étape 3 : Modification du code de test jusqu’aux appels finaux

C’est simple : remplacez chaque référence à CurrentAppSimulator par une référence à CurrentApp dans le code de votre application. Le fichier WindowsStoreProxy.xml n’est plus nécessaire. Vous pouvez le supprimer du chemin d’accès de votre application (mais vous pouvez l’enregistrer à titre de référence pour la configuration de l’offre in-app à l’étape suivante).

Étape 4 : Configuration dans le Windows Store de l’offre de produit in-app

Dans l’Espace partenaires, accédez à votre application et créez un module complémentaire qui correspond à votre offre de produit dans l’application. Définissez l’ID de produit, le type, le prix et d’autres propriétés de votre module complémentaire. Veillez à effectuer les différents réglages en respectant la configuration définie dans le fichier WindowsStoreProxy.xml pendant le test.

Notes

Le jeton d’offre dans l’application que vous utilisez dans votre code doit correspondre à la valeur d’ID de produit que vous spécifiez pour le module complémentaire correspondant dans l’Espace partenaires.

Remarques

Si vous envisagez de fournir à vos clients des options de produits consommables intégrés à l’application (éléments pouvant être achetés, utilisés, puis rachetés si nécessaire), passez à la rubrique Activer les achats de produits consommables intégrés à l’application.

Si vous avez besoin de reçus pour vérifier que l’utilisateur a bien effectué un achat in-app, consultez la rubrique Utiliser des reçus pour vérifier les achats de produits.