Gewähren kostenloser Produkte
Verwenden Sie diese Methode in der Microsoft Store-Einkaufs-API, um einem bestimmten Benutzer eine kostenlose App oder ein kostenloses Add-On (auch als In-App-Produkt oder IAP bezeichnet) zu gewähren.
Derzeit können Sie nur kostenlose Produkte gewähren. Wenn Ihr Dienst versucht, diese Methode zu verwenden, um ein produkt zu gewähren, das nicht kostenlos ist, gibt diese Methode einen Fehler zurück.
Voraussetzungen
Um diese Methode zu verwenden, benötigen Sie Folgendes:
- Ein Azure AD-Zugriffstoken mit dem Zielgruppen-URI-Wert
https://onestore.microsoft.com
. - Ein Microsoft Store-ID-Schlüssel, der die Identität des Benutzers darstellt, für den Sie ein kostenloses Produkt gewähren möchten.
Weitere Informationen finden Sie unter Verwalten von Produktberechtigungen aus einem Dienst.
Anfordern
Anforderungssyntax
Methode | Anforderungs-URI |
---|---|
POST | https://purchase.mp.microsoft.com/v6.0/purchases/grant |
Anforderungsheader
Header | Typ | Beschreibung |
---|---|---|
Autorisierung | Zeichenfolge | Erforderlich. Das Azure AD-Zugriffstoken im Formular Bearer<-Token>. |
Host | Zeichenfolge | Muss auf den Wert purchase.mp.microsoft.com festgelegt werden. |
Inhaltslänge | Zahl | Die Länge des Anforderungstexts. |
Content-Type | Zeichenfolge | Gibt den Anforderungs- und Antworttyp an. Derzeit ist der einzige unterstützte Wert "application/json". |
Anforderungstext
Parameter | Typ | Beschreibung | Erforderlich |
---|---|---|---|
availabilityId | Zeichenfolge | Die Verfügbarkeits-ID des Produkts, das aus dem Microsoft Store-Katalog gewährt werden soll. | Ja |
b2bKey | Zeichenfolge | Der Microsoft Store-ID-Schlüssel , der die Identität des Benutzers darstellt, für den Sie ein Produkt gewähren möchten. | Ja |
devOfferId | Zeichenfolge | Eine vom Entwickler angegebene Angebots-ID, die nach dem Kauf im Sammlungselement angezeigt wird. | |
language | Zeichenfolge | Die Sprache des Benutzers. | Ja |
Markt | Zeichenfolge | Der Markt des Benutzers. | Ja |
orderId | guid | Eine FÜR die Bestellung generierte GUID. Dieser Wert ist für den Benutzer eindeutig, muss jedoch nicht für alle Bestellungen eindeutig sein. | Ja |
productId | Zeichenfolge | Die Store-ID für das Produkt im Microsoft Store-Katalog. Eine Beispiel-Store-ID für ein Produkt ist 9NBLGGH42CFD. | Ja |
Menge | int | Die zu kaufende Menge. Derzeit ist der einzige unterstützte Wert 1. Wenn nichts angegeben ist, wird der Standardwert 1 verwendet. | No |
skuId | Zeichenfolge | Die Store-ID für die SKU des Produkts im Microsoft Store-Katalog. Eine Beispielspeicher-ID für eine SKU ist 0010. | Ja |
Anforderungsbeispiel
POST https://purchase.mp.microsoft.com/v6.0/purchases/grant HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJK……
Content-Length: 1863
Content-Type: application/json
{
"b2bKey" : "eyJ0eXAiOiJK……",
"availabilityId" : "9RT7C09D5J3W",
"productId" : "9NBLGGH5WVP6",
"skuId" : "0010",
"language" : "en-us",
"market" : "us",
"orderId" : "3eea1529-611e-4aee-915c-345494e4ee76",
}
Antwort
Antworttext
Parameter | Typ | Beschreibung | Erforderlich |
---|---|---|---|
clientContext | ClientContextV6 | Kontextinformationen des Kunden für diese Bestellung. Dies wird dem ClientID-Wert aus dem Azure AD-Token zugewiesen. | Ja |
createdtime | datetimeoffset | Der Zeitpunkt, zu dem die Bestellung erstellt wurde. | Ja |
currencyCode | Zeichenfolge | Währungscode für totalAmount und totalTaxAmount. N/A für kostenlose Artikel. | Ja |
friendlyName | Zeichenfolge | Der Anzeigename für die Bestellung. N/A für Bestellungen, die mit der Microsoft Store-Einkaufs-API getätigt wurden. | Ja |
isPIRequired | boolean | Gibt an, ob ein Zahlungsmittel (PI) als Teil der Bestellung erforderlich ist. | Ja |
language | Zeichenfolge | Die Sprach-ID für die Bestellung (z. B. "en"). | Ja |
Markt | Zeichenfolge | Die Markt-ID für den Auftrag (z. B. "US"). | Ja |
orderId | Zeichenfolge | Eine ID, die die Reihenfolge für einen bestimmten Benutzer identifiziert. | Ja |
orderLineItems | OrderLineItemV6 auflisten<> | Die Liste der Positionen für die Bestellung. In der Regel gibt es 1 Position pro Bestellung. | Ja |
orderState | Zeichenfolge | Der Status der Bestellung. Die gültigen Status sind "Editing", "CheckingOut", "Pending", "Purchased", "Refunded", "ChargedBack" und "Cancelled". | Ja |
orderValidityEndTime | Zeichenfolge | Das letzte Mal, wenn die Auftragspreise gültig sind, bevor sie übermittelt wird. N/A für kostenlose Apps. | Ja |
orderValidityStartTime | Zeichenfolge | Das erste Mal, wenn die Auftragspreise gültig sind, bevor sie übermittelt wird. N/A für kostenlose Apps. | Ja |
Käufer | IdentityV6 | Ein Objekt, das die Identität des Käufers beschreibt. | Ja |
totalAmount | decimal | Der Gesamtkaufbetrag aller Artikel in der Bestellung einschließlich Steuern. | Ja |
totalAmountBeforeTax | Decimal | Gesamtkaufbetrag aller Artikel in der Bestellung vor Steuern. | Ja |
totalChargedToCsvTopOffPI | Decimal | Wenn Sie ein separates Zahlungsmittel und einen gespeicherten Wert (CSV) verwenden, wird der betrag für CSV berechnet. | Ja |
totalTaxAmount | Decimal | Der Gesamtbetrag der Steuern für alle Positionen. | Ja |
Das ClientContext-Objekt enthält die folgenden Parameter.
Parameter | Typ | Beschreibung | Erforderlich |
---|---|---|---|
client | Zeichenfolge | Die Client-ID, die die Bestellung erstellt hat. | No |
Das OrderLineItemV6 -Objekt enthält die folgenden Parameter.
Parameter | Typ | Beschreibung | Erforderlich |
---|---|---|---|
Agent | IdentityV6 | Der Agent, der die Position zuletzt bearbeitet hat. Weitere Informationen zu diesem Objekt finden Sie in der folgenden Tabelle. | No |
availabilityId | Zeichenfolge | Die Verfügbarkeits-ID des Produkts, das im Microsoft Store-Katalog erworben werden soll. | Ja |
Begünstigter | IdentityV6 | Die Identität des Begünstigten des Auftrags. | No |
billingState | Zeichenfolge | Der Abrechnungsstatus der Bestellung. Dies ist auf "Belastet " festgelegt, wenn der Vorgang abgeschlossen ist. | No |
campaignId | Zeichenfolge | Die Kampagnen-ID für diese Bestellung. | No |
currencyCode | Zeichenfolge | Der Währungscode, der für Preisdetails verwendet wird. | Ja |
description | string | Eine lokalisierte Beschreibung des Zeilenelements. | Ja |
devofferId | Zeichenfolge | Die Angebots-ID für die jeweilige Bestellung, sofern vorhanden. | No |
fulfillmentDate | datetimeoffset | Das Datum, an dem die Erfüllung aufgetreten ist. | No |
fulfillmentState | Zeichenfolge | Der Zustand der Erfüllung dieses Artikels. Dies ist auf "Erfüllt " festgelegt, wenn sie abgeschlossen ist. | No |
isPIRequired | boolean | Gibt an, ob für diese Position ein Zahlungsmittel erforderlich ist. | Ja |
isTaxIncluded | boolean | Gibt an, ob die Steuern in den Preisdetails des Artikels enthalten sind. | Ja |
legacyBillingOrderId | Zeichenfolge | Die ältere Abrechnungs-ID. | No |
lineItemId | Zeichenfolge | Die Zeilenelement-ID für den Artikel in dieser Reihenfolge. | Ja |
listPrice | Decimal | Der Listenpreis des Artikels in dieser Reihenfolge. | Ja |
productId | Zeichenfolge | Die Store-ID für das Produkt , das die Position im Microsoft Store-Katalog darstellt. Eine Beispiel-Store-ID für ein Produkt ist 9NBLGGH42CFD. | Ja |
productType | Zeichenfolge | Der Typ des Produkts. Die unterstützten Werte sind "Durable", "Application" und "UnmanagedConsumable". | Ja |
Menge | int | Die Menge des bestellten Artikels. | Ja |
Einzelhandelspreis | Decimal | Der Verkaufspreis des bestellten Artikels. | Ja |
revenueRecognitionState | Zeichenfolge | Der Status der Einnahmenerkennung. | Ja |
skuId | Zeichenfolge | Die Store-ID für die SKU des Zeilenelements im Microsoft Store-Katalog. Eine Beispielspeicher-ID für eine SKU ist 0010. | Ja |
taxAmount | Decimal | Der Steuerbetrag für die Position. | Ja |
taxType | Zeichenfolge | Der Steuertyp für die anwendbaren Steuern. | Ja |
Titel | Zeichenfolge | Der lokalisierte Titel des Zeilenelements. | Ja |
totalAmount | decimal | Der Gesamtbetrag des Einkaufsbetrags der Position einschließlich Steuern. | Ja |
Das IdentityV6 -Objekt enthält die folgenden Parameter.
Parameter | Typ | Beschreibung | Erforderlich |
---|---|---|---|
identityType | Zeichenfolge | Enthält den Wert "pub". | Ja |
identityValue | Zeichenfolge | Der Zeichenfolgenwert der publisherUserId aus dem angegebenen Microsoft Store-ID-Schlüssel. | Ja |
Beispielantwort
Content-Length: 1203
Content-Type: application/json
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: c1bc832c-f742-47e4-a76c-cf061402f698
MS-CV: XjfuNWLQlEuxj6Mt.8
MS-ServerId: 030032362
Date: Tue, 13 Oct 2015 21:21:51 GMT
{
"clientContext": {
"client": "86b78998-d05a-487b-b380-6c738f6553ea"
},
"createdTime": "2015-10-13T21:21:51.1863494+00:00",
"currencyCode": "USD",
"isPIRequired": false,
"language": "en-us",
"market": "us",
"orderId": "3eea1529-611e-4aee-915c-345494e4ee76",
"orderLineItems": [{
"availabilityId": "9RT7C09D5J3W",
"beneficiary": {
"identityType": "pub",
"identityValue": "user1"
},
"billingState": "Charged",
"currencyCode": "USD",
"description": "Jewels, Jewels, Jewels - Consumable 2",
"fulfillmentDate": "2015-10-13T21:21:51.639478+00:00",
"fulfillmentState": "Fulfilled",
"isPIRequired": false,
"isTaxIncluded": true,
"lineItemId": "2814d758-3ee3-46b3-9671-4fb3bdae9ffe",
"listPrice": 0.0,
"payments": [],
"productId": "9NBLGGH5WVP6",
"productType": "UnmanagedConsumable",
"quantity": 1,
"retailPrice": 0.0,
"revenueRecognitionState": "None",
"skuId": "0010",
"taxAmount": 0.0,
"taxType": "NoApplicableTaxes",
"title": "Jewels, Jewels, Jewels - Consumable 2",
"totalAmount": 0.0
}],
"orderState": "Purchased",
"orderValidityEndTime": "2015-10-14T21:21:51.1863494+00:00",
"orderValidityStartTime": "2015-10-13T21:21:51.1863494+00:00",
"purchaser": {
"identityType": "pub",
"identityValue": "user1"
},
"testScenarios": "None",
"totalAmount": 0.0,
"totalTaxAmount": 0.0
}
Fehlercodes
Code | Fehler | Interner Fehlercode | Beschreibung |
---|---|---|---|
401 | Nicht autorisiert | AuthenticationTokenInvalid | Das Azure AD-Zugriffstoken ist ungültig. In einigen Fällen enthalten die Details des ServiceError weitere Informationen, z. B. wenn das Token abgelaufen ist oder der Appid-Anspruch fehlt. |
401 | Nicht autorisiert | PartnerAadTicketRequired | Ein Azure AD-Zugriffstoken wurde im Autorisierungsheader nicht an den Dienst übergeben. |
401 | Nicht autorisiert | InkonsistenteClientId | Der ClientId-Anspruch im Microsoft Store-ID-Schlüssel im Anforderungstext und der Appid-Anspruch im Azure AD-Zugriffstoken im Autorisierungsheader stimmen nicht überein. |
400 | BadRequest | InvalidParameter | Die Details enthalten Informationen zum Anforderungstext und zu den Feldern mit einem ungültigen Wert. |