Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: Centrum partnerskie | Centrum partnerskie obsługiwane przez firmę 21Vianet | Centrum partnerskie dla chmury firmy Microsoft dla instytucji rządowych USA
Tworzenie zamówienia dla produktów wystąpień zarezerwowanych maszyn wirtualnych platformy Azure ma zastosowanie tylko tylko:
- Centrum partnerskie
Aby uzyskać informacje o tym, co jest obecnie dostępne do sprzedaży, zobacz oferty partnerów w programie Cloud Solution Provider.
Warunki wstępne
Poświadczenia zgodnie z opisem w uwierzytelnianie w Centrum partnerskim. Ten scenariusz obsługuje uwierzytelnianie zarówno przy użyciu autonomicznych poświadczeń aplikacji, jak i aplikacji i użytkownika.
Identyfikator klienta (
customer-tenant-id). Jeśli nie znasz identyfikatora klienta, możesz wyszukać go w centrum partnerskim , wybierając obszar roboczy Klienci, a następnie klient z listy klientów, a następnie konto. Na stronie Konta klienta poszukaj identyfikatora Microsoft w sekcji Informacje o Koncie Klienta. Identyfikator Firmy Microsoft jest taki sam jak identyfikator klienta (customer-tenant-id).Identyfikator oferty.
C#
Aby utworzyć zamówienie dla klienta:
Utwórz wystąpienie obiektu Order i ustaw właściwość ReferenceCustomerID na identyfikator klienta, aby zarejestrować klienta.
Utwórz listę obiektów OrderLineItem i przypisz tę listę do właściwości LineItems zamówienia. Każda pozycja zamówienia zawiera informacje o zakupie dotyczące jednej oferty. Musisz mieć co najmniej jedną pozycję w zamówieniu.
Zdobyć interfejs do zamawiania operacji. Najpierw wywołaj metodę IAggregatePartner.Customers.ById za pomocą identyfikatora klienta, aby zidentyfikować klienta. Następnie pobierz interfejs z właściwości Orders.
Wywołaj metodę Create lub CreateAsync i przekaż obiekt Order.
Aby ukończyć zaświadczenie i dołączyć innych odsprzedawców, zobacz następujące przykładowe przykłady żądań i odpowiedzi:
Przykład żądania
{
"PartnerOnRecordAttestationAccepted":true,
"lineItems": [
{
"offerId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
"quantity": 1,
"lineItemNumber": 0,
"PartnerIdOnRecord": "873452",
"AdditionalPartnerIdsOnRecord":["4847383","873452"]
}
],
"billingCycle": "monthly"
}
Przykład odpowiedzi
{
"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);
Przykładowy: aplikacja testowa konsoli. Projekt: Partner Center SDK Samples Klasa: CreateOrder.cs
Żądanie REST
Składnia żądania
| Metoda | Identyfikator URI żądania |
|---|---|
| POST | {baseURL}/v1/customers/{customer-id}/orders HTTP/1.1 |
Parametry identyfikatora URI
Użyj następującego parametru ścieżki, aby zidentyfikować klienta.
| Nazwa | Typ | Wymagane | Opis |
|---|---|---|---|
| identyfikator klienta | ciąg | Tak | Identyfikator klienta w formacie GUID, który identyfikuje klienta. |
Nagłówki żądań
Aby uzyskać więcej informacji, zobacz Nagłówki REST Centrum Partnerskiego.
Treść żądania
Zamówienie
W tej tabeli opisano właściwości Order w treści żądania.
| Własność | Typ | Wymagane | Opis |
|---|---|---|---|
| id | ciąg | Nie | Identyfikator zamówienia dostarczony po pomyślnym utworzeniu zamówienia. |
| IdentyfikatorKlientaReferencyjnego | ciąg | Nie | Identyfikator klienta. |
| billingCycle | ciąg | Nie | Wskazuje częstotliwość, z jaką partner jest rozliczany za to zamówienie. Obsługiwane wartości to nazwy członków znalezione w BillingCycleType. Wartość domyślna to "Monthly" lub "OneTime" podczas tworzenia zamówienia. To pole jest stosowane po pomyślnym utworzeniu zamówienia. |
| lineItems | tablica zasobów OrderLineItem | Tak | Lista z elementami ofert, które klient kupuje, łącznie z ilością. |
| kod waluty | ciąg | Nie | Tylko do odczytu. Waluta używana podczas składania zamówienia. Zastosowane po pomyślnym utworzeniu zamówienia. |
| creationDate (data utworzenia) | data/godzina | Nie | Tylko do odczytu. Data utworzenia zamówienia w formacie daty i godziny. Zastosowane po pomyślnym utworzeniu zamówienia. |
| stan | ciąg | Nie | Tylko do odczytu. Stan zamówienia. Obsługiwane wartości to nazwy elementów członkowskich znalezione w OrderStatus. |
| Linki | OrderLinks | Nie | Linki zasobów odpowiadające zamówieniu. |
| Atrybuty | ResourceAttributes | Nie | Atrybuty metadanych odpowiadające zamówieniu. |
| PotwierdzenieAkceptacjiPartneraNaRekordzie | logiczny | Tak | Potwierdza ukończenie zaświadczania |
Pozycja Zamówienia
W tej tabeli opisano właściwości OrderLineItem w treści żądania.
Uwaga
Podczas finalizowania zakupu koszyka przez API elementy wiersza są przetwarzane w kolejności, w której są umieszczane w koszyku. Zamówienie może mieć wpływ na uprawnienia do promocji z ograniczeniami New To Offer, jeśli istnieją dwa produkty tego samego typu w koszyku, jeden z identyfikatorem promocyjnym i drugi bez (na przykład z różnymi warunkami). Pamiętaj, aby umieścić wszystkie elementy wiersza kwalifikujące się do promocji najpierw w koszyku, jeśli kupujesz wiele elementów.
| Nazwa | Typ | Wymagane | Opis |
|---|---|---|---|
| numerPozycji | Int | Tak | Każda pozycja w kolekcji otrzymuje unikalny numer wiersza, licząc od 0 do count-1. |
| offerId | ciąg | Tak | Identyfikator oferty. Upewnij się, że dostępność oferty jest odpowiednia dla odpowiedniego segmentu. |
| identyfikator subskrypcji | ciąg | Nie | Identyfikator subskrypcji. |
| nadrzędnyIdentyfikatorSubskrypcji | ciąg | Nie | Fakultatywny. Identyfikator subskrypcji głównej w ofercie dodatkowej. Dotyczy tylko PATCH. |
| przyjazna nazwa | ciąg | Nie | Fakultatywny. Przyjazna nazwa subskrypcji zdefiniowanej przez partnera w celu ułatwienia rozróżnienia. |
| ilość | Int | Tak | Liczba licencji dla subskrypcji opartej na licencji. |
| customTermEndDate | Data i czas | Nie | Data zakończenia pierwszego okresu rozliczeniowego nowej subskrypcji. |
| partnerIdOnRecord | ciąg | Nie | Gdy dostawca pośredni składa zamówienie w imieniu odsprzedawcy pośredniego, wypełnij to pole identyfikatorem PartnerID odsprzedawcy pośredniego tylko (nigdy identyfikator dostawcy pośredniego). Zapewnia to właściwą księgowość zachęt. |
| kontekst konfiguracyjny | Ciąg<słownika, ciąg> | Nie | Informacje wymagane do zapewnienia dostępności niektórych pozycji w katalogu. Właściwość provisioningVariables w jednostce SKU wskazuje, które właściwości są wymagane dla określonych elementów w wykazie. |
| Linki | OrderLineItemLinks | Nie | Tylko do odczytu. Linki zasobów odpowiadające elementowi wiersza zamówienia. |
| Atrybuty | ResourceAttributes | Nie | Atrybuty metadanych odpowiadające OrderLineItem. |
| renewsTo | Tablica obiektów | Nie | Tablica zasobów RenewsTo. |
| ZaświadczeniePrzyjęte | bool | Nie | Wskazuje zgodę na warunki oferty lub jednostki SKU. Wymagane tylko dla ofert lub SKU, gdzie SkuAttestationProperties lub OfferAttestationProperties wymuszają atestację jako True. |
| DodatkoweIdPartnerówWRekordzie | Struna | Nie | Gdy dostawca pośredni składa zamówienie w imieniu odsprzedawcy pośredniego, wypełnij to pole identyfikatorem PartnerID Tylko dodatkowy odsprzedawca pośredni (nigdy identyfikator dostawcy pośredniego). Zachęty nie mają zastosowania dla tych innych odsprzedawców. Można wprowadzić maksymalnie pięć odsprzedawców pośrednich. Ta wartość dotyczy tylko transakcji partnerów w krajach/regionach europejskich. |
| scheduledNextTermInstructions | obiekt | Nie | Definiuje kolejne instrukcje dotyczące subskrypcji próbnej. Partnerzy mogą określić czas trwania, częstotliwość rozliczeń i liczbę, jakie odpowiednia płatna subskrypcja będzie miała podczas odnawiania. |
Uwaga
PartnerIdOnRecord powinien być podany tylko wtedy, gdy dostawca pośredni składa zamówienie w imieniu odsprzedawcy pośredniego. Służy do przechowywania tylko ID Partnera odsprzedawcy pośredniego (nigdy ID dostawcy pośredniego).
RenewsTo
W tej tabeli opisano właściwości RenewsTo w treści żądania ofert witryny Microsoft Marketplace.
| Własność | Typ | Wymagane | Opis |
|---|---|---|---|
| czas trwania | ciąg | Nie | Reprezentacja ISO 8601 okresu trwania odnowienia. Bieżące obsługiwane wartości to P1M (1 miesiąc) i P1Y (1 rok). |
ScheduledNextTermInstructions
W tej tabeli opisano właściwości scheduledNextTermInstructions w treści żądania dla nowych ofert próbnych opartych na licencji w ramach programu New Commerce Experience (NCE). Jeśli nie określono żadnych wartości, wersje próbne są odnawiane w płatnych subskrypcjach z rocznym okresem, miesięcznymi rozliczeniami i 25 licencjami.
| Własność | Typ | Wymagane | Opis |
|---|---|---|---|
| produkt | macierz | Nie | Tablica określająca, w jaką ofertę odnawia się subskrypcja próbna oraz jakie są termin i częstotliwość rozliczeń dla płatnej subskrypcji. |
| ilość | Int | Nie | Ilość licencji, którą odpowiednia płatna subskrypcja ma po odnowieniu oferty próbnej. |
Product
W tej tabeli opisano właściwości productTerm w treści żądania dla ofert wersji próbnej opartej na licencji NCE. Jeśli w tej tablicy nie określono żadnych wartości, wersje próbne są odnawiane na płatne subskrypcje z rocznym okresem i miesięcznymi rozliczeniami.
| Własność | Typ | Wymagane | Opis |
|---|---|---|---|
| ID produktu | ciąg | Nie | Identyfikator GUID sformatowany do reprezentowania produktu płatnej subskrypcji, do którego jest odnawiana wersja próbna. |
| skuId | ciąg | Nie | Identyfikator GUID sformatowany do reprezentowania kodu SKU płatnej subskrypcji, w którą przekształca się wersja próbna. |
| availabilityId | ciąg | Nie | Identyfikator GUID sformatowany w celu reprezentowania dostępności płatnej subskrypcji, na którą odnawia się okres próbny. |
| billingCycle | ciąg | Nie | Częstotliwość rozliczeń dla płatnej subskrypcji po odnowieniu oferty próbnej. |
| czas trwania | ciąg | Nie | Okres trwania, który odpowiada płatnej subskrypcji po odnowieniu oferty próbnej. |
Przykład żądania
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
}
Odpowiedź REST
Jeśli operacja powiedzie się, metoda zwraca zasób Order w treści odpowiedzi.
Jeśli zamówienie zawiera co najmniej jedną subskrypcję, odpowiednie wartości identyfikatorów subskrypcji są wyświetlane tylko w odpowiedzi REST, jeśli odpowiednie subskrypcje są aprowidowane w momencie wywołania interfejsu API. Aprowizowanie subskrypcji odbywa się asynchronicznie, dlatego wartości identyfikatorów subskrypcji mogą nie zawsze być widoczne w odpowiedzi REST wywołania Tworzenie zamówienia. Jednak po aprowizacji odpowiednich subskrypcji można uzyskać dostęp do wartości ich identyfikatorów subskrypcji za pomocą wywołań API: Get Orders i Get Order by ID.
Kody powodzenia i błędów odpowiedzi
Każda odpowiedź zawiera kod stanu HTTP, który wskazuje powodzenie lub niepowodzenie i więcej informacji o debugowaniu. Użyj narzędzia do śledzenia sieci, aby odczytać ten kod, typ błędu i inne parametry. Aby uzyskać pełną listę, zobacz Kody błędów Centrum partnerskiego.
Przykład odpowiedzi
{
"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"
}
}