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.

jazyk 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 požadavků 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 Požadovaný 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í datetime 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 logický Ano Potvrdí dokončení přisvědčení.

PoložkaObjednávky

Tato tabulka popisuje vlastnosti OrderLineItem v textu požadavku.

Poznámka

Při rezervaci košíku prostřednictvím rozhraní API se řádkové položky zpracovávají v pořadí, v jakém jsou vloženy do košíku. Pokud jsou v košíku dva produkty stejného typu, jeden s propagačním ID a druhým bez (například s různými podmínkami) může mít tato objednávka vliv na nárok na propagační akce s omezeními nabídky New To Offer. Pokud nakupujete více položek, nezapomeňte nejprve umístit do košíku všechny řádkové položky, které mají nárok na promo akci.

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 je určená pro správný segment.
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 atributyZdroje 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ě pět nepřímých prodejců. Tato hodnota je platná pouze pro partnery, kteří provádí transakce v rámci evropských zemí/oblastí.
scheduledNextTermInstructions objekt Ne Definuje další pokyny pro zkušební předplatné. Partneři můžou zadat délku trvání, frekvenci fakturace a množství, které má odpovídající placené předplatné při prodloužení.

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

Obnovuje se na

Tato tabulka popisuje vlastnosti RenewsTo v textu požadavku pro nabídky Microsoft Marketplace.

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).
ScheduledNextTermInstructions

Tato tabulka popisuje vlastnosti scheduledNextTermInstructions v textu požadavku pro zkušební nabídky zaměřené na licenci v rámci New Commerce Experience (NCE). Pokud nejsou zadány žádné hodnoty, zkušební verze se prodlužují na placená předplatná s ročním obdobím, měsíční fakturací a 25 licencemi.

Vlastnost Typ Požadovaný Popis
výrobek pole Ne Pole, které určuje, do jaké nabídky se zkušební předplatné obnoví, a také období a frekvenci fakturace, které má placené předplatné.
množství Int Ne Počet licencí, které má odpovídající placené předplatné po prodloužení platnosti nabídky zkušební verze.
Product

Tato tabulka popisuje vlastnosti productTerm v textu požadavku pro nabídky zkušební verze založené na licenci NCE. Pokud v tomto poli nejsou zadány žádné hodnoty, zkušební verze se prodlužují na placená předplatná s ročním obdobím a měsíční fakturací.

Vlastnost Typ Požadovaný Popis
produktId řetězec Ne Identifikátor GUID formátovaný tak, aby představoval produkt placeného předplatného, do kterého se zkušební verze prodlouží.
skuId řetězec Ne Identifikátor GUID formátovaný tak, aby představoval skladovou položku placeného předplatného, do kterého se zkušební verze prodlouží.
availabilityId řetězec Ne Identifikátor GUID formátovaný tak, aby představoval dostupnost placeného předplatného, do kterého se zkušební verze prodlouží.
fakturační cyklus řetězec Ne Četnost fakturace, kterou má odpovídající placené předplatné, jakmile se nabídka zkušební verze prodlouží.
doba trvání řetězec Ne Doba trvání odpovídajícího placeného předplatného po prodloužení platnosti nabídky zkušební verze.

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
    }
  ]
}
// 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
}

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, zobrazí se v odpovědi REST pouze hodnoty ID příslušného předplatného, pokud jsou odpovídající předplatná zřízená 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. Jakmile jsou ale příslušná předplatná zřízená, dají se 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ý indikuje ú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

{
  "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"
  }
}