In-App-Kauf unter Windows Phone 8 implementieren

In-App-Käufe sind eine hervorragende Möglichkeit, den Umsatz Ihrer Windows Phone-App zu steigern. In diesem Lernprogramm werde ich Ihnen zeigen, wie Sie In-App-Käufe in einer Windows Phone 8 Silverlight-Anwendung implementieren.

Um Ihre Anwendung zu testen, müssen Sie ein Produkt zum Testen erstellen. Dies bedeutet, dass Sie ein aktives Windows Phone-Entwicklerkonto benötigen, wenn Sie mitverfolgen möchten.

Einführung

Windows Phone 8 bietet ein bequemes Einkaufserlebnis, zuverlässige Auszahlungen, verteilte Dienste und Produktverwaltungstools, um einen sinnvollen Handel mit Ihrer App zu erreichen. Sie können zwischen In-App-Käufen und anderen Zahlungsoptionen (z. B. PayPal) wählen, aber In-App-Käufe bieten Ihnen mehr Flexibilität, da sie Folgendes bieten:

  • Verwaltung von Produkten über das Windows Phone-Entwicklerportal
  • geografisch verteilte Dienste und Auszahlungen in mehr als 190 Ländern
  • konsistente Kauferfahrung für Benutzer über alle Apps am Telefon und Nachweis der Authentizität durch sichere Quittungen

1. Holen Sie sich eine App-ID

Navigieren Sie im Dashboard des Windows Phone-Entwicklerportals zu Einzelheiten Registerkarte Ihrer App und notieren Sie die App-ID. Schnapp dir auch deine Publisher-GUID vom Entwicklerportal. Sie benötigen diese Details später, um die Anwendungsmanifestdatei zu aktualisieren.

Wenn Sie eine neue App entwickeln, wechseln Sie zum Dashboard und klicken Sie auf App einreichen Starten Sie den Einreichungsprozess und reservieren Sie einen Namen für Ihre App. Speichern Sie diese Details, und Sie können das Senden der XAP-Datei vorerst überspringen. Notieren Sie sich die App-ID aus der App-Eigenschaften Sektion.

2. Fügen Sie Ihrer App ein Produkt hinzu

Unter Anwendungsdetails gibt es eine Produkte Registerkarte, auf der Sie In-App-Produkte für Ihre App hinzufügen und verwalten können. Für diese Demonstration haben wir ein Produkt mit dem Namen erstellt Premium App

Im Windows Phone-Entwicklerportal müssen Sie die Eigenschaften und die Beschreibung Ihres In-App-Produkts hinzufügen. Sie können optional ein individuelles Preismodell für Ihr Produkt in verschiedenen Märkten festlegen.  

Sie müssen die Eigenschaften Ihres In-App-Produkts wie im folgenden Screenshot angegeben ausfüllen. Erinnere dich an die Produktidentifikator Sie benötigen es, um In-App-Produkte in Ihrer App aufzulisten.

Beim Einfügen eines In-App-Produkts sollten Sie Folgendes beachten:

  • Sie können mehrere Produkte für eine App haben. Jedes Produkt kann verbrauchbar oder haltbar sein. Dauerhafte Produkte können nur einmal gekauft werden.
  • Universelle Apps können In-App-Produkte gemeinsam nutzen, sodass Benutzer einmalig kaufen und überall verwenden können. Ihre In-App-Produktkategorie kann unterschiedlich sein, aber Produktname und -identität sollten übereinstimmen, damit dies funktioniert.
  • Sie können benutzerdefinierte Preise für Ihre Produkte in verschiedenen Ländern definieren.

Für den Beschreibungsabschnitt müssen Sie einen Produkttitel, eine Beschreibung und ein Bild für das In-App-Produkt hinzufügen (siehe Abbildung unten).

Beachten Sie, dass es eine oder zwei Stunden dauern kann, bis Ihre Einreichung bearbeitet ist, bevor das Produkt veröffentlicht wird.

3. Aktualisieren Sie das Anwendungsmanifest

Es ist an der Zeit, das Anwendungsmanifest durch Hinzufügen von zu aktualisieren App-ID und Publisher-GUID, die Sie aus dem Windows Phone-Entwicklerportal kopiert haben. Verwendung der Lösungsforscher Navigieren Sie zu Ihrem Projekt Eigenschaften und lokalisieren WMAppManifest.xml.

