Een invoegtoepassing voor een abonnement kopen
Van toepassing op: Partnercentrum | Partnercentrum beheerd door 21Vianet | Partnercentrum voor Microsoft Cloud for US Government
Een invoegtoepassing aanschaffen voor een bestaand abonnement.
Vereisten
Referenties zoals beschreven in Partnercentrum-verificatie. Dit scenario ondersteunt verificatie met zowel zelfstandige app- als App+User-referenties.
Een klant-id (
customer-tenant-id
). Als u de id van de klant niet weet, kunt u deze opzoeken in partnercentrum door de werkruimte Klanten te selecteren, vervolgens de klant in de lijst met klanten en vervolgens Account. Zoek op de pagina Account van de klant naar de Microsoft-id in de sectie Klantaccountgegevens . De Microsoft-id is hetzelfde als de klant-id (customer-tenant-id
).Een abonnements-id. Dit is het bestaande abonnement waarvoor u een invoegtoepassingsaanbieding kunt aanschaffen.
Een aanbiedings-id die de invoegtoepassingsaanbieding identificeert die u wilt kopen.
Een invoegtoepassing aanschaffen via code
Wanneer u een invoegtoepassing voor een abonnement koopt, wordt de oorspronkelijke abonnementsorder bijgewerkt met de order voor de invoegtoepassing. In het volgende is customerId de klant-id, subscriptionId de abonnements-id en addOnOfferId de aanbiedings-id voor de invoegtoepassing.
Dit zijn de stappen:
Een interface ophalen voor de bewerkingen voor het abonnement.
var subscriptionOperations = partnerOperations.Customers.ById(customerId).Subscriptions.ById(subscriptionId);
Gebruik deze interface om een abonnementsobject te instantiëren. Hiermee krijgt u de gegevens van het bovenliggende abonnement, inclusief de order-id.
var parentSubscription = subscriptionOperations.Get();
Een nieuw Order-object instantiëren. Deze orderinstantie wordt gebruikt om de oorspronkelijke bestelling bij te werken die is gebruikt om het abonnement aan te schaffen. Voeg een item met één regel toe aan de volgorde die de invoegtoepassing vertegenwoordigt.
var orderToUpdate = new Order() { ReferenceCustomerId = customerId, LineItems = new List<OrderLineItem>() { new OrderLineItem() { LineItemNumber = 0, OfferId = addOnOfferId, FriendlyName = "Some friendly name", Quantity = 2, ParentSubscriptionId = subscriptionId } } };
Werk de oorspronkelijke bestelling voor het abonnement bij met de nieuwe bestelling voor de invoegtoepassing.
Order updatedOrder = partnerOperations.Customers.ById(customerId).Orders.ById(parentSubscription.OrderId).Patch(orderToUpdate);
C#
Als u een invoegtoepassing wilt aanschaffen, moet u eerst een interface voor de abonnementsbewerkingen verkrijgen door de methode IAggregatePartner.Customers.ById aan te roepen met de klant-id om de klant te identificeren en de methode Subscriptions.ById om het abonnement met de invoegtoepassingsaanbieding te identificeren. Gebruik deze interface om de abonnementsgegevens op te halen door Get aan te roepen. De abonnementsgegevens bevatten de order-id van de abonnementsorder. Dit is de order die moet worden bijgewerkt met de invoegtoepassing.
Maak vervolgens een instantie van een nieuw Order-object en vul dit in met één Exemplaar van LineItem dat de informatie bevat om de invoegtoepassing te identificeren, zoals wordt weergegeven in het volgende codefragment. U gebruikt dit nieuwe object om de abonnementsorder bij te werken met de invoegtoepassing. Roep ten slotte de Patch-methode aan om de abonnementsorder bij te werken, nadat u de klant eerst hebt geïdentificeerd met IAggregatePartner.Customers.ById en de order met 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);
Voorbeeld: Console-test-app. Project: Partner Center SDK-voorbeeldklasse: AddSubscriptionAddOn.cs
REST-aanvraag
Aanvraagsyntaxis
Methode | Aanvraag-URI |
---|---|
PATCH | {baseURL}/v1/customers/{customer-tenant-id}/orders/{order-id} HTTP/1.1 |
URI-parameters
Gebruik de volgende parameters om de klant en bestelling te identificeren.
Naam | Type | Vereist | Beschrijving |
---|---|---|---|
klant-tenant-id | Guid | J | De waarde is een met GUID opgemaakte klant-tenant-id die de klant identificeert. |
order-id | Guid | J | De order-id. |
Aanvraagheaders
Zie Rest-headers van partnercentrum voor meer informatie.
Aanvraagbody
In de volgende tabellen worden de eigenschappen in de aanvraagtekst beschreven.
Volgorde
Naam | Type | Vereist | Beschrijving |
---|---|---|---|
Id | tekenreeks | N | De order-id. |
ReferenceCustomerId | tekenreeks | J | De klant-id. |
LineItems | matrix van objecten | J | Een matrix van OrderLineItem-objecten . |
CreationDate | tekenreeks | N | De datum waarop de order is gemaakt, in datum-/tijdnotatie. |
Kenmerken | object | N | Bevat "ObjectType": "Order". |
OrderLineItem
Naam | Type | Vereist | Beschrijving |
---|---|---|---|
LineItemNumber | getal | J | Het regelitemnummer, beginnend met 0. |
OfferId | tekenreeks | J | De aanbiedings-id van de invoegtoepassing. |
SubscriptionId | tekenreeks | N | De id van het aangeschafte invoegtoepassingsabonnement. |
ParentSubscriptionId | tekenreeks | J | De id van het bovenliggende abonnement met de invoegtoepassingsaanbieding. |
FriendlyName | tekenreeks | N | De beschrijvende naam voor dit regelitem. |
Aantal | getal | J | Het aantal licenties. |
PartnerIdOnRecord | tekenreeks | N | De PartnerID van de partner van de record. |
Kenmerken | object | N | Bevat "ObjectType": "OrderLineItem". |
Voorbeeld van aanvraag
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-antwoord
Als dit lukt, retourneert deze methode de bijgewerkte abonnementsvolgorde in de antwoordtekst.
Geslaagde respons- en foutcodes
Elk antwoord wordt geleverd met een HTTP-statuscode die een geslaagde of mislukte status aangeeft en aanvullende informatie over foutopsporing. Gebruik een hulpprogramma voor netwerktracering om deze code, het fouttype en aanvullende parameters te lezen. Zie Foutcodes partnercentrum voor de volledige lijst.
Voorbeeld van antwoord
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"
}
}