Vytvoření objednávky pro zákazníka pomocí rozhraní API Partnerského centra
Platí pro: Partnerské centrum | Partnerské centrum provozované společností 21Vianet | Partnerské centrum pro Microsoft Cloud pro státní správu USA
Vytvoření objednávky pro produkty rezervovaných instancí virtuálních počítačů Azure platí jenom pro:
- Partnerské centrum
Informace o tom, co je aktuálně k dispozici k prodeji, najdete v tématu Nabídky partnerů v programu Cloud Solution Provider.
Požadavky
Přihlašovací údaje popsané v ověřování v Partnerském centru Tento scénář podporuje ověřování pomocí samostatných přihlašovacích údajů aplikace i aplikace a uživatele.
ID zákazníka (
customer-tenant-id
). Pokud neznáte ID zákazníka, můžete ho vyhledat v Partnerském centru tak , že vyberete pracovní prostor Zákazníci , pak zákazník ze seznamu zákazníků a pak účet. Na stránce Účet zákazníka vyhledejte ID Microsoftu v části Informace o účtu zákazníka. ID Microsoftu je stejné jako ID zákazníka (customer-tenant-id
).Identifikátor nabídky.
C#
Vytvoření objednávky pro zákazníka:
Vytvořte instanci objektu Order a nastavte vlastnost ReferenceCustomerID na ID zákazníka pro zaznamenání zákazníka.
Vytvořte seznam Objektů OrderLineItem a přiřaďte seznam k vlastnosti LineItems objednávky. Každá položka řádku objednávky obsahuje informace o nákupu pro jednu nabídku. Musíte mít aspoň jednu položku řádku objednávky.
Získejte rozhraní pro řazení operací. Nejprve zavolejte metodu IAggregatePartner.Customers.ById s ID zákazníka k identifikaci zákazníka. Dále načtěte rozhraní z vlastnosti Orders.
Zavolejte metodu Create nebo CreateAsync a předejte objekt Order.
Pokud chcete dokončit ověření identity a zahrnout další prodejce, projděte si následující ukázkové ukázky žádostí a odpovědí:
Příklad požadavku
{
"PartnerOnRecordAttestationAccepted":true,
"lineItems": [
{
"offerId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
"quantity": 1,
"lineItemNumber": 0,
"PartnerIdOnRecord": "873452",
"AdditionalPartnerIdsOnRecord":["4847383","873452"]
}
],
"billingCycle": "monthly"
}
Příklad odpovědi
{
"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);
Ukázka: Konzolová testovací aplikace Projekt: Třída ukázek sady SDK v Partnerském centru: CreateOrder.cs
Požadavek REST
Syntaxe požadavku
metoda | Identifikátor URI žádosti |
---|---|
POST | {baseURL}/v1/customers/{customer-id}/orders HTTP/1.1 |
Parametry identifikátoru URI
Pomocí následujícího parametru cesty identifikujte zákazníka.
Name | Type | Požadováno | Popis |
---|---|---|---|
ID zákazníka | string | Ano | IDENTIFIKÁTOR GUID naformátovaný id zákazníka, které identifikuje zákazníka. |
Záhlaví žádosti
Další informace najdete v tématu Hlavičky REST Partnerského centra.
Text požadavku
Objednávka
Tato tabulka popisuje vlastnosti Pořadí v textu požadavku.
Vlastnost | Typ | Požadováno | Popis |
---|---|---|---|
ID | string | No | Identifikátor objednávky zadaný při úspěšném vytvoření objednávky. |
referenceCustomerId | string | No | Identifikátor zákazníka. |
billingCycle | string | No | Určuje frekvenci, s jakou se partner účtuje za tuto objednávku. Podporované hodnoty jsou názvy členů nalezené v BillingCycleType. Výchozí hodnota je Měsíční nebo OneTime při vytváření objednávky. Toto pole se použije při úspěšném vytvoření objednávky. |
lineItems | array of OrderLineItem resources | Ano | Itemized list of the offers the customer is purchasing including the quantity. |
currencyCode | string | No | Jen pro čtení. Měna použitá při zadávání objednávky. Použito při úspěšném vytvoření objednávky. |
creationDate | datetime | No | Jen pro čtení. Datum vytvoření objednávky ve formátu data a času. Použito při úspěšném vytvoření objednávky. |
stav | string | No | Jen pro čtení. Stav objednávky. Podporované hodnoty jsou názvy členů nalezené v OrderStatus. |
propojení | OrderLinks | No | Prostředek odkazuje na objednávku. |
atributy | ResourceAttributes | No | Atributy metadat odpovídající objednávce. |
PartnerOnRecordAttestationAccepted | Logická hodnota | Ano | Potvrdí dokončení ověření identity. |
OrderLineItem
Tato tabulka popisuje vlastnosti OrderLineItem v textu požadavku.
Poznámka:
PartnerIdOnRecord by měl být poskytnut pouze v případě, že nepřímý poskytovatel umístí objednávku jménem nepřímého prodejce. Používá se k ukládání ID partnera pouze nepřímého prodejce (nikdy ID nepřímého poskytovatele).
Name | Type | Požadováno | Popis |
---|---|---|---|
lineItemNumber | int | Ano | Každá položka řádku v kolekci získá jedinečné číslo řádku, které počítá od 0 do 1. |
offerId | string | Ano | Identifikátor nabídky. Ujistěte se, že dostupnost nabídky odpovídá správnému segmentu. |
subscriptionId | string | No | Identifikátor předplatného. |
parentSubscriptionId | string | No | Nepovinné. ID nadřazeného předplatného v nabídce doplňku Platí jenom pro PATCH. |
friendlyName | string | No | Nepovinné. Popisný název předplatného definovaného partnerem, který pomáhá nejednoznačný. |
množství. | int | Ano | Počet licencí pro předplatné založené na licencích. |
customTermEndDate | DateTime | No | Koncové datum prvního fakturačního období nového předplatného. |
partnerIdOnRecord | string | No | Když nepřímý poskytovatel umístí objednávku jménem nepřímého prodejce, vyplňte toto pole pouze ID partnera nepřímého prodejce (nikdy ID nepřímého poskytovatele). Tím se zajistí řádné účtování pobídek. |
provisioningContext | Řetězec slovníku<, řetězec> | No | Informace potřebné ke zřízení některých položek v katalogu. Vlastnost provisioningVariables v skladové položkách indikuje, které vlastnosti jsou vyžadovány pro konkrétní položky v katalogu. |
propojení | OrderLineItemLinks | No | Jen pro čtení. Zdroj odkazuje na položku řádku Objednávky. |
atributy | ResourceAttributes | No | Atributy metadat odpovídající OrderLineItem. |
prodlužuje platnost | Pole řetězců | No | Pole prostředků RenewsTo |
AttestationAccepted | bool | No | Označuje smlouvu o nabídce nebo podmínkách skladové položky. Vyžaduje se pouze pro nabídky nebo skladové položky, u kterých je SkuAttestationProperties nebo OfferAttestationProperties enforceAttestation true. |
AdditionalPartnerIdsOnRecord | Řetězcové | No | Když nepřímý zprostředkovatel umístí objednávku jménem nepřímého prodejce, vyplňte toto pole pouze ID partnera dalšího nepřímého prodejce (nikdy ID nepřímého poskytovatele). Pobídky se nevztahují na tyto další prodejce. Je možné zadat maximálně 5 nepřímých prodejců. Jedná se pouze o příslušné partnery, kteří provádí transakce v rámci zemí/oblastí EU/ESVO. |
Prodlužuje platnost
Tato tabulka popisuje vlastnosti RenewsTo v textu požadavku.
Vlastnost | Typ | Požadováno | Popis |
---|---|---|---|
termDuration | string | No | Vyjádření doby trvání období prodloužení iso 8601. Aktuální podporované hodnoty jsou P1M (1 měsíc) a P1Y (1 rok). |
Příklad požadavku
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
}
]
}
Odpověď REST
Pokud je metoda úspěšná, vrátí v těle odpovědi prostředek Order .
Pokud objednávka obsahuje jedno nebo více předplatných, zobrazí se v odpovědi REST pouze v případě, že odpovídající předplatná byla zřízena v době volání rozhraní API. Zřizování předplatných probíhá asynchronně, a proto nemusí být hodnoty ID předplatného vždy viditelné v odpovědi REST volání vytvořit objednávku. Po zřízení příslušných předplatných je ale možné k hodnotám ID předplatného přistupovat prostřednictvím volání rozhraní API Get Orders a Get Order by ID.
Kódy úspěšnosti a chyb odpovědi
Každá odpověď obsahuje stavový kód HTTP, který označuje úspěch nebo selhání a další informace o ladění. Ke čtení tohoto kódu, typu chyby a dalších parametrů použijte nástroj pro trasování sítě. Úplný seznam najdete v tématu Kódy chyb v Partnerském centru.
Příklad odpovědi
HTTP/1.1 201 Created
Content-Length: 788
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 025f4c19-217f-49d6-a056-391902c62fb3
Date: Thu, 15 Mar 2018 22:30:02 GMT
{
"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"
}
}