Freigeben über


Aktivieren von In-App-Produktkäufen

Unabhängig davon, ob Ihre App kostenlos ist oder nicht, können Sie Inhalte, andere Apps oder neue App-Funktionen (z. B. das Entsperren der nächsten Stufe eines Spiels) direkt innerhalb der App verkaufen. Hier zeigen wir Ihnen, wie Sie diese Produkte in Ihrer App aktivieren.

Wichtig

In diesem Artikel wird veranschaulicht, wie Mitglieder des Windows.ApplicationModel.Store-Namespaces zum Aktivieren von In-App-Produktkäufen verwendet werden. Dieser Namespace wird nicht mehr mit neuen Features aktualisiert, und es wird empfohlen, stattdessen den Windows.Services.Store Namespace zu verwenden. Der Windows.Services.Store-Namespace unterstützt die neuesten Add-On-Typen, z. B. vom Store verwaltete Verbrauchs-Add-Ons und Abonnements, und ist so konzipiert, dass er mit zukünftigen Produkttypen und Features kompatibel ist, die vom Partner Center und dem Store unterstützt werden. Der Windows.Services.Store-Namespace wurde in der Version 1607 von Windows 10 eingeführt und kann ausschließlich in Projekten verwendet werden, die auf Windows 10 Anniversary Edition (Build 14393 der Version 10.0) oder ein späteres Release in Visual Studio ausgelegt ist. Weitere Informationen zum Aktivieren von In-App-Produktkäufen mithilfe des Windows.Services.Store Namespace finden Sie in diesem Artikel.

Hinweis

In-App-Produkte können nicht über eine Testversion einer App angeboten werden. Kunden, die eine Testversion Ihrer App verwenden, können nur ein In-App-Produkt kaufen, wenn sie eine Vollversion Ihrer App erwerben.

Voraussetzungen

  • Eine Windows-App, in der Kunden Features zum Kauf hinzufügen können.
  • Wenn Sie neue In-App-Produkte zum ersten Mal codieren und testen, müssen Sie das CurrentAppSimulator-Objekt anstelle des CurrentApp-Objekts verwenden. Auf diese Weise können Sie Ihre Lizenzlogik mithilfe simulierter Aufrufe an den Lizenzserver überprüfen, anstatt den Liveserver aufzurufen. Dazu müssen Sie die Datei namens WindowsStoreProxy.xml in %userprofile%\AppData\local\packages\<paketname>\LocalState\Microsoft\Windows Store\ApiData anpassen. Der Microsoft Visual Studio-Simulator erstellt diese Datei, wenn Sie Ihre App zum ersten Mal ausführen, oder Sie können auch eine benutzerdefinierte Zur Laufzeit laden. Weitere Informationen finden Sie unter Verwenden der WindowsStoreProxy.xml-Datei mit CurrentAppSimulator.
  • In diesem Thema wird auch auf Codebeispiele verwiesen, die im Store-Beispiel bereitgestellt werden. Dieses Beispiel ist eine hervorragende Möglichkeit, praktische Erfahrungen mit den verschiedenen Monetarisierungsoptionen zu erhalten, die für Universelle Windows-Plattform -Apps (UWP) bereitgestellt werden.

Schritt 1: Initialisieren der Lizenzinformationen für Ihre App

Rufen Sie beim Initialisieren der App das LicenseInformation-Objekt für Ihre App ab, indem Sie " CurrentApp " oder "CurrentAppSimulator" initialisieren , um Einkäufe eines In-App-Produkts zu aktivieren.

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...
}

Schritt 2: Hinzufügen der In-App-Angebote zu Ihrer App

Erstellen Sie für jedes Feature, das Sie über ein In-App-Produkt verfügbar machen möchten, ein Angebot, und fügen Sie es Ihrer App hinzu.

Wichtig

