Bir abonelik için eklenti satın alma
Uygulama:İş Ortağı Merkezi | İş Ortağı Merkezi 21Vianet | İş Ortağı Merkezi için Microsoft Cloud for US Government
Mevcut bir aboneliğe eklenti satın alma.
Önkoşullar
kimlik doğrulamasında açıklandığı gibi İş Ortağı Merkezi bilgileri. Bu senaryo hem tek başına Uygulama hem de Uygulama+Kullanıcı kimlik bilgileriyle kimlik doğrulamasını destekler.
Müşteri kimliği (
customer-tenant-id). Müşterinin kimliğini bilmiyorsanız bu kimliği panoda İş Ortağı Merkezi. İş Ortağı Merkezi'den CSP'yi ve ardından Müşteriler'i seçin. Müşteri listesinden müşteriyi ve ardından Hesap'ı seçin. Müşterinin Hesap sayfasında Müşteri Hesabı Bilgileri bölümünde MicrosoftKimliği'ne bakın. Microsoft Kimliği, müşteri kimliği () ilecustomer-tenant-idaynıdır.Abonelik kimliği. Bu, eklenti teklifi satın alınarak satın alınan mevcut aboneliktir.
Satın alınan eklenti teklifini tanımlayan teklif kimliği.
Kod aracılığıyla eklenti satın alma
Bir aboneliğe eklenti satın aldığınız zaman, özgün abonelik siparişlerini eklentinin siparişiyle güncelleştirebilirsiniz. Aşağıda customerId müşteri kimliği, subscriptionId abonelik kimliği, addOnOfferId ise eklentinin teklif kimliğidir.
Adımlar aşağıdaki gibidir:
Aboneliğin işlemleri için bir arabirim alın.
var subscriptionOperations = partnerOperations.Customers.ById(customerId).Subscriptions.ById(subscriptionId);Bir abonelik nesnesi örneği için bu arabirimi kullanın. Bu, sipariş kimliği de dahil olmak üzere üst abonelik ayrıntılarını size alır.
var parentSubscription = subscriptionOperations.Get();Yeni bir Order nesnesi örneği oluşturma. Bu sipariş örneği, aboneliği satın almak için kullanılan özgün siparişi güncelleştirmek için kullanılır. Eklentiyi temsil eden sıraya tek satırlı bir öğe ekleyin.
var orderToUpdate = new Order() { ReferenceCustomerId = customerId, LineItems = new List<OrderLineItem>() { new OrderLineItem() { LineItemNumber = 0, OfferId = addOnOfferId, FriendlyName = "Some friendly name", Quantity = 2, ParentSubscriptionId = subscriptionId } } };Aboneliğin özgün siparişlerini eklentinin yeni siparişiyle güncelleştirin.
Order updatedOrder = partnerOperations.Customers.ById(customerId).Orders.ById(parentSubscription.OrderId).Patch(orderToUpdate);
C#
Eklenti satın almak için, müşteriyi tanımlamak için müşteri kimliğiyle IAggregatePartner.Customers.ById yöntemini ve eklenti teklifinin olduğu aboneliği tanımlamak için Subscriptions.ById yöntemini çağırarak abonelik işlemlerine bir arabirim elde edin. Al'ı çağırarak abonelik ayrıntılarını almak için bu arabirimi kullanın. Abonelik ayrıntıları, abonelik siparişinin sipariş kimliğini içerir ve bu, eklentiyle güncelleştirilen sipariştir.
Ardından, yeni bir Order nesnesi örneği ekleyin ve aşağıdaki kod parçacığında gösterildiği gibi eklentiyi tanımlamak için gereken bilgileri içeren tek bir LineItem örneğiyle doldurmak. Abonelik siparişlerini eklentiyle güncelleştirmek için bu yeni nesneyi kullanabilirsiniz. Son olarak, önce IAggregatePartner.Customers.ById ile müşteriyi ve Orders.ByIdile siparişi tanımdikten sonra abonelik siparişini güncelleştirmek için Patch yöntemini arayın.
// 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);
Örnek:Konsol test uygulaması. Project:İş Ortağı Merkezi SDK'sı Samples Sınıfı:AddSubscriptionAddOn.cs
REST isteği
İstek söz dizimi
| Yöntem | İstek URI'si |
|---|---|
| YAMA | {baseURL}/v1/customers/{customer-tenant-id}/orders/{order-id} HTTP/1.1 |
URI parametreleri
Müşteriyi ve siparişi belirlemek için aşağıdaki parametreleri kullanın.
| Ad | Tür | Gerekli | Açıklama |
|---|---|---|---|
| customer-tenant-id | guid | Y | Değer, müşteriyi tanımlayan GUID biçimindeki customer-tenant-id değeridir. |
| order-id | guid | Y | Sipariş tanımlayıcısı. |
İstek üst bilgileri
Daha fazla bilgi için bkz. İş Ortağı Merkezi REST üst bilgileri.
İstek gövdesi
Aşağıdaki tablolar istek gövdesinin özelliklerini açıklar.
Sipariş
| Ad | Tür | Gerekli | Açıklama |
|---|---|---|---|
| Id | string | N | Sipariş kimliği. |
| ReferenceCustomerId | string | Y | Müşteri kimliği. |
| LineItems | nesne dizisi | Y | OrderLineItem nesneleri dizisi. |
| Creationdate | string | N | Siparişin tarih-saat biçiminde oluşturulma tarihi. |
| Öznitelikler | object | N | "ObjectType": "Order" ifadesini içerir. |
OrderLineItem
| Ad | Tür | Gerekli | Açıklama |
|---|---|---|---|
| LineItemNumber | sayı | Y | 0 ile başlayan satır öğesi numarası. |
| OfferId | string | Y | Eklentinin teklif kimliği. |
| kaynak grubundaki | string | N | Satın alınan eklenti aboneliğinin kimliği. |
| ParentSubscriptionId | string | Y | Eklenti teklifine sahip üst aboneliğin kimliği. |
| Friendlyname | string | N | Bu satır öğesinin kolay adı. |
| Miktar | sayı | Y | Lisans sayısı. |
| PartnerIdOnRecord | string | N | Kayıt ortağının MPN kimliği. |
| Öznitelikler | object | N | "ObjectType": "OrderLineItem" ifadesini içerir. |
İstek örneği
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"
}
}
REST yanıtı
Başarılı olursa, bu yöntem yanıt gövdesinde güncelleştirilmiş abonelik siparişlerini döndürür.
Yanıt başarı ve hata kodları
Her yanıt, başarılı veya başarısız olduğunu gösteren bir HTTP durum kodu ve ek hata ayıklama bilgileriyle birlikte gelir. Bu kodu, hata türünü ve ek parametreleri okumak için bir ağ izleme aracı kullanın. Tam liste için bkz. İş Ortağı Merkezi Kodları.
Yanıt örneği
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"
}
}