Sdílet prostřednictvím


Nákup doplňku k předplatnému

Platí pro: Partnerské centrum | Partnerské centrum provozované společností 21Vianet | Partnerské centrum pro Microsoft Cloud for US Government

Jak zakoupit doplněk k existujícímu předplatnému.

Požadavky

  • Přihlašovací údaje, jak je popsáno v tématu 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 ID zákazníka neznáte, můžete ho vyhledat v Partnerském centru tak, že vyberete pracovní prostor Zákazníci , pak zákazníka ze seznamu zákazníků a pak Účet. Na stránce Účet zákazníka vyhledejte ID Microsoft v části Informace o účtu zákazníka . ID Microsoftu je stejné jako ID zákazníka (customer-tenant-id).

  • ID předplatného. Toto je stávající předplatné, pro které si můžete koupit nabídku doplňku.

  • ID nabídky, které identifikuje nabídku doplňku k zakoupení.

Zakoupení doplňku prostřednictvím kódu

Když si koupíte doplněk k předplatnému, aktualizujete původní objednávku předplatného objednávkou doplňku. V následujícím příkladu je customerId ID zákazníka, subscriptionId je ID předplatného a addOnOfferId je ID nabídky doplňku.

Postup je následující:

  1. Získejte rozhraní pro operace předplatného.

    var subscriptionOperations = partnerOperations.Customers.ById(customerId).Subscriptions.ById(subscriptionId);
    
  2. Toto rozhraní použijte k vytvoření instance objektu odběru. Tím získáte podrobnosti nadřazeného předplatného, včetně ID objednávky.

    var parentSubscription = subscriptionOperations.Get();
    
  3. Vytvořte instanci nového objektu Order . Tato instance objednávky slouží k aktualizaci původní objednávky použité k nákupu předplatného. Do objednávky přidejte položku s jedním řádkem, která představuje doplněk.

    var orderToUpdate = new Order()
    {
        ReferenceCustomerId = customerId,
        LineItems = new List<OrderLineItem>()
        {
            new OrderLineItem()
            {
                LineItemNumber = 0,
                OfferId = addOnOfferId,
                FriendlyName = "Some friendly name",
                Quantity = 2,
                ParentSubscriptionId = subscriptionId
            }
        }
    };
    
  4. Aktualizujte původní objednávku předplatného novou objednávkou doplňku.

    Order updatedOrder = partnerOperations.Customers.ById(customerId).Orders.ById(parentSubscription.OrderId).Patch(orderToUpdate);
    

C#

Pokud si chcete koupit doplněk, začněte získáním rozhraní pro operace předplatného zavoláním metody IAggregatePartner.Customers.ById s ID zákazníka k identifikaci zákazníka a metodou Subscriptions.ById pro identifikaci předplatného, které má nabídku doplňku. Toto rozhraní použijte k načtení podrobností o předplatném voláním Get. Podrobnosti o předplatném obsahují ID objednávky předplatného, což je objednávka, která se má aktualizovat doplňkem.

Dále vytvořte instanci nového objektu Order a naplňte ho jednou instancí LineItem , která obsahuje informace k identifikaci doplňku, jak je znázorněno v následujícím fragmentu kódu. Tento nový objekt použijete k aktualizaci pořadí předplatného pomocí doplňku. Nakonec zavolejte metodu Patch , která aktualizuje objednávku předplatného po první identifikaci zákazníka s IAggregatePartner.Customers.ById a objednávkou pomocí Orders.ById.

// IAggregatePartner partnerOperations;
// string customerId;
// string subscriptionId;
// string addOnOfferId;

// Get an interface to the operations for the subscription.
var subscriptionOperations = partnerOperations.Customers.ById(customerId).Subscriptions.ById(subscriptionId);

// Get the parent subscription details.
var parentSubscription = subscriptionOperations.Get();

// In order to buy an add-on subscription for this offer, we need to patch/update the order through which the base offer was purchased
// by creating an order object with a single line item which represents the add-on offer purchase.
var orderToUpdate = new Order()
{
    ReferenceCustomerId = customerId,
    LineItems = new List<OrderLineItem>()
    {
        new OrderLineItem()
        {
            LineItemNumber = 0,
            OfferId = addOnOfferId,
            FriendlyName = "Some friendly name",
            Quantity = 2,
            ParentSubscriptionId = subscriptionId
        }
    }
};

// Update the order to apply the add on purchase.
Order updatedOrder = partnerOperations.Customers.ById(customerId).Orders.ById(parentSubscription.OrderId).Patch(orderToUpdate);

Ukázka: Testovací aplikace konzoly Projekt: Ukázky sady SDK Partnerského centra – třída: AddSubscriptionAddOn.cs

Požadavek REST

Syntaxe požadavku

Metoda Identifikátor URI žádosti
PATCH {baseURL}/v1/customers/{id_tenanta}/orders/{id_objednávky} HTTP/1.1

Parametry identifikátoru URI

K identifikaci zákazníka a objednávky použijte následující parametry.