Visual Studio weist eine zufällige Produkt-ID und eine Publisher-ID zu, wenn Sie ein neues Projekt erstellen, das Sie ändern müssen, indem Sie in wechseln Verpackung Tab. Wenn Sie nur Windows Phone 8.1 als Ziel haben, müssen Sie ein Update durchführen Package.appmanifest zusätzlich zu WMAppManifest.xml.

4. Listen Sie In-App-Produkte in Ihrer App auf

Die App verwendet die In-App-Kauf-API, die im Windows Phone SDK verfügbar ist, um Produkte abzurufen und aufzulisten. Der Benutzer hat jetzt die Möglichkeit, diese Produkte aus der App heraus zu kaufen. Abhängig von der Anwendung, die Sie erstellen, möchten Sie möglicherweise bestimmte Produkte an verschiedenen Orten auflisten. Lassen Sie uns jedoch zu Demonstrationszwecken alle mit der App verknüpften Produkte anzeigen und den Kaufablauf abwickeln.

Wir brauchen eine ItemsControl die Produkte halten. Das folgende Code-Snippet zeigt, wie Sie die Datenvorlage Ihres Computers definieren können ItemsControl und binden Sie die Produkte daran. Beachten Sie, dass der KaufDie Schaltfläche ist nur sichtbar, wenn der Benutzer das Produkt nicht erworben hat. Fühlen Sie sich frei, mit der Datenvorlage zu spielen, um sie attraktiver zu machen.

             

Die öffentliche Klasse Produktartikelspeichert alle Informationen zu einem bestimmten Produkt. Da ist ein ObservableCollection vom Typ Produktartikel genannt picItems, die speichert alle Produkte.

öffentliche Klasse ProductItem öffentliche Zeichenfolge imgLink get; einstellen;  öffentliche Zeichenfolge Status get; einstellen;  öffentlicher String Name get; einstellen;  öffentlicher String-Schlüssel get; einstellen;  public System.Windows.Visibility BuyNowButtonVisible get; einstellen; 

Der nächste Schritt ist das Hinzufügen einer Funktion RenderStoreItemsim Code dahinter, um alle Produkte für die Anwendung aufzulisten. Diese Funktion ruft einen asynchronen Aufruf auf LoadListingInformationAsyncum die Produkte für die aktuelle Anwendung darzustellen. Die Funktion durchläuft dann jedes Produkt, überprüft die Lizenzinformationen und fügt sie der Liste hinzu. Wir binden den Namen, den Kaufstatus und den Preis an das Listenfeld und zeigen es dem Benutzer an.

ListingInformation li = erwartet Windows.ApplicationModel.Store.CurrentApp.LoadListingInformationAsync (); foreach (Zeichenfolgenschlüssel in li.ProductListings.Keys) ProductListing pListing = li.ProductListings [key]; System.Diagnostics.Debug.WriteLine (Schlüssel); string status = Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses [Schlüssel] .IsActive? "Purchased": pListing.FormattedPrice; string imageLink = string.Empty; // picItems ist eine beobachtbare Sammlung mit globalem Gültigkeitsbereich für MainPage.xaml picItems.Add (neues ProductItem imgLink = key.Equals ("PremiumVersion")? "Images / block-ads.png": "Images / block-ads.png" ", Name = pListing.Name, Status = Status, Schlüssel = Schlüssel, BuyNowButtonVisible = Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses [Schlüssel] .IsActive? );  pics.ItemsSource = picItems;

Beachten Sie, dass Sie eine korrekte Eingabe vornehmen müssen App-ID, Publisher-ID, und Produkt ID bevor Sie das Beispielprojekt mit diesem Lernprogramm bereitstellen können.

Als Nächstes müssen Sie den Click-Ereignishandler für die Schaltfläche "buy" hinzufügen. Die Funktion ButtonBuyNow_Clickedleitet den Kauf ein. Dem Benutzer wird eine Kauferfahrung präsentiert, die Teil der Windows Phone 8-Plattform ist. Wenn der Kauf abgeschlossen ist, können Sie eine gesperrte Funktion aktivieren oder den Benutzer dazu veranlassen, zusätzlichen Inhalt herunterzuladen. Das liegt ganz bei Ihnen.

