Wie implementieren Sie In-App-Käufe in Windows 10 Apps?

8

Ich möchte den In-App-Kauf in meine Windows Universal App integrieren. Ich mache folgendes vor der Codierung.

  • Machen Sie die App auf dem Windows-Entwicklungscenter

  • Fügen Sie Produkte mit Details in den IAP-Bereich hinzu und senden Sie sie an den Store, wie Sie in Image

  • Danach verwende ich den folgenden Code in meiner App, um eine Liste der Produkte des In-App-Kaufs zu erhalten und die Schaltfläche, um das Produkt zu kaufen. Ich habe auch CurrentApp anstelle von CurrentAppSimulator in meinem Code verwendet, aber es geht in Ausnahme.
%Vor%

Ich verknüpfe meine App auch mit Store und mein App-Paket ist dasselbe wie in der MS Dev Center App, wie Sie in Image sehen können

Wenn ich meine App starte und auf "Kaufen" klicke, habe ich diese Dialogbox erhalten, wie Sie in Image sehen können, nachdem ich dies nicht getan habe Erhalten Sie Belegdaten von Store.

Wenn ich falsch liege, dann geben Sie mir bitte eine Anleitung, um den In-App-Kauf zu implementieren und den In-App-Kauf auf meinem Laptop-Gerät zu testen.

    
Waleed Amjad 31.08.2015, 09:30
quelle

1 Antwort

2

Ich hatte dieses Problem auch und das Problem lag in der Datei WindowsStoreProxy.xml .

Lösung in Kürze

Standardmäßig ist in WindowsStoreProxy.xml der IsTrial auf "true" gesetzt und in diesem Modus scheinen In-App-Käufe nicht zu funktionieren. Als ich es auf falsch änderte, fing es an, für mich zu arbeiten.

Lösung ein wenig länger

  • Zunächst sprechen wir hier über die Simulation eines In-App-Kaufs in der Entwicklungszeit (mit der Klasse CurrentAppSimulator ). In diesem Fall benötigen Sie eine Datei WindowsStoreProxy.xml . Es ist hier

  • Nun wird das angezeigte Fenster durch die CurrentAppSimulator.RequestProductPurchaseAsync -Zeile geöffnet. Es steuert im Grunde den Rückgabewert einer nativen nativen Methode von Windows Runtime (was für mich sehr merkwürdig ist ... ich denke, es ist nicht beabsichtigt von Microsoft ... etwas anderes sollte dort gemacht werden), aber wenn Sie S_OK zurückgeben, ist das grundsätzlich der Fall wenn der Nutzer den In-App-Kauf bezahlt hat.

  • Wenn es nichts zurück gibt, dann ist mit sehr hoher Wahrscheinlichkeit etwas in WindowsStoreProxy.xml falsch. Ich schlage vor, dass Sie Ihr eigenes WindowsStoreProxy.xml erstellen und es mit der Methode CurrentAppSimulator.ReloadSimulatorAsync wie folgt lesen:

    %Vor%
  • Ich benutze den Standard von C:\Users\<username>\AppData\Local\Packages\<app package folder>\LocalState\Microsoft\Windows Store\ApiData\WindowsStoreProxy.xml hat nicht funktioniert, aber eine einzige Änderung hat das Problem bereits gelöst: Ich habe diesen Teil geändert

    %Vor%

    Dazu:

    %Vor%

    (So wurde IsTrial auf false gesetzt ...)

  • Nun möchte ich an dieser Stelle auch erwähnen, dass dies ein wenig seltsam war, da in der Standardeinstellung WindowsStoreProxy.xml kein Produkt für meinen In-App-Kauf definiert war. Also für meine "RemoveAds" wäre ein richtiger WindowsStoreProxy.xml etwa so:

    %Vor%
  • Ich möchte noch darauf hinweisen, dass der Parameter CurrentAppSimulator.RequestProductPurchaseAsync mit zwei Parametern veraltet ist. Lassen Sie den wahren Parameter aus und Sie erhalten PurchaseResults instance als Ergebnis, das den Beleg in der ReceiptXML -Eigenschaft enthält.

gregkalapos 27.11.2015 13:52
quelle