Název Typ Vyžadováno Popis
customer-tenant-ID Identifikátor guid Y Hodnota je identifikátor GUID customer-tenant-ID , který identifikuje zákazníka.
id objednávky Identifikátor guid Y Identifikátor objednávky.

Hlavičky požadavku

Další informace najdete v tématu Hlavičky REST Partnerského centra.

Text požadavku

Následující tabulky popisují vlastnosti v textu požadavku.

Objednávka

Název Typ Vyžadováno Popis
Id řetězec N ID objednávky.
Id referenčního zákazníka řetězec Y ID zákazníka.
Položky řádku pole objektů Y Pole OrderLineItem objekty.
Datum vytvoření řetězec N Datum vytvoření objednávky ve formátu data a času.
Atributy object N Obsahuje "ObjectType": "Order".

OrderLineItem

Název Typ Vyžadováno Popis
Číslo řádku číslo Y Číslo položky řádku začínající na 0.
Id nabídky řetězec Y ID nabídky doplňku
SubscriptionId řetězec N ID zakoupeného doplňkového předplatného.
Id nadřazeného předplatného řetězec Y ID nadřazeného předplatného, které má nabídku doplňku.
Friendlyname řetězec N Popisný název této řádkové položky.
Množství číslo Y Počet licencí.
Záznam PartnerIdOnZáznam řetězec N ID partnera záznamu.
Atributy object N Obsahuje "ObjectType": "OrderLineItem".

Příklad požadavku

PATCH https://api.partnercenter.microsoft.com/v1/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/orders/CF3B0E37-BE0B-4CDD-B584-D1A97D98A922 HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 17a2658e-d2cc-439b-a2f0-2aefd9344fbc
MS-CorrelationId: 60efdd24-17ef-4080-9b02-4fc315f916ff
X-Locale: en-US
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 414
Expect: 100-continue

{
    "Id": null,
    "ReferenceCustomerId": "4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04",
    "LineItems": [{
            "LineItemNumber": 0,
            "OfferId": "2828BE95-46BA-4F91-B2FD-0BEF192ECF60",
            "SubscriptionId": null,
            "ParentSubscriptionId": "1C2B75C1-74A5-472A-A729-7F8CEFC477F9",
            "FriendlyName": "Some friendly name",
            "Quantity": 2,
            "PartnerIdOnRecord": null,
            "Attributes": {
                "ObjectType": "OrderLineItem"
            }
        }
    ],
    "CreationDate": null,
    "Attributes": {
        "ObjectType": "Order"
    }
}

Odpověď REST

Pokud bude tato metoda úspěšná, vrátí aktualizovanou objednávku předplatného v textu odpovědi.

Úspěšné odpovědi a kódy chyb

Každá odpověď obsahuje stavový kód HTTP, který označuje úspěch nebo neúspěch, 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 Partnerského centra.

Příklad odpovědi

HTTP/1.1 200 OK
Content-Length: 1135
Content-Type: application/json; charset=utf-8
MS-CorrelationId: 60efdd24-17ef-4080-9b02-4fc315f916ff
MS-RequestId: 17a2658e-d2cc-439b-a2f0-2aefd9344fbc
MS-CV: WtFy3zI8V0u2lnT9.0
MS-ServerId: 020021921
Date: Wed, 25 Jan 2017 23:01:08 GMT

{
    "id": "cf3b0e37-be0b-4cdd-b584-d1a97d98a922",
    "referenceCustomerId": "4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04",
    "billingCycle": "none",
    "lineItems": [{
            "lineItemNumber": 0,
            "offerId": "195416C1-3447-423A-B37B-EE59A99A19C4",
            "subscriptionId": "1C2B75C1-74A5-472A-A729-7F8CEFC477F9",
            "friendlyName": "new offer purchase",
            "quantity": 5,
            "links": {
                "subscription": {
                    "uri": "/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/subscriptions/1C2B75C1-74A5-472A-A729-7F8CEFC477F9",
                    "method": "GET",
                    "headers": []
                }
            }
        }, {
            "lineItemNumber": 1,
            "offerId": "2828BE95-46BA-4F91-B2FD-0BEF192ECF60",
            "subscriptionId": "968BA1CF-C146-4ADF-A300-308DCF718EEE",
            "friendlyName": "Some friendly name",
            "quantity": 2,
            "links": {
                "subscription": {
                    "uri": "/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/subscriptions/968BA1CF-C146-4ADF-A300-308DCF718EEE",
                    "method": "GET",
                    "headers": []
                }
            }
        }
    ],
    "creationDate": "2017-01-25T14:53:12.093-08:00",
    "links": {
        "self": {
            "uri": "/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/orders/cf3b0e37-be0b-4cdd-b584-d1a97d98a922",
            "method": "GET",
            "headers": []
        }
    },
    "attributes": {
        "etag": "eyJpZCI6ImNmM2IwZTM3LWJlMGItNGNkZC1iNTg0LWQxYTk3ZDk4YTkyMiIsInZlcnNpb24iOjJ9",
        "objectType": "Order"
    }
}