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í:
Získejte rozhraní pro operace předplatného.
var subscriptionOperations = partnerOperations.Customers.ById(customerId).Subscriptions.ById(subscriptionId);
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();
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 } } };
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: aaaa0000-bb11-2222-33cc-444444dddddd
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": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"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: aaaa0000-bb11-2222-33cc-444444dddddd
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": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"friendlyName": "new offer purchase",
"quantity": 5,
"links": {
"subscription": {
"uri": "/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"method": "GET",
"headers": []
}
}
}, {
"lineItemNumber": 1,
"offerId": "2828BE95-46BA-4F91-B2FD-0BEF192ECF60",
"subscriptionId": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
"friendlyName": "Some friendly name",
"quantity": 2,
"links": {
"subscription": {
"uri": "/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
"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"
}
}