Bir abonelik için eklenti satın alma
Şunlar için geçerlidir: İş Ortağı Merkezi | 21Vianet tarafından sağlanan İş Ortağı Merkezi | Microsoft Cloud for US Government için İş Ortağı Merkezi
Mevcut bir aboneliğe eklenti satın alma.
Önkoşullar
İş Ortağı Merkezi kimlik doğrulamasında açıklandığı gibi kimlik bilgileri. Bu senaryo hem tek başına Uygulama hem de App+User kimlik bilgileriyle kimlik doğrulamayı destekler.
Müşteri kimliği (
customer-tenant-id
). Müşterinin kimliğini bilmiyorsanız, İş Ortağı Merkezi'ndeMüşteriler çalışma alanını ve ardından müşteri listesinden müşteriyi ve ardından Hesap'ı seçerek bunu arayabilirsiniz. Müşterinin Hesap sayfasında, Müşteri Hesabı Bilgileri bölümünde Microsoft Kimliği'ni arayın. Microsoft kimliği, müşteri kimliğiyle (customer-tenant-id
) aynıdır.Abonelik kimliği. Bu, eklenti teklifi satın almak için mevcut aboneliktir.
Satın alınacak eklenti teklifini tanımlayan bir teklif kimliği.
Kod aracılığıyla eklenti satın alma
Bir aboneliğe eklenti satın aldığınızda, özgün abonelik siparişini eklentinin siparişiyle güncelleştirirsiniz. 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şlemlerine yönelik bir arabirim alın.
var subscriptionOperations = partnerOperations.Customers.ById(customerId).Subscriptions.ById(subscriptionId);
Abonelik nesnesinin örneğini oluşturmak için bu arabirimi kullanın. Bu size sipariş kimliği de dahil olmak üzere üst abonelik ayrıntılarını alır.
var parentSubscription = subscriptionOperations.Get();
Yeni bir Order nesnesinin örneğini 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şini 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 teklifine sahip aboneliği tanımlamak için Subscriptions.ById yöntemini çağırarak abonelik işlemlerine bir arabirim alarak başlayın. Get çağrısı yaparak abonelik ayrıntılarını almak için bu arabirimi kullanın. Abonelik ayrıntıları, eklentiyle güncelleştirilecek sipariş olan abonelik siparişinin sipariş kimliğini içerir.
Ardından, aşağıdaki kod parçacığında gösterildiği gibi yeni bir Order nesnesinin örneğini oluşturun ve eklentiyi tanımlama bilgilerini içeren tek bir LineItem örneğiyle doldurun. Abonelik sırasını eklentiyle güncelleştirmek için bu yeni nesneyi kullanacaksınız. Son olarak, önce müşteriyi IAggregatePartner.Customers.ById ile ve Siparişler.ById ile siparişi tanımladıktan sonra abonelik siparişini güncelleştirmek için Patch yöntemini çağırı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ı. Proje: İş Ortağı Merkezi SDK Örnekleri Sınıfı: AddSubscriptionAddOn.cs
REST isteği
İstek söz dizimi
Yöntem | İstek URI'si |
---|---|
PATCH | {baseURL}/v1/customers/{customer-tenant-id}/orders/{order-id} HTTP/1.1 |
URI parametreleri
Müşteriyi ve siparişi tanımlamak için aşağıdaki parametreleri kullanın.
Ad | Tür | Gerekli | Açıklama |
---|---|---|---|
customer-tenant-id | Guıd | Y | Değer, müşteriyi tanımlayan GUID biçimli customer-tenant-id değeridir. |
order-id | Guıd | 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 tablolarda istek gövdesindeki özellikler açıklanmaktadır.
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 nesnelerinin dizisi. |
Creationdate | string | N | Siparişin oluşturulduğu tarih, tarih-saat biçiminde. |
Öznitelikler | object | N | "ObjectType": "Order"'i 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 teklifini içeren ü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 PartnerID değeri. |
Öznitelikler | object | N | "ObjectType": "OrderLineItem" öğesini 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: 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 yanıtı
Başarılı olursa, bu yöntem yanıt gövdesinde güncelleştirilmiş abonelik sırasını döndürür.
Yanıt başarısı ve hata kodları
Her yanıt, başarıyı veya başarısızlığı ve ek hata ayıklama bilgilerini gösteren bir HTTP durum koduyla 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 Hata Kodları.
Yanıt örneği
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"
}
}