Activer les achats de produits dans l’application

Que votre application soit gratuite ou non, vous pouvez vendre du contenu, d’autres applications ou de nouvelles fonctionnalités d’application (par exemple, déverrouiller le niveau suivant d’un jeu) directement dans l’application. Ici, nous vous montrons comment activer ces produits dans votre application.

Important

Cet article montre comment utiliser des 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 derniers types d’extensions, tels que les modules complémentaires consommables gérés par le Store et les abonnements, 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 Store. L’espace de noms Windows.Services.Store a été introduit dans la version 1607 de Windows 10 et ne peut être utilisé que dans les projets ciblant 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.

Remarque

Les produits dans l’application 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 qu’un produit in-app s’ils achètent une version complète de votre application.

Prérequis

  • Application Windows dans laquelle ajouter des fonctionnalités pour les clients à acheter.
  • Lorsque vous codez et testez de nouveaux produits dans l’application pour la première fois, vous devez utiliser l’objet CurrentAppSimulator au lieu de l’objet CurrentApp . De cette façon, vous pouvez vérifier votre logique de licence à l’aide d’appels simulés au serveur de licences au lieu d’appeler le serveur en direct. 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 lorsque vous exécutez votre application pour la première fois, ou vous pouvez également charger un fichier personnalisé lors 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 l’exemple Store. Cet exemple est un excellent moyen d’obtenir une expérience pratique avec les différentes options de monétisation fournies pour les applications plateforme Windows universelle (UWP).

Étape 1 : Initialiser les informations de licence pour votre application

Lorsque votre application initialise, obtenez l’objet LicenseInformation pour votre application en initialisant 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 : Ajouter les offres dans l’application à votre application

Pour chaque fonctionnalité que vous souhaitez rendre disponible via un produit in-app, créez une offre et ajoutez-la à votre application.

Important

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

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

    Vous identifiez chaque produit dans l’application dans votre application par un jeton. Ce jeton est une chaîne que vous définissez et utilisez dans votre application et dans le Windows Store pour identifier un produit spécifique dans l’application. Attribuez-lui un nom unique (à votre application) et un nom explicite afin de pouvoir identifier rapidement la fonctionnalité correcte qu’elle représente pendant le codage. Voici quelques exemples de noms :

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

Remarque

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. Coder la fonctionnalité dans un bloc conditionnel

    Vous devez placer le code de chaque fonctionnalité associée à un produit in-app dans un bloc conditionnel qui teste si le client dispose d’une licence pour utiliser cette fonctionnalité.

    Voici un exemple qui montre comment coder une fonctionnalité de produit nommée featureName dans un bloc conditionnel spécifique à une licence. La chaîne, featureName, est le jeton qui identifie de manière unique ce produit dans l’application et qui 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. Ajouter l’interface utilisateur d’achat pour cette fonctionnalité

    Votre application doit également fournir un moyen à vos clients d’acheter le produit ou la fonctionnalité proposé par le produit dans l’application. Ils ne peuvent pas les acheter via le Store de la même façon qu’ils ont acheté l’application complète.

    Voici comment tester si votre client possède déjà un produit in-app et, si ce n’est pas le cas, affiche la boîte de dialogue d’achat pour pouvoir 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 : Modifier le code de test en appels finaux

Il s’agit d’une étape simple : remplacez chaque référence à CurrentAppSimulator par CurrentApp dans le code de votre application. Vous n’avez plus besoin de fournir le fichier WindowsStoreProxy.xml, donc supprimez-le du chemin d’accès de votre application (même si vous souhaiterez peut-être l’enregistrer pour référence lorsque vous configurez l’offre dans l’application à l’étape suivante).

Étape 4 : Configurer l’offre de produit dans l’application dans le Windows Store

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 pour votre module complémentaire. Veillez à le configurer de façon identique à la configuration que vous avez définie dans WindowsStoreProxy.xml lors du test.

Remarque

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.

Notes

Si vous souhaitez fournir à vos clients des options de produit consommables dans l’application (articles qui peuvent être achetés, utilisés, puis achetés à nouveau si vous le souhaitez), passez à la rubrique Activer les achats de produits in-app consommables .

Si vous devez utiliser des reçus pour vérifier que l’utilisateur a effectué un achat dans l’application, veillez à consulter les reçus d’utilisation pour vérifier les achats de produits.