Sie müssen alle In-App-Produkte hinzufügen, die Sie Ihren Kunden präsentieren möchten, bevor Sie sie an den Store übermitteln. Wenn Sie später neue In-App-Produkte hinzufügen möchten, müssen Sie Ihre App aktualisieren und eine neue Version erneut übermitteln.

  1. Erstellen eines In-App-Angebotstokens

    Sie identifizieren jedes In-App-Produkt in Ihrer App anhand eines Tokens. Dieses Token ist eine Zeichenfolge, die Sie in Ihrer App und im Store definieren und verwenden, um ein bestimmtes In-App-Produkt zu identifizieren. Weisen Sie ihr einen eindeutigen (für Ihre App) und einen aussagekräftigen Namen zu, damit Sie schnell das richtige Feature identifizieren können, das sie während der Codierung darstellt. Hier sind einige Beispiele für Namen:

    • "SpaceMissionLevel4"
    • "ContosoCloudSave"
    • "RainbowThemePack"

Hinweis

Das In-App-Angebotstoken, das Sie im Code verwenden, muss mit dem Produkt-ID-Wert übereinstimmen, den Sie angeben, wenn Sie das entsprechende Add-On für Ihre App im Partner Center definieren.

  1. Codierung des Features in einem bedingten Block

    Sie müssen den Code für jedes Feature, das einem In-App-Produkt zugeordnet ist, in einem bedingten Block platzieren, der überprüft, ob der Kunde über eine Lizenz für die Verwendung dieses Features verfügt.

    Hier ist ein Beispiel, das zeigt, wie Sie ein Produktfeature namens "featureName " in einem lizenzspezifischen bedingten Block codieren können. Die Zeichenfolge " featureName" ist das Token, das dieses Produkt innerhalb der App eindeutig identifiziert und auch verwendet wird, um es im Store zu identifizieren.

    if (licenseInformation.ProductLicenses["featureName"].IsActive)
    {
        // the customer can access this feature
    }
    else
    {
        // the customer can' t access this feature
    }
    
  2. Hinzufügen der Einkaufs-UI für dieses Feature

    Ihre App muss ihren Kunden auch die Möglichkeit bieten, das Produkt oder feature des In-App-Produkts zu erwerben. Sie können sie nicht über den Store auf die gleiche Weise erwerben, wie sie die vollständige App erworben haben.

    Hier erfahren Sie, wie Sie testen, ob Ihr Kunde bereits über ein In-App-Produkt verfügt und wenn dies nicht der Fehler ist, das Kaufdialogfeld anzeigt, damit er es kaufen kann. Ersetzen Sie den Kommentar "Dialogfeld "Kauf anzeigen" durch Ihren benutzerdefinierten Code für das Kaufdialogfeld (z. B. eine Seite mit einer freundlichen Schaltfläche "Diese App kaufen!").

    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.
        }
    }
    

Schritt 3: Ändern des Testcodes in die endgültigen Aufrufe

Dies ist ein einfacher Schritt: Ändern Sie jeden Verweis auf CurrentAppSimulator in CurrentApp im App-Code. Sie müssen die WindowsStoreProxy.xml Datei nicht mehr angeben. Entfernen Sie sie daher aus dem Pfad Ihrer App (obwohl Sie sie möglicherweise zur Referenz speichern möchten, wenn Sie das In-App-Angebot im nächsten Schritt konfigurieren).

Schritt 4: Konfigurieren des In-App-Produktangebots im Store

Navigieren Sie im Partner Center zu Ihrer App, und erstellen Sie ein Add-On , das Ihrem In-App-Produktangebot entspricht. Definieren Sie die Produkt-ID, den Typ, den Preis und andere Eigenschaften für Ihr Add-On. Stellen Sie sicher, dass Sie sie identisch mit der Konfiguration konfigurieren, die Sie beim Testen in WindowsStoreProxy.xml festgelegt haben.

Hinweis

Das In-App-Angebotstoken, das Sie im Code verwenden, muss mit dem Produkt-ID-Wert übereinstimmen, den Sie für das entsprechende Add-On im Partner Center angeben.

Hinweise

Wenn Sie Ihren Kunden konsumierbare In-App-Produktoptionen bereitstellen möchten (Artikel, die gekauft, verwendet und dann bei Bedarf erneut erworben werden können), wechseln Sie zum Thema "Konsumierbare In-App-Produktkäufe aktivieren".

Wenn Sie Bestätigungen verwenden müssen, um zu überprüfen, ob der Benutzer einen In-App-Kauf getätigt hat, überprüfen Sie die Verwendungsbestätigungen, um Produktkäufe zu überprüfen.