Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 alle Kanäle in Microsoft Edge verfügbar. Stellen Sie zum Testen der API sicher, dass Ihre Edge-Version oder höher ist 134.0.3124.51 .
Überprüfen, ob die API für digitale Güter verfügbar ist
Um zu ermitteln, ob Sie Zugriff auf die API auf Ihrer Website haben, ü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
WindowSchnittstelle.
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
WindowSchnittstelle. - 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 InAppOfferTokendie 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.NumberFormatformatiert 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 methodDatader einzige erforderliche Eingabeparameter für den PaymentRequest Konstruktor. Im Parameter des Konstruktors:
- Geben Sie im
supportedMethodsMitglied microsoft Store-Abrechnung als Zahlungsmethode als Zeichenfolge'https://store.microsoft.com/billing'an. - Übergeben Sie im
data-Member denitemIdalssku.
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
showMethode zurückgegebene Zusage mit einem Fehler abgelehnt.Wenn der Benutzer erfolgreich bezahlt und den Kauf abschließt, wird die Zusage mit einem
PaymentResponseaufgelö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
DigitalGoodsServiceSchnittstelle.
Ü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 itemIdpurchaseToken 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
GitHub:
MDN:
W3C:
Windows App Entwicklung: