Sdílet prostřednictvím


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:

  1. Vytvořte instanci objektu objednávky a nastavte vlastnost ReferenceCustomerID na ID zákazníka pro zaznamenání zákazníka.

  2. 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.

  3. 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.

  4. Zavolejte metodu Create nebo CreateAsync a předejte objekt Order.

  5. 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"
    }
}