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 je omezeno pouze na:
- Partnerské centrum
Informace o tom, co je aktuálně dostupné 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ě použitelných přihlašovacích údajů aplikace i přihlašovacích údajů kombinace 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 zákaznického účtu vyhledejte ID Microsoft 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 objednávky a nastavte vlastnost ReferenceCustomerID na ID zákazníka pro zaznamenání zákazníka.
Vytvořte seznam OrderLineItem objektů a přiřaďte tento seznam vlastnosti LineItems objednávky. Každá položka objednávky obsahuje informace o nákupu pro jednu nabídku. Musíte mít alespoň jednu položku objednávky.
Získejte rozhraní pro řazení operací. Nejprve zavolejte metodu IAggregatePartner.Customers.ById s ID zákazníka a identifikujte 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ázkové: konzolová testovací aplikace. Projekt: Ukázky SDK pro Partner Center Třída: CreateOrder.cs
Požadavek REST
Syntaxe požadavku
Metoda | Požadavek URI |
---|---|
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.
Jméno | Typ | Požadovaný | Popis |
---|---|---|---|
ID zákazníka | řetězec | Ano | identifikátor ve formátu GUID, který identifikuje zákazníka. |
Hlavičky požadavku
Další informace najdete v Partnerské centrum REST hlavičky.
Text požadavku
Objednávka
Tato tabulka popisuje vlastnosti Order v textu požadavku.
Vlastnost | Typ | Povinný | Popis |
---|---|---|---|
id | řetězec | Ne | Identifikátor objednávky zadaný při úspěšném vytvoření objednávky. |
referenčníIDzákazníka | řetězec | Ne | Identifikátor zákazníka. |
fakturační cyklus | řetězec | Ne | Určuje frekvenci, s jakou se účtuje partnerovi 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 | pole zdrojů OrderLineItem | Ano | Položkový seznam nabídek, které zákazník nakupuje, včetně množství. |
kód měny | řetězec | Ne | 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. |
datum vytvoření | datum a čas | Ne | 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 | řetězec | Ne | Jen pro čtení. Stav objednávky. Podporované hodnoty jsou názvy členů nalezené v OrderStatus. |
odkazy | OrderLinks | Ne | Odkazy zdrojů odpovídající objednávce. |
atributy | atributyZdroje | Ne | Atributy metadat odpovídající objednávce. |
PotvrzeníPartneraZAevidencipřijato | Boolean | Ano | Potvrdí dokončení přisvědčení. |
PoložkaObjednávky
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).
Jméno | Typ | Požadovaný | Popis |
---|---|---|---|
číslo položky | Int | Ano | Každá položka řádku v kolekci získá jedinečné číslo řádku, které počítá od 0 do 1. |
ID nabídky | řetězec | Ano | Identifikátor nabídky. Ujistěte se, že dostupnost nabídky odpovídá správnému segmentu. |
ID předplatného | řetězec | Ne | Identifikátor předplatného. |
ID nadřazeného předplatného | řetězec | Ne | Volitelný. ID nadřazeného předplatného v nabídce doplňku Platí jenom pro PATCH. |
Přátelské jméno | řetězec | Ne | Volitelný. Název předplatného definovaný partnerem, který pomáhá objasnit. |
množství | Int | Ano | Počet licencí pro předplatné založené na licencích. |
customTermEndDate | Datum a čas | Ne | Koncové datum prvního fakturačního období nového předplatného. |
partnerIdOnRecord | řetězec | Ne | Když nepřímý poskytovatel zprostředkovává 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. |
kontext zřizování | String<slovníku, string> | Ne | Informace potřebné k přípravě 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. |
odkazy | OdkazyNaPoložkyObjednávky | Ne | Jen pro čtení. Odkazy na zdroje odpovídající položce řádku objednávky. |
atributy | ResourceAttributes | Ne | Atributy metadat, které odpovídají položce objednávky. |
prodlužuje platnost | Pole objektů | Ne | Pole zdrojů RenewsTo. |
Potvrzení přijato | bool | Ne | Označuje souhlas s podmínkami nabídky nebo SKU. Vyžaduje se pouze pro nabídky nebo skladové položky, u kterých je SkuAttestationProperties nebo OfferAttestationProperties enforceAttestation True. |
DalšíPartnerIdNaZáznamu | Řetězec | Ne | Když nepřímý poskytovatel umístí objednávku jménem nepřímého prodejce, vyplňte toto pole ID partnera Pouze 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. |
Obnovuje se na
Tato tabulka popisuje vlastnosti RenewsTo v textu požadavku.
Vlastnost | Typ | Požadovaný | Popis |
---|---|---|---|
doba trvání | řetězec | Ne | Vyjádření délky trvání období obnovy podle normy 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
Metoda úspěšně vrátí prostředek Order v těle odpovědi.
Pokud objednávka obsahuje jedno nebo více předplatných, příslušné hodnoty ID předplatného se v odpovědi REST zobrazí pouze tehdy, když 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 Partnerském centru kódy chyb.
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"
}
}