Köp ett tillägg till en prenumeration
Gäller för: Partnercenter | Partnercenter som drivs av 21Vianet | Partnercenter för Microsoft Cloud for US Government
Så här köper du ett tillägg till en befintlig prenumeration.
Förutsättningar
Autentiseringsuppgifter enligt beskrivningen i Partnercenter-autentisering. Det här scenariot stöder autentisering med både fristående App- och App+User-autentiseringsuppgifter.
Ett kund-ID (
customer-tenant-id
). Om du inte känner till kundens ID kan du söka efter det i Partnercenter genom att välja arbetsytan Kunder , sedan kunden i kundlistan och sedan Konto. På kundens kontosida letar du upp Microsoft-ID :t i avsnittet Kundkontoinformation . Microsoft-ID:t är samma som kund-ID:t (customer-tenant-id
).Ett prenumerations-ID. Det här är den befintliga prenumeration som du kan köpa ett tilläggserbjudande för.
Ett erbjudande-ID som identifierar det tilläggserbjudande som ska köpas.
Köpa ett tillägg via kod
När du köper ett tillägg till en prenumeration uppdaterar du den ursprungliga prenumerationsbeställningen med beställningen för tillägget. I följande är customerId kund-ID, subscriptionId är prenumerations-ID och addOnOfferId är erbjudande-ID för tillägget.
Här är stegen:
Hämta ett gränssnitt till åtgärderna för prenumerationen.
var subscriptionOperations = partnerOperations.Customers.ById(customerId).Subscriptions.ById(subscriptionId);
Använd det gränssnittet för att instansiera ett prenumerationsobjekt. På så sätt får du information om den överordnade prenumerationen, inklusive order-ID:t.
var parentSubscription = subscriptionOperations.Get();
Instansiera ett nytt orderobjekt . Den här orderinstansen används för att uppdatera den ursprungliga beställningen som användes för att köpa prenumerationen. Lägg till ett enradsobjekt i den ordning som representerar tillägget.
var orderToUpdate = new Order() { ReferenceCustomerId = customerId, LineItems = new List<OrderLineItem>() { new OrderLineItem() { LineItemNumber = 0, OfferId = addOnOfferId, FriendlyName = "Some friendly name", Quantity = 2, ParentSubscriptionId = subscriptionId } } };
Uppdatera den ursprungliga beställningen för prenumerationen med den nya ordern för tillägget.
Order updatedOrder = partnerOperations.Customers.ById(customerId).Orders.ById(parentSubscription.OrderId).Patch(orderToUpdate);
C#
Om du vill köpa ett tillägg börjar du med att hämta ett gränssnitt för prenumerationsåtgärderna genom att anropa metoden IAggregatePartner.Customers.ById med kund-ID:t för att identifiera kunden och metoden Subscriptions.ById för att identifiera prenumerationen som har tillägget. Använd det gränssnittet för att hämta prenumerationsinformationen genom att anropa Hämta. Prenumerationsinformationen innehåller beställnings-ID:t för prenumerationsbeställningen, vilket är den ordning som ska uppdateras med tillägget.
Instansiera sedan ett nytt Order-objekt och fyll i det med en enda LineItem-instans som innehåller informationen för att identifiera tillägget, enligt följande kodfragment. Du använder det här nya objektet för att uppdatera prenumerationsbeställningen med tillägget. Anropa slutligen korrigeringsmetoden för att uppdatera prenumerationsbeställningen, efter att först ha identifierat kunden med IAggregatePartner.Customers.ById och beställningen med 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);
Exempel: Konsoltestapp. Projekt: SDK-exempelklass för Partnercenter: AddSubscriptionAddOn.cs
REST-begäran
Begärandesyntax
Metod | URI för förfrågan |
---|---|
PATCH | {baseURL}/v1/customers/{customer-tenant-id}/orders/{order-id} HTTP/1.1 |
URI-parametrar
Använd följande parametrar för att identifiera kunden och beställningen.
Namn | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
customer-tenant-id | Guid | Y | Värdet är ett GUID-formaterat kund-klient-ID som identifierar kunden. |
order-id | Guid | Y | Orderidentifieraren. |
Begärandehuvuden
Mer information finns i REST-huvuden i Partnercenter.
Begärandetext
Följande tabeller beskriver egenskaperna i begärandetexten.
Beställning
Namn | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
Id | sträng | N | Order-ID:t. |
ReferenceCustomerId | sträng | Y | Kund-ID: t. |
LineItems | en matris med objekt | Y | En matris med OrderLineItem-objekt . |
CreationDate | sträng | N | Det datum då ordern skapades, i datum-tidsformat. |
Attribut | objekt | N | Innehåller "ObjectType": "Order". |
OrderLineItem
Namn | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
LineItemNumber | antal | Y | Radobjektnumret börjar med 0. |
OfferId | sträng | Y | Erbjudande-ID för tillägget. |
SubscriptionId | sträng | N | ID för den köpta tilläggsprenumerationen. |
ParentSubscriptionId | sträng | Y | ID:t för den överordnade prenumerationen som har tillägget. |
FriendlyName | sträng | N | Det egna namnet på det här radobjektet. |
Kvantitet | antal | Y | Antalet licenser. |
PartnerIdOnRecord | sträng | N | PartnerID för postens partner. |
Attribut | objekt | N | Innehåller "ObjectType": "OrderLineItem". |
Exempel på begäran
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"
}
}
REST-svar
Om det lyckas returnerar den här metoden den uppdaterade prenumerationsordningen i svarstexten.
Svarsframgång och felkoder
Varje svar levereras med en HTTP-statuskod som anger lyckad eller misslyckad och ytterligare felsökningsinformation. Använd ett verktyg för nätverksspårning för att läsa den här koden, feltypen och ytterligare parametrar. Den fullständiga listan finns i Felkoder för Partnercenter.
Exempel på svar
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"
}
}