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.
Gilt für: Partner Center | Partner Center, betrieben von 21Vianet | Partner Center für die Microsoft-Cloud für die US-Regierung
Das Erstellen einer Bestellung für azure reservierte VM-Instanzprodukte gilt nur für:
- Partnerzentrum
Informationen dazu, was derzeit zum Verkauf verfügbar ist, finden Sie unter Partnerangebote im Cloud Solution Provider-Programm.
Voraussetzungen
Anmeldeinformationen wie unter Partner Center-Authentifizierung beschrieben. Dieses Szenario unterstützt die Authentifizierung mit eigenständigen App- und App+Benutzeranmeldeinformationen.
Eine Kunden-ID (
customer-tenant-id). Wenn Sie die KUNDEN-ID nicht kennen, können Sie sie im Partner Center nachschlagen, indem Sie den Arbeitsbereich "Kunden " und dann den Kunden aus der Kundenliste und dann "Konto" auswählen. Suchen Sie auf der Seite "Konto" des Kunden im Abschnitt "Kundenkontoinformationen" nach der Microsoft-ID. Die Microsoft-ID ist identisch mit der Kunden-ID (customer-tenant-id).Ein Angebotsbezeichner.
C#
So erstellen Sie einen Auftrag für einen Kunden:
Instanziieren Sie ein Order-Objekt , und legen Sie die ReferenceCustomerID-Eigenschaft auf die Kunden-ID fest, um den Kunden aufzuzeichnen.
Erstellen Sie eine Liste von OrderLineItem-Objekten , und weisen Sie die Liste der LineItems-Eigenschaft der Bestellung zu. Jede Bestellposition enthält die Kaufinformationen für ein Angebot. Sie müssen über mindestens eine Bestellposition verfügen.
Rufen Sie eine Schnittstelle zum Bestellen von Vorgängen ab. Rufen Sie zunächst die IAggregatePartner.Customers.ById-Methode mit der Kunden-ID auf, um den Kunden zu identifizieren. Rufen Sie als Nächstes die Schnittstelle aus der Orders-Eigenschaft ab.
Rufen Sie die Create - oder CreateAsync-Methode auf, und übergeben Sie das Order-Objekt .
Um den Nachweis abzuschließen und andere Händler einzuschließen, lesen Sie das folgende Beispiel für Anforderungs- und Antwortbeispiele:
Beispielanfrage
{
"PartnerOnRecordAttestationAccepted":true,
"lineItems": [
{
"offerId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
"quantity": 1,
"lineItemNumber": 0,
"PartnerIdOnRecord": "873452",
"AdditionalPartnerIdsOnRecord":["4847383","873452"]
}
],
"billingCycle": "monthly"
}
Antwortbeispiel
{
"id": "5cf72f146967",
"alternateId": "5cf72f146967",
"referenceCustomerId": "f81d98dd-c2f4-499e-a194-5619e260344e",
"billingCycle": "monthly",
"currencyCode": "USD",
"currencySymbol": "$",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"termDuration": "P1M",
"transactionType": "New",
"friendlyName": "AI Builder Capacity add-on",
"quantity": 1,
"partnerIdOnRecord": "873452",
"additionalPartnerIdsOnRecord": [
"4847383",
"873452"
],
"links": {
"product": {
"uri": "/products/CFQ7TTC0LH0Z?country=US",
"method": "GET",
"headers": []
},
"sku": {
"uri": "/products/CFQ7TTC0LH0Z/skus/0001?country=US",
"method": "GET",
"headers": []
},
"availability": {
"uri": "/products/CFQ7TTC0LH0Z/skus/0001/availabilities/CFQ7TTC0K18P?country=US",
"method": "GET",
"headers": []
}
}
}
],
"creationDate": "2021-08-17T18:13:11.3122226Z",
"status": "pending",
"transactionType": "UserPurchase",
"links": {
"self": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/5cf72f146967",
"method": "GET",
"headers": []
},
"provisioningStatus": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/5cf72f146967/provisioningstatus",
"method": "GET",
"headers": []
},
"patchOperation": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/5cf72f146967",
"method": "PATCH",
"headers": []
}
},
"client": {},
"attributes": {
"objectType": "Order"
}
}
IAggregatePartner partnerOperations;
string customerId;
string offerId;
var order = new Order()
{
ReferenceCustomerId = customerId,
LineItems = new List<OrderLineItem>()
{
new OrderLineItem()
{
OfferId = offerId,
FriendlyName = "new offer purchase",
Quantity = 1,
ProvisioningContext = new Dictionary<string, string>
{
{ "subscriptionId", "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f" },
{ "scope", "shared" },
{ "duration", "3Years" }
}
}
}
};
var createdOrder = partnerOperations.Customers.ById(customerId).Orders.Create(order);
Beispiel: Konsolentest-App. Projekt: Partner Center SDK Samples Class: CreateOrder.cs
REST-Anforderung
Anforderungssyntax
| Methode | Anforderungs-URI |
|---|---|
| POST | {baseURL}/v1/customers/{customer-id}/orders HTTP/1.1 |
URI-Parameter
Verwenden Sie den folgenden Pfadparameter, um den Kunden zu identifizieren.
| Name | Typ | Erforderlich | Description |
|---|---|---|---|
| Kunden-ID | Schnur | Yes | Eine guid formatierte Kunden-ID, die den Kunden identifiziert. |
Anforderungsheader
Weitere Informationen finden Sie unter Partner Center REST-Header.
Anfragekörper
Bestellung
In dieser Tabelle werden die Order-Eigenschaften im Anforderungstext beschrieben.
| Eigentum | Typ | Erforderlich | Description |
|---|---|---|---|
| id | Schnur | Nein | Ein Auftragsbezeichner, der bei erfolgreicher Erstellung der Bestellung angegeben wird. |
| referenceCustomerId | Schnur | Nein | Der Kundenbezeichner. |
| billingCycle | Schnur | Nein | Gibt die Häufigkeit an, mit der der Partner für diese Bestellung in Rechnung gestellt wird. Unterstützte Werte sind die Membernamen, die in BillingCycleType gefunden werden. Der Standardwert ist "Monatlich" oder "OneTime" bei der Auftragserstellung. Dieses Feld wird auf erfolgreiche Erstellung der Bestellung angewendet. |
| lineItems | Array von OrderLineItem-Ressourcen | Yes | Eine artikelisierte Liste der Angebote, die der Kunde kauft, einschließlich der Menge. |
| Währungscode | Schnur | Nein | Schreibgeschützt Die Währung, die beim Aufgeben der Bestellung verwendet wird. Angewendet auf erfolgreiche Erstellung der Bestellung. |
| Erstellungsdatum | Datum/Uhrzeit | Nein | Schreibgeschützt Das Datum, an dem die Reihenfolge erstellt wurde, im Datums-/Uhrzeitformat. Angewendet auf erfolgreiche Erstellung der Bestellung. |
| status | Schnur | Nein | Schreibgeschützt Der Status der Bestellung. Unterstützte Werte sind die Membernamen, die in OrderStatus gefunden werden. |
| links | OrderLinks | Nein | Die Ressourcenverknüpfung, die der Bestellung entspricht. |
| attributes | ResourceAttributes | Nein | Die Metadatenattribute, die der Order entsprechen. |
| PartnerOnRecordAttestationAccepted | Boolean | Yes | Bestätigt den Abschluss des Nachweises. |
OrderLineItem
In dieser Tabelle werden die OrderLineItem-Eigenschaften im Anforderungstext beschrieben.
Hinweis
Beim Auschecken eines Warenkorbs über die API werden die Positionen in der Reihenfolge verarbeitet, in der sie in den Warenkorb gelegt werden. Die Bestellung kann sich auf die Berechtigung für Werbeaktionen mit Einschränkungen für New To Offer auswirken, wenn es zwei Produkte desselben Typs im Warenkorb gibt, eine mit der Promotions-ID und die andere ohne (z. B. mit unterschiedlichen Bedingungen). Stellen Sie sicher, dass Sie alle Positionen, die für eine Werbeaktion berechtigt sind, zuerst im Warenkorb platzieren, wenn Sie mehrere Artikel auschecken.
| Name | Typ | Erforderlich | Description |
|---|---|---|---|
| lineItemNumber | INT | Yes | Jedes Zeilenelement in der Auflistung erhält eine eindeutige Zeilennummer, die von 0 bis 1 gezählt wird. |
| offerId | Schnur | Yes | Der Angebotsbezeichner. Stellen Sie sicher, dass die Verfügbarkeit des Angebots für das richtige Segment gilt. |
| subscriptionId | Schnur | Nein | Der Abonnementbezeichner. |
| parentSubscriptionId | Schnur | Nein | Wahlfrei. Die ID des übergeordneten Abonnements in einem Add-On-Angebot. Gilt nur für PATCH. |
| friendlyName | Schnur | Nein | Wahlfrei. Der Anzeigename für das vom Partner definierte Abonnement, um mehrdeutig zu sein. |
| Menge | INT | Yes | Die Anzahl der Lizenzen für ein lizenzbasiertes Abonnement. |
| customTermEndDate | DateTime | Nein | Das Enddatum der ersten Abrechnungsdauer des neuen Abonnements. |
| partnerIdOnRecord | Schnur | Nein | Wenn ein indirekter Anbieter eine Bestellung im Auftrag eines indirekten Vertriebspartners abordnet, füllen Sie dieses Feld nur mit der PartnerID des indirekten Vertriebspartners auf (niemals die ID des indirekten Anbieters). Dies sorgt für eine ordnungsgemäße Erfassung von Anreizen. |
| provisioningContext | Wörterbuchzeichenfolge<, Zeichenfolge> | Nein | Informationen, die für die Bereitstellung einiger Elemente im Katalog erforderlich sind. Die provisioningVariables-Eigenschaft in einer SKU gibt an, welche Eigenschaften für bestimmte Elemente im Katalog erforderlich sind. |
| links | OrderLineItemLinks | Nein | Schreibgeschützt Die Ressourcenverknüpfung, die dem Auftragspositionsartikel entspricht. |
| attributes | ResourceAttributes | Nein | Die Metadatenattribute, die dem OrderLineItem-Objekt entsprechen. |
| renewsTo | Array mit Objekten | Nein | Ein Array von RenewsTo-Ressourcen . |
| AttestationAccepted | Boolesch | Nein | Gibt die Vereinbarung zum Anbieten oder SKU-Bedingungen an. Nur für Angebote oder Skus erforderlich, bei denen SkuAttestationProperties oder OfferAttestationProperties enforceAttestation True ist. |
| AdditionalPartnerIdsOnRecord | String | Nein | Wenn ein indirekter Anbieter eine Bestellung im Auftrag eines indirekten Vertriebspartners abordnet, füllen Sie dieses Feld nur mit der PartnerID des zusätzlichen indirekten Vertriebspartners auf (niemals die ID des indirekten Anbieters). Anreize gelten nicht für diese anderen Wiederverkäufer. Es können nur maximal fünf indirekte Wiederverkäufer eingegeben werden. Dieser Wert gilt nur für Partner, die innerhalb europäischen Ländern/Regionen transagieren. |
| scheduledNextTermInstructions | Objekt | Nein | Definiert die nächsten Laufzeitanweisungen für ein Testabonnement. Partner können die Laufzeit, die Abrechnungshäufigkeit und die Menge angeben, die das entsprechende kostenpflichtige Abonnement bei der Verlängerung hat. |
Hinweis
PartnerIdOnRecord sollte nur bereitgestellt werden, wenn ein indirekter Anbieter im Auftrag eines indirekten Wiederverkäufers eine Bestellung abordnet. Es wird verwendet, um die PartnerID des indirekten Händlers nur zu speichern (niemals die ID des indirekten Anbieters).
RenewsTo
In dieser Tabelle werden die RenewsTo-Eigenschaften im Anforderungstext für Microsoft Marketplace-Angebote beschrieben.
| Eigentum | Typ | Erforderlich | Description |
|---|---|---|---|
| termDuration | Schnur | Nein | Eine ISO 8601-Darstellung der Dauer der Verlängerung. Die aktuellen unterstützten Werte sind P1M (1 Monat) und P1Y (1 Jahr). |
ScheduledNextTermInstructions
In dieser Tabelle werden die Eigenschaften der Anweisung scheduledNextTermInstructions im Anforderungstext für lizenzbasierte Testangebote in der neuen Commerce-Erfahrung (NCE) beschrieben. Wenn keine Werte angegeben sind, werden Testversionen zu kostenpflichtigen Abonnements mit einer jährlichen Laufzeit, einer monatlichen Rechnungsstellung und 25 Lizenzen pro Jahr.
| Eigentum | Typ | Erforderlich | Description |
|---|---|---|---|
| Produkt | Array | Nein | Ein Array, das das Angebot angibt, in dem ein Testabonnement verlängert wird, sowie die Laufzeit und Abrechnungshäufigkeit, über die das kostenpflichtige Abonnement verfügt. |
| Menge | INT | Nein | Die Lizenzmenge, über die das entsprechende kostenpflichtige Abonnement verfügt, sobald das Testangebot verlängert wird. |
Produkt
In dieser Tabelle werden die productTerm-Eigenschaften im Anforderungstext für lizenzbasierte Testangebote auf NCE-Basis beschrieben. Wenn in diesem Array keine Werte angegeben sind, verlängern sich Testversionen in kostenpflichtige Abonnements mit jährlicher Laufzeit, monatlicher Abrechnung.
| Eigentum | Typ | Erforderlich | Description |
|---|---|---|---|
| Produkt-ID | Schnur | Nein | Eine GUID, die so formatiert ist, dass sie das Produkt des kostenpflichtigen Abonnements darstellt, in das die Testversion verlängert wird. |
| skuId | Schnur | Nein | Eine GUID, die so formatiert ist, dass sie die SKU des kostenpflichtigen Abonnements darstellt, in das die Testversion übergeht. |
| availabilityId | Schnur | Nein | Eine GUID, die formatiert ist, um die Verfügbarkeit des kostenpflichtigen Abonnements darzustellen, in das die Testversion verlängert wird. |
| billingCycle | Schnur | Nein | Die Abrechnungshäufigkeit, über die das entsprechende kostenpflichtige Abonnement verfügt, sobald das Testangebot verlängert wird. |
| termDuration | Schnur | Nein | Die Laufzeit, die das entsprechende kostenpflichtige Abonnement hat, sobald das Testangebot verlängert wird. |
Beispielanfrage
POST https://api.partnercenter.microsoft.com/v1/customers/b0d70a69-4c42-4b27-b17b-91a835d8686a/orders HTTP/1.1
Authorization: Bearer <token>
Host: api.partnercenter.microsoft.com
Content-Length: 691
Content-Type: application/json
{
"BillingCycle": "one_time",
"CurrencyCode": "USD",
"LineItems": [
{
"LineItemNumber": 0,
"ProvisioningContext": {
"subscriptionId": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
"scope": "shared",
"duration": "1Year"
},
"OfferId": "DZH318Z0BQ4B:0047:DZH318Z0DSM8",
"FriendlyName": "A_sample_Azure_RI",
"Quantity": 1
}
]
}
// request example where some renewal values for an NCE license-based trial are specified
http
POST https://api.partnercenter.microsoft.com/v1/customers/b0d70a69-4c42-4b27-b17b-91a835d8686a/orders HTTP/1.1
Authorization: Bearer <token>
Host: api.partnercenter.microsoft.com
Content-Length: 486
Content-Type: application/json
{
"lineItems": [
{
"id": 0,
"catalogItemId": "CFQ7TTC0LCHC:0003:CFQ7TTC0XCQC",
"quantity": 25,
"currencyCode": "USD",
"billingCycle": "none",
"termDuration": "P1M",
"promotionId": null,
"provisioningContext": {},
"customTermEndDate": null,
"scheduledNextTermInstructions": {
"product": {
"billingCycle": "monthly",
"termDuration": "P1M"
}
}
}
],
"partnerOnRecordAttestationAccepted": true
}
REST-Antwort
Bei erfolgreicher Ausführung gibt die Methode eine Order-Ressource im Antworttext zurück.
Wenn die Bestellung mindestens ein Abonnement enthält, werden die entsprechenden Abonnement-ID-Werte nur in der REST-Antwort angezeigt, wenn die entsprechenden Abonnements zum Zeitpunkt des API-Aufrufs bereitgestellt werden. Bereitstellungsabonnements treten asynchron auf und daher sind die Abonnement-ID-Werte möglicherweise nicht immer in der REST-Antwort des Create Order-Aufrufs sichtbar. Sobald die jeweiligen Abonnements bereitgestellt wurden, kann jedoch über Get Orders und Get Order by ID API-Aufrufe auf ihre Abonnement-ID-Werte zugegriffen werden.
Antworterfolgs- und Fehlercodes
Jede Antwort enthält einen HTTP-Statuscode, der Erfolg oder Fehler und weitere Debuginformationen angibt. Verwenden Sie ein Netzwerkablaufverfolgungstool, um diesen Code, fehlertyp und andere Parameter zu lesen. Die vollständige Liste finden Sie unter Partner Center-Fehlercodes.
Antwortbeispiel
{
"id": "Cs_jyTxubLpvdJXdo8xcQZN6I2RsLrgZ1",
"referenceCustomerId": "b0d70a69-4c42-4b27-b17b-91a835d8686a",
"billingCycle": "one_time",
"currencyCode": "USD",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "84A03D81-6B37-4D66-8D4A-FAEA24541538",
"friendlyName": "A_sample_Azure_RI",
"quantity": 1,
"links": {
"sku": {
"uri": "/products/DZH318Z0BQ4B/skus/0047?country=US",
"method": "GET",
"headers": []
}
}
} ],
"creationDate": "2018-03-15T22:30:02.085152Z",
"status": "pending",
"links": {
"provisioningStatus": {
"uri": "/customers/b0d70a69-4c42-4b27-b17b-91a835d8686a/orders/Cs_jyTxubLpvdJXdo8xcQZN6I2RsLrgZ1/provisioningstatus",
"method": "GET",
"headers": []
},
"self": {
"uri": "/customers/b0d70a69-4c42-4b27-b17b-91a835d8686a/orders/Cs_jyTxubLpvdJXdo8xcQZN6I2RsLrgZ1",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Order"
}
}
// response content for an order containing an NCE license-based trial
{
"id": "99d3777b-61da-4c95-aefa-203c248c4180",
"creationTimestamp": "2025-02-04T22:22:36.7924103Z",
"lastModifiedTimestamp": "2025-02-04T22:22:36.7924109Z",
"expirationTimestamp": "2025-02-11T22:23:34.5190698Z",
"lastModifiedUser": "b5109661-56c5-45ed-9447-f67463458a97",
"status": "Active",
"lineItems": [
{
"id": 0,
"catalogItemId": "CFQ7TTC0LCHC:0003:CFQ7TTC0XCQC",
"quantity": 25,
"currencyCode": "USD",
"billingCycle": "none",
"termDuration": "P1M",
"provisioningContext": {},
"orderGroup": "0",
"pricing": {
"listPrice": 0.0,
"discountedPrice": 0.0,
"proratedPrice": 0.0,
"price": 0.0,
"extendedPrice": 0.0
},
"scheduledNextTermInstructions": {
"product": {
"productId": "CFQ7TTC0LCHC",
"skuId": "0002",
"availabilityId": "CFQ7TTC0XL82",
"billingCycle": "monthly",
"termDuration": "P1M"
},
"quantity": 25
}
}
],
"links": {
"self": {
"uri": "/customers/81e78b53-9aa8-44e7-a041-3b15272d8f84/carts/99d3777b-61da-4c95-aefa-203c248c4180",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Cart"
}
}