Vytvoření objednávky pro zákazníka nepřímého prodejce

Vytvoření objednávky pro zákazníka nepřímého prodejce

Požadavky

  • Přihlašovací údaje popsané v ověřování v Partnerském centru Tento scénář podporuje ověřování pouze s přihlašovacími údaji 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 položky, kterou chcete koupit.

  • Identifikátor tenanta nepřímého prodejce.

C#

Vytvoření objednávky pro zákazníka nepřímého prodejce:

  1. Získejte kolekci nepřímých prodejců, kteří mají vztah s přihlášeným partnerem.

  2. Získejte místní proměnnou k položce v kolekci, která odpovídá ID nepřímého prodejce. Tento krok vám pomůže při vytváření objednávky přistupovat k vlastnosti MpnId prodejce.

  3. Vytvořte instanci objektu Order a nastavte vlastnost ReferenceCustomerID na identifikátor zákazníka, aby bylo možné zaznamenat zákazníka.

  4. 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. Nezapomeňte do každé řádkové položky vyplnit vlastnost PartnerIdOnRecord ID nepřímého prodejce. Musíte mít aspoň jednu položku řádku objednávky.

  5. Získejte rozhraní pro objednání operací voláním metody IAggregatePartner.Customers.ById s ID zákazníka k identifikaci zákazníka a pak načtěte rozhraní z Orders vlastnost.

  6. Zavoláte metodu Create nebo CreateAsync, která vytvoří objednávku.

Příklad jazyka C#

// IAggregatePartner partnerOperations;
// string customerId;
// string offerId;
// string indirectResellerId;

// Get the indirect resellers with a relationship to the signed-in partner.
var indirectResellers = partnerOperations.Relationships.Get(PartnerRelationshipType.IsIndirectCloudSolutionProviderOf);

// Find the matching reseller in the collection.
var selectedIndirectReseller = (indirectResellers != null && indirectResellers.Items.Any()) ?
    indirectResellers.Items.FirstOrDefault(reseller => reseller.Id.Equals(indirectResellerId, StringComparison.OrdinalIgnoreCase)) :
    null;

// Prepare the order and populate the PartnerIdOnRecord with the reseller's Partner Id.
var order = new Order()
{
    ReferenceCustomerId = customerId,
    LineItems = new List<OrderLineItem>()
    {
        new OrderLineItem()
        {
            OfferId = offerId,
            FriendlyName = "New offer purchase.",
            Quantity = 5,
            PartnerIdOnRecord = selectedIndirectReseller != null ? selectedIndirectReseller.MpnId : null
        }
    }
};

// Place the order.
var createdOrder = partnerOperations.Customers.ById(customerId).Orders.Create(order);

Ukázka: Projekt testovací aplikacekonzoly: Třída ukázek sady SDK v Partnerském centru: PlaceOrderForCustomer.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 Formátovaný řetězec GUID, 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.

Name Type Požadováno Popis
ID string No Identifikátor objednávky zadaný při úspěšném vytvoření objednávky.
referenceCustomerId string Ano Identifikátor zákazníka.
billingCycle string No Frekvence, s jakou se partner účtuje za tuto objednávku. Výchozí hodnota je Měsíční a použije se při úspěšném vytvoření objednávky. Podporované hodnoty jsou názvy členů nalezené v BillingCycleType. Poznámka: Funkce roční fakturace ještě není obecně dostupná. Podpora roční fakturace bude brzy k dispozici.
lineItems pole objektů Ano Pole prostředků OrderLineItem.
creationDate string No Datum vytvoření objednávky ve formátu data a času. Použito při úspěšném vytvoření objednávky.
atributy objekt No Obsahuje "ObjectType": "Order"

OrderLineItem

Tato tabulka popisuje vlastnosti OrderLineItem v textu požadavku.

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.
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.
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. Pokud nezadáte ID partnera prodejce, nedojde k selhání objednávky. Prodejce se ale nezaznamená a v důsledku toho nemusí výpočty pobídek zahrnovat prodej.
atributy objekt No Obsahuje "ObjectType":"OrderLineItem".

Příklad požadavku

POST https://api.partnercenter.microsoft.com/v1/customers/c501c3c4-d776-40ef-9ecf-9cefb59442c1/orders HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 02109f46-3ff2-4be4-9f37-b2eb6d58d542
MS-CorrelationId: 85195ae6-3de5-4978-abd4-7be2fbfe4c84
X-Locale: en-US
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 410
Expect: 100-continue

{
    "Id": null,
    "ReferenceCustomerId": "c501c3c4-d776-40ef-9ecf-9cefb59442c1",
    "BillingCycle": "unknown",
    "LineItems": [{
            "LineItemNumber": 0,
            "OfferId": "DB2E705F-B82A-4024-A3D5-D88E12F2DB35",
            "SubscriptionId": null,
            "ParentSubscriptionId": null,
            "FriendlyName": "New offer purchase.",
            "Quantity": 5,
            "PartnerIdOnRecord": "4847383",
            "Attributes": {
                "ObjectType": "OrderLineItem"
            }
        }
    ],
    "CreationDate": null,
    "Attributes": {
        "ObjectType": "Order"
    }
}

Odpověď REST

V případě úspěchu obsahuje tělo odpovědi vyplněný prostředek Order (Objednávka ).

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: 831
Content-Type: application/json; charset=utf-8
MS-CorrelationId: 85195ae6-3de5-4978-abd4-7be2fbfe4c84
MS-RequestId: 02109f46-3ff2-4be4-9f37-b2eb6d58d542
MS-CV: Nd3Oum/L5EywtKQK.0
MS-ServerId: 020021921
Date: Mon, 10 Apr 2017 23:02:24 GMT

{
    "id": "3eddcac6-63b2-4c40-b0b6-f47e18301492",
    "referenceCustomerId": "c501c3c4-d776-40ef-9ecf-9cefb59442c1",
    "billingCycle": "monthly",
    "lineItems": [{
            "lineItemNumber": 0,
            "offerId": "DB2E705F-B82A-4024-A3D5-D88E12F2DB35",
            "subscriptionId": "42226ED6-070A-4E0F-B80C-4CDFB3E97AA7",
            "friendlyName": "New offer purchase.",
            "quantity": 5,
            "partnerIdOnRecord": "4847383",
            "links": {
                "subscription": {
                    "uri": "/customers/c501c3c4-d776-40ef-9ecf-9cefb59442c1/subscriptions/42226ED6-070A-4E0F-B80C-4CDFB3E97AA7",
                    "method": "GET",
                    "headers": []
                }
            }
        }
    ],
    "creationDate": "2017-04-10T16:02:25.983-07:00",
    "links": {
        "self": {
            "uri": "/customers/c501c3c4-d776-40ef-9ecf-9cefb59442c1/orders/3eddcac6-63b2-4c40-b0b6-f47e18301492",
            "method": "GET",
            "headers": []
        }
    },
    "attributes": {
        "etag": "eyJpZCI6IjNlZGRjYWM2LTYzYjItNGM0MC1iMGI2LWY0N2UxODMwMTQ5MiIsInZlcnNpb24iOjF9",
        "objectType": "Order"
    }
}