Button btn = Absender als Button; string key = btn.Tag.ToString (); if (! Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses [Schlüssel] .IsActive) ListingInformation li = wartet auf Windows.ApplicationModel.Store.CurrentApp.LoadListingInformationAsync (); Zeichenfolge pID = li.ProductListings [Schlüssel] .ProductId; Zeichenfolgequitt = erwarten Sie Windows.ApplicationModel.Store.CurrentApp.RequestProductPurchaseAsync (pID, false); 

5. Nach dem Kauf

Sie können die In-App-Kauf-API verwenden, um die Lizenzen aufzuzählen, die der Benutzer für die Produkte in Ihrer App besitzt, wenn die App gestartet oder wiederaufgenommen wird oder nach einem Kauf. Auf diese Weise können Sie bestimmen, ob der Benutzer bereits das von ihm lizenzierte Produkt besitzt oder ob seine Erfüllung noch aussteht. Sie können auch Quittungen für die vom Benutzer gekauften Produkte abrufen, um zu überprüfen, ob die Transaktion mithilfe von durchgeführt wurde GetProductReceiptAsync Funktion.

ZeichenfolgeQualityXml = Erwarte CurrentApp.GetProductReceiptAsync ("PremiumVersion");

Prüfe ob LicenseInformation.IsActivekehrt zurück wahr für ein Produkt vor dem Kauf. Der Aufruf dieser Funktion ist jedoch ressourcenintensiv, daher ist es ratsam, sie nicht beim Starten oder Fortsetzen der App aufzurufen.

Wenn Sie der Meinung sind, dass der Kauf eines Produkts abgeschlossen ist, überprüfen Sie zunächst, ob eine Lizenz für diese Produkt-ID vorhanden ist, und prüfen Sie, ob Ist aktiv ist wahr auf dieser Lizenz. Wenn die Lizenz aktiv ist, sollte der Kauf sofort erfüllt werden.

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

Ein mögliches Szenario, in dem In-App-Käufe nützlich sein können, ist, wenn Sie Ihre App kostenlos mit Anzeigen verteilen möchten und dem Benutzer gestatten, sie durch einen In-App-Kauf zu entfernen. Hier finden Sie einen Artikel zum Implementieren einer Funktion für Blockanzeigen mithilfe der In-App-Kauf-API. Die gleiche Technik kann zur Durchführung eines Versuchs verwendet werden. Der Vorteil ist, dass Ihre App in der kostenlosen Liste aufgeführt istKategorie in den Laden und erhalten Sie als Ergebnis mehr Downloads.

Im Falle von Verbrauchsmaterialien ist die App dafür verantwortlich, den Verbrauch zu verfolgen. Das CurrentApp.LicenseInformationenthält nur Informationen zur Lizenz, nicht den Status.

6. Testen von In-App-Käufen

Wenn Sie Ihre App im Emulator testen, sind In-App-Käufe kostenlos und es werden keine finanziellen Transaktionen durchgeführt. Bei jeder Neuinstallation der App im Emulator werden zuvor gespeicherte Lizenzinformationen gelöscht.

Es gibt drei Hauptverfahren zum Testen von In-App-Käufen:

  • Erstellen Sie eine Beta-App für das Dev Center und fügen Sie Beta-In-App-Produkte hinzu
  • Fügen Sie der Lösung die Mock-In-App-Kauf-Mock-Bibliothek hinzu
  • Einrichten eines In-App-Kauf-Mock-Service mit Microsoft Internet Information Services (IIS)

Fazit

In diesem Lernprogramm haben Sie gelernt, wie Sie In-App-Produkte auflisten und eine App-Funktion aktivieren, wenn der Benutzer ein Produkt kauft. Mit In-App-Käufen sind zahlreiche Anpassungen möglich, die in verschiedenen Szenarien verwendet werden können.

Ich empfehle Ihnen, die In-AppPurchase-API-Übersicht auf MSDN durchzugehen. Es lohnt sich auch, die Optionen zum Testen der In-App-Kauffunktionen in Ihrer App zu prüfen, bevor Sie sie auf dem Marktplatz veröffentlichen. Fühlen Sie sich frei, die Quelldateien des Tutorials als Referenz herunterzuladen.