Bereitstellen von In-App-Käufen mit der Digital Goods-API
Wenn Ihre progressive Web-App (PWA) im Microsoft Store aufgeführt ist, können Sie In-App-Produkte und Abonnements mithilfe der Digital Goods-API und der Zahlungsanforderungs-API bereitstellen.
Digital Goods API
Die Digital Goods-API ist eine Schnittstelle zwischen Ihrer PWA-App und dem Microsoft Store. Die Digital Goods-API unterstützt:
- Abfragen der Details eines digitalen Elements aus dem Microsoft Store-Back-End, z. B. Name, Beschreibung und regionaler Preis des Elements.
- Nutzung oder Bestätigung von Käufen.
- Überprüfen der digitalen Elemente, die sich derzeit im Besitz des Benutzers befinden.
- Überprüfen des Kaufverlaufs des Benutzers.
Siehe:
Zahlungsanforderungs-API
Die Zahlungsanforderungs-API verarbeitet die tatsächliche Zahlungstransaktion, wenn ein Kauf von einem Benutzer getätigt wird. Die Zahlungsanforderungs-API verwendet die Artikeldetails, die die API für digitale Waren bereitstellt, um den In-App-Kauf mit der Abrechnungsmethode zu tätigen, die der Benutzer im Microsoft Store eingerichtet hat.
Siehe:
- Zahlungsanforderungs-API bei MDN.
Aktivieren der API für digitale Güter
Die Digital Goods-API ist derzeit für Tests in Microsoft Edge verfügbar. Verwenden Sie eine der folgenden Methoden, um die API zu testen:
- So testen Sie Ihren Code lokal: Verwenden Sie einen unterstützten Vorschaukanal von Microsoft Edge auf Ihrem Entwicklungscomputer.
- Um Ihren Code in Ihrer Microsoft Store-PWA zu testen: Registrieren Sie sich für die Ursprungstestphase, und verwenden Sie dann Ihr Token auf Ihrer Website.
Details finden Sie unten.
Verwenden eines unterstützten Vorschaukanals von Microsoft Edge auf Ihrem Entwicklungscomputer
Führen Sie Edge Dev oder Edge Canary aus, um die Digital Goods-API lokal zu testen, bevor Sie Ihre App in der Produktion bereitstellen. Für diese Vorschauversionen von Edge ist die API im Rahmen eines ausgeführten Experiments aktiviert.
Informationen zum Herunterladen eines Vorschaukanals (Insider) von Microsoft Edge finden Sie unter Werden eines Microsoft Edge-Insiders.
Registrieren Sie sich für die Ursprungstestphase, und verwenden Sie dann Ihr Token auf Ihrer Website.
Verwenden Sie zum Testen der Digital Goods-API in der Produktion mit Ihren Benutzern ein Ursprungstesttoken. Bei diesem Ansatz ist die API aktiviert, wenn Ihre Benutzer Ihre PWA aus dem Microsoft Store herunterladen.
Siehe:
- Verwenden von Ursprungstests in Microsoft Edge
- Digitale Güter-API bei Ursprungsversuchen.
Überprüfen, ob die API für digitale Güter verfügbar ist
Um zu ermitteln, ob Sie die API auf Ihrer Website ordnungsgemäß aktiviert haben, indem Sie Ihr Ursprungstesttoken verwenden, überprüfen Sie, ob die getDigitalGoodsService
-Methode für das window
-Objekt vorhanden ist:
if ('getDigitalGoodsService' in window) {
// The Digital Goods API is supported.
} else {
console.log('DigitalGoodsService is not available.');
// Use another payment method.
}
Siehe auch:
-
getDigitalGoodsService()-Methode der
Window
Schnittstelle.
Herstellen einer Verbindung mit dem Microsoft Store-Abrechnungsdienst (window.getDigitalGoodsService
-Methode)
Verwenden Sie die getDigitalGoodsService
-Methode des window
-Objekts, um eine Verbindung mit dem Microsoft Store-Abrechnungsdienst herzustellen. Eine DigitalGoodsService-Schnittstelle wird zurückgegeben.
Die Digital Goods-API wurde so konzipiert, dass sie mit verschiedenen Browsern und digitalen Stores kompatibel ist, ähnlich wie die Zahlungsanforderungs-API browserunabhängig ist und mit verschiedenen Zahlungsanbietern verwendet werden kann. Um eine instance des Diensts für die Microsoft Store-Abrechnung abzurufen, übergeben Sie die Zeichenfolge "https://store.microsoft.com/billing"
als Zahlungsmethode an die getDigitalGoodsService
-Methode.
Wenn die Methode einen Fehler auslöst, ist die Zahlungsmethode Microsoft Store-Abrechnung nicht verfügbar (z. B. wenn der Benutzer über den Browser auf Ihre PWA zugreift). Alternativ können Sie eine andere Zahlungsmethode für Transaktionen angeben.
if (window.getDigitalGoodsService === undefined) {
// The Digital Goods API isn't supported in this context.
return;
}
try {
const digitalGoodsService = await window.getDigitalGoodsService("https://store.microsoft.com/billing");
// Use the service here.
...
} catch (error) {
// The preferred service provider is not available.
// Use a web-based payment flow instead.
return;
}
Diese Zahlungsmethode getDigitalGoodsService("https://store.microsoft.com/billing")
ist nur für eine PWA verfügbar, die aus dem Microsoft Store unter Windows installiert ist. Es sind keine weiteren Einstellungen erforderlich.
Siehe auch:
-
getDigitalGoodsService()-Methode der
Window
Schnittstelle. - DigitalGoodsService-Schnittstelle
Abfragen von Elementdetails (getDetails
-Methode)
Verwenden Sie die getDetails
-Methode der DigitalGoodsService
-Schnittstelle, um Elementdetails abzufragen.
Nachdem Sie den Dienst für digitale Waren mit dem Microsoft Store verbunden haben, können Sie die API verwenden, um auf Produkt- und Kaufinformationen zuzugreifen. Mit getDetails
der -Methode können Sie Informationen zu den Elementen abrufen, die Sie im Partner Center eingerichtet haben. Zeigen Sie Informationen wie den Produkttitel, die Beschreibung und den Preis auf der Benutzeroberfläche Ihrer App an, damit der Benutzer weiß, was zum Kauf verfügbar ist.
Die getDetails
-Methode akzeptiert eine Liste von Element-IDs, die den Produkt-IDs der In-App-Produkte und -Abonnements entsprechen, die Sie im Partner Center erstellt haben.
const itemDetails = await digitalGoodsService.getDetails(['shiny_sword', 'gem', 'monthly_subscription']);
for (item of itemDetails) {
const priceStr = new Intl.NumberFormat(
locale,
{style: 'currency', currency: item.price.currency}
).format(item.price.value);
// Do something with the item's data, such as displaying it in the PWA's UI.
displayProductItem(item.itemId, item.title, priceStr, item.description);
}
Die zurückgegebene itemDetails
Sequenz kann in beliebiger Reihenfolge vorliegen und enthält möglicherweise kein Element, wenn das Element auf dem Server nicht vorhanden ist (d. a. wenn es keine 1:1-Entsprechung zwischen der Eingabeliste und der Ausgabeliste gibt).
Die Element-ID ist eine Zeichenfolge, die den Primärschlüssel der Elemente darstellt. Im Microsoft Store lautet InAppOfferToken
die Element-ID . Es gibt keine Funktion zum Abrufen einer Liste von Element-IDs. Element-IDs sollten im Clientcode hartcodiert oder von Ihrem eigenen Server (dem Server des Entwicklers) abgerufen werden.
Die des price
Elements ist ein , PaymentCurrencyAmount
das den aktuellen Preis des Elements in der aktuellen Region und Währung des Benutzers enthält. Das price
ist so konzipiert, dass es für das aktuelle Gebietsschema des Benutzers mithilfe von Intl.NumberFormat
formatiert wird, wie oben gezeigt.
Siehe auch
Api-Spezifikation für digitale Güter
Windows App Entwicklung:
W3C:
MDN:
Kauf eines Artikels (PaymentRequest
Konstruktor und show
Methode)
Nachdem Ihre Produkte und Details dem Benutzer angezeigt wurden, implementieren Sie den Einkaufsflow mithilfe der Zahlungsanforderungs-API. Um einen Artikel zu kaufen, erstellen Sie zunächst eine Anforderung, die die Artikeldetails enthält, mithilfe des PaymentRequest
Konstruktors, und verwenden Sie dann die show
-Methode des PaymentRequest
-Objekts, um den Zahlungsfluss zu starten.
In Kombination mit der Digital Goods-API ist methodData
der einzige erforderliche Eingabeparameter für den PaymentRequest
Konstruktor. Im Parameter des Konstruktors:
- Geben Sie im
supportedMethods
Mitglied microsoft Store-Abrechnung als Zahlungsmethode als Zeichenfolge'https://store.microsoft.com/billing'
an. - Übergeben Sie im
data
-Member denitemId
alssku
.
const details = await digitalGoodsService.getDetails(['monthly_subscription']);
const item = details[0];
const request = new PaymentRequest([
{
supportedMethods: 'https://store.microsoft.com/billing',
data: { sku: item.itemId }
}
]);
Rufen Sie dann die show
-Methode des PaymentRequest
-Objekts auf, um den Zahlungsfluss zu starten:
const response = await request.show();
Dadurch wird dem Benutzer die Benutzeroberfläche store purchase angezeigt, auf der der Benutzer Details zu dem Produkt anzeigen kann, das er kaufen möchte. Während dieses Vorgangs wird die aktuelle Browsersitzung vorübergehend deaktiviert, bis der Kaufflow abgeschlossen ist. Der Benutzer kann die Transaktion entweder abbrechen oder mit der Zahlung fortfahren:
Wenn der Benutzer die Zahlung storniert, wird die von der
show
Methode zurückgegebene Zusage mit einem Fehler abgelehnt.Wenn der Benutzer erfolgreich bezahlt und den Kauf abschließt, wird die Zusage mit einem
PaymentResponse
aufgelöst. In derdetails
-Eigenschaft der Zahlungsantwort wird ein Kauftoken zurückgegeben.
Siehe auch:
Verwenden eines Kaufs (consume
-Methode)
Verwenden Sie die consume
-Methode der DigitalGoodsService
-Schnittstelle, um einen Kauf zu nutzen.
Ein Konsumkauf ist ein Kauf, der mehrmals erworben werden soll. Ein Konsumkauf muss in der Regel als "verbraucht" gekennzeichnet werden, bevor der Kauf vom Benutzer erneut erworben werden kann. Ein Beispiel für einen konsumierbaren Kauf ist ein In-Game-Powerup, das den Spieler für einen kurzen Zeitraum stärker macht.
Um einen Kauf als "verbraucht" zu kennzeichnen, verwenden Sie die - consume
Methode:
digitalGoodsService.consume(purchaseToken);
Siehe auch:
-
consume()-Methode der
DigitalGoodsService
Schnittstelle.
Überprüfen vorhandener Käufe (listPurchases
-Methode)
Verwenden Sie die listPurchases
-Methode der DigitalGoodsService
-Schnittstelle, um vorhandene Käufe zu überprüfen. Diese Methode gibt Informationen zu den vorhandenen Käufen des Benutzers zurück. Diese Methode ermöglicht es einem Client, eine Liste von Elementen abzurufen, die sich derzeit im Besitz des Benutzers befinden oder die der Benutzer gekauft hat. Dies kann erforderlich sein, um eine der folgenden Aktionen auszuführen:
Überprüfen Sie, ob Berechtigungen vorhanden sind, z. B. ob ein Abonnement, Werbecode oder ein permanentes Upgrade aktiv ist.
Wiederherstellung nach Netzwerkunterbrechungen während eines Kaufs, z. B. wenn der Artikel gekauft, aber noch nicht bestätigt wurde.
Die listPurchases
-Methode gibt Element-IDs und Kauftoken zurück. Bevor Sie eine Berechtigung erteilen, sollten Sie die zurückgegebene Artikel-ID oder das zurückgegebene Kauftoken mithilfe einer direkten Entwickler-zu-Anbieter-API überprüfen, wie unten gezeigt:
const purchaseList = await digitalGoodsService.listPurchases();
for (const purchase of purchaseList) {
// Handle the purchase data in your PWA.
verifyAndGrantEntitlement(purchase.itemId, purchase.purchaseToken);
}
Die listPurchases
-Methode gibt keine verbrauchten Produkte oder abgelaufenen Abonnements zurück.
Siehe auch:
-
listPurchases()-Methode der
DigitalGoodsService
-Schnittstelle.
Abrufen des Kaufverlaufs (listPurchaseHistory
-Methode)
Verwenden Sie die listPurchaseHistory
-Methode der DigitalGoodsService
-Schnittstelle, um den Kaufverlauf abzurufen.
Diese Methode gibt eine Liste von PurchaseDetails
zurück, die und itemId
purchaseToken
für jeden Kauf enthält. Die Liste enthält den letzten Kauf, den der Benutzer für jeden Artikel getätigt hat, unabhängig davon, ob der Kauf abgelaufen, storniert oder verbraucht wurde.
const purchaseList = await digitalGoodsService.listPurchaseHistory();
for (const purchase of purchaseList) {
// Handle the expired purchase data in your PWA.
verifyAndCheckExpiredEntitlement(purchase.itemId, purchase.purchaseToken);
}
Siehe auch:
-
listPurchaseHistory()-Methode der
DigitalGoodsService
-Schnittstelle. - PurchaseDetails-Wörterbuch
Siehe auch
Ursprungstests:
- Verwenden von Ursprungstests in Microsoft Edge
- Digitale Güter-API bei Ursprungsversuchen.
GitHub:
MDN:
W3C:
Windows App Entwicklung: