Müşteri siparişine eklentilerle sepet oluşturma
Sepet üzerinden eklentiler satın alın. Şu anda satabilirsiniz hakkında daha fazla bilgi için bkz. Bulut Çözümü Sağlayıcısı programda iş ortağı teklifleri.
Ö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.
C#
Sepet, temel teklifin ve ilgili eklentilerin satın alımını sağlar. Sepet oluşturmak için şu adımları izleyin:
Sepet nesnesi örneği oluşturma.
Temel tekliflerini temsil eden CartLineItem nesnelerinin listesini oluşturun ve listeyi sepetin LineItems özelliğine attayabilirsiniz.
Her temel teklifin sepet satır öğesi altında, AddOnItems listesini her biri bu temel teklife göre satın alınacak bir eklentiyi temsil eden diğer CartLineItem nesneleriyle doldurmak.
Müşteri kimliğini kullanarak ICustomerCollection.ById yöntemini çağırarak ve ardından Cart özelliğinden arabirimi alarak IAggregatePartner kullanarak sepet işlemleri için bir arabirim elde edin.
Son olarak, sepeti oluşturmak için Create veya CreateAsync yöntemini arayın.
C# örneği
// IAggregatePartner partnerOperations;
// string customerId;
var cart = new Cart()
{
LineItems = new List<CartLineItem>()
{
new CartLineItem()
{
Id = 0,
CatalogItemId = "A_base_offer_ID",
FriendlyName = "Myofferpurchase",
Quantity = 3,
BillingCycle = BillingCycleType.Monthly,
AddonItems = new List<CartLineItem>
{
new CartLineItem
{
Id = 1,
CatalogItemId = "An_addon_item_ID",
BillingCycle = BillingCycleType.Monthly,
Quantity = 2,
},
new CartLineItem
{
Id = 2,
CatalogItemId = "Another_addon_item_ID",
BillingCycle = BillingCycleType.Monthly,
Quantity = 3
}
}
}
}
};
var createdCart = partnerOperations.Customers.ById(customerId).Carts.Create(cart);
Mevcut temel aboneliklere göre eklentilerin satın alımını etkinleştirecek bir sepet oluşturmak için şu adımları izleyin:
ProvisioningContext özelliğinde "ParentSubscriptionId" anahtarıyla abonelik kimliğini içeren yeni bir CartLineItem ile bir Sepet oluşturun.
Create veya CreateAsync yöntemini çağırma.
// IAggregatePartner partnerOperations;
// string selectedCustomerId;
var cart = new Cart()
{
LineItems = new List<CartLineItem>()
{
new CartLineItem()
{
Id = 0,
CatalogItemId = "An_addon_item_ID",
ProvisioningContext = new Dictionary<string, string>
{
{
"ParentSubscriptionId", "An_existing_subscription_Id"
}
},
Quantity = 1,
BillingCycle = BillingCycleType.Annual,
}
}
};
var createdCart = partnerOperations.Customers.ById(selectedCustomerId).Carts.Create(cart);
REST isteği
İstek söz dizimi
| Yöntem | İstek URI'si |
|---|---|
| YAYINLA | {baseURL}/v1/customers/{customer-id}/carts HTTP/1.1 |
URI parametresi
Müşteriyi tanımlamak için aşağıdaki path parametresini kullanın.
| Ad | Tür | Gerekli | Açıklama |
|---|---|---|---|
| customer-id | string | Yes | Müşteriyi tanımlayan GUID biçimlendirilmiş customer-id. |
İstek üst bilgileri
Daha fazla bilgi için bkz. İş Ortağı Merkezi REST üst bilgileri.
İstek gövdesi
Bu tablo, istek gövdesinin Sepet özelliklerini açıklar.
| Özellik | Tür | Gerekli | Açıklama |
|---|---|---|---|
| kimlik | dize | No | Sepetin başarıyla oluşturulmasının ardından sağlanan bir sepet tanımlayıcısı. |
| creationTimeStamp | DateTime | No | Sepetin tarih-saat biçiminde oluşturulma tarihi. Sepetin başarıyla oluşturulmasının ardından uygulanır. |
| lastModifiedTimeStamp | DateTime | No | Sepetin en son güncelleştirilen tarih-saat biçiminde olduğu tarih. Sepetin başarıyla oluşturulmasının ardından uygulanır. |
| expirationTimeStamp | DateTime | No | Sepetin tarih-saat biçiminde süresi dolacak tarih. Sepetin başarıyla oluşturulmasının ardından uygulanır. |
| lastModifiedUser | dize | No | Sepeti en son güncelleştirilen kullanıcı. Sepetin başarıyla oluşturulmasının ardından uygulanır. |
| lineItems | Nesne dizisi | Yes | CartLineItem kaynaklarının dizisi. |
Bu tablo, istek gövdesinin CartLineItem özelliklerini açıklar.
| Özellik | Tür | Description |
|---|---|---|
| kimlik | string | Sepet satır öğesi için benzersiz tanımlayıcı. Sepetin başarıyla oluşturulmasının ardından uygulanır. |
| catalogId | string | Katalog öğesi tanımlayıcısı. |
| Friendlyname | string | İsteğe bağlı. Karartmanıza yardımcı olmak için iş ortağı tarafından tanımlanan öğenin kolay adı. |
| miktar | int | Lisans veya örnek sayısı. |
| currencyCode | string | Para birimi kodu. |
| Bilimlingcycle | Nesne | Geçerli dönem için ayarlanan faturalandırma dönemi türü. |
| Katılımcılar | Nesne dizesi çiftlerinin listesi | Satın alımdaki kayıttaki iş ortağı kimliği koleksiyonu (MPN KIMLIĞI). |
| provisioningContext | Sözlük < dizesi, dize> | Teklifin sağlanması için kullanılan bir bağlam. |
| orderGroup | string | Hangi öğelerin birlikte yerleştirilebileceğini belirten bir grup. |
| Addonıtems | Cartlineıtem nesnelerinin listesi | Ana sepet çizgisi öğesinin satın alma işleminden kaynaklanan temel aboneliğe yönelik olarak satın alınacak eklentiler için sepet çizgisi öğeleri koleksiyonu. |
| error | Nesne | Bir hata varsa sepet oluşturulduktan sonra uygulanır. |
İstek örneği (yeni temel abonelik)
Aşağıdaki REST örneği, yeni bir temel abonelik için eklenti öğelerine sahip bir sepet oluşturmayı gösterir.
POST https://api.partnercenter.microsoft.com/v1/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/carts HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: f931348a-6312-47d0-a8dd-31a386dedb8f
MS-CorrelationId: f73baf70-bbc3-43d0-8b29-dffa08ff9511
{
"LineItems": [
{
"Id":0,
"CatalogItemId":"91FD106F-4B2C-4938-95AC-F54F74E9A239",
"FriendlyName":"Myofferpurchase",
"Quantity":3,
"BillingCycle":"monthly",
"AddonItems": [
{
"Id":1,
"CatalogItemId":"C94271D8-B431-4A25-A3C5-A57737A1C909",
"Quantity":2,
"BillingCycle":"monthly"
},
{
"Id":2,
"CatalogItemId":"43FCE491-76D1-4BCC-B709-8A288786DBAE",
"Quantity":3,
"BillingCycle":"monthly"
}
]
}
]
}
İstek örneği (varolan temel abonelik)
Aşağıdaki REST örneği, mevcut bir temel aboneliğe eklentilerin nasıl ekleneceğini gösterir.
POST https://api.partnercenter.microsoft.com/v1/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/carts HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 512a777a-5427-452d-9637-18421387e435
MS-CorrelationId: 182474ba-7303-4d0f-870a-8c7fba5ccc4b
{
"LineItems": [
{
"Id":0,
"CatalogItemId":"C94271D8-B431-4A25-A3C5-A57737A1C909",
"Quantity":1,
"BillingCycle":"annual",
"ProvisioningContext":{"ParentSubscriptionId":"97555B61-7461-477A-A98C-9C76148783E4"}
}
]
}
REST yanıtı
Başarılı olursa, bu yöntem yanıt gövdesinde doldurulmuş sepet kaynağını döndürür.
Yanıt başarısı ve hata kodları
Her yanıt başarı veya başarısızlık ve ek hata ayıklama bilgilerini gösteren bir HTTP durum kodu ile gelir. Bu kodu, hata türünü ve ek parametreleri okumak için bir ağ izleme aracı kullanın. Tam liste için bkz. hata kodları.
Yanıt örneği (yeni temel abonelik)
HTTP/1.1 201 Created
Content-Length: 958
Content-Type: application/json
MS-CorrelationId: f73baf70-bbc3-43d0-8b29-dffa08ff9511
MS-RequestId: f931348a-6312-47d0-a8dd-31a386dedb8f
X-Locale: en-US,en-US
Date: Thu, 01 Nov 2018 22:29:05 GMT
{
"id":"dbe2f8d4-f21d-43e2-9356-cff6387c4ba1",
"creationTimestamp":"2018-11-01T22:29:03.6900182Z",
"lastModifiedTimestamp":"2018-11-01T22:29:03.6900182Z",
"expirationTimestamp":"2018-11-01T22:44:05.0025799Z",
"lastModifiedUser":"1824b7fc-2fac-4478-b177-66823c40ab75",
"status":"Active",
"lineItems": [
{
"id":0,
"catalogItemId":"91FD106F-4B2C-4938-95AC-F54F74E9A239",
"friendlyName":"Myofferpurchase",
"quantity":3,
"currencyCode":"USD",
"billingCycle":"monthly",
"orderGroup":"OMS-0",
"addonItems": [
{
"id":1,
"catalogItemId":"C94271D8-B431-4A25-A3C5-A57737A1C909",
"quantity":2,
"currencyCode":"USD",
"billingCycle":"monthly",
"orderGroup":"OMS-0"
},
{
"id":2,
"catalogItemId":"43FCE491-76D1-4BCC-B709-8A288786DBAE",
"quantity":3,
"currencyCode":"USD",
"billingCycle":"monthly",
"orderGroup":"OMS-0"
}
]
}
],
"links": {
"self": {
"uri":"/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/carts/dbe2f8d4-f21d-43e2-9356-cff6387c4ba1",
"method":"GET",
"headers":[
]
}
},
"attributes": {
"objectType":"Cart"
}
}
Yanıt örneği (varolan temel abonelik)
HTTP/1.1 201 Created
Content-Length: 707
Content-Type: application/json
MS-CorrelationId: 182474ba-7303-4d0f-870a-8c7fba5ccc4b
MS-RequestId: 512a777a-5427-452d-9637-18421387e435
X-Locale: en-US,en-US
Date: Thu, 01 Nov 2018 22:46:18 GMT
{
"id":"4d927e27-93d1-448b-abe5-819b66ecca22",
"creationTimestamp":"2018-11-01T22:46:16.2996364Z",
"lastModifiedTimestamp":"2018-11-01T22:46:16.2996364Z",
"expirationTimestamp":"2018-11-01T23:01:18.7543264Z",
"lastModifiedUser":"1824b7fc-2fac-4478-b177-66823c40ab75",
"status":"Active",
"lineItems": [
{
"id":0,
"catalogItemId":"C94271D8-B431-4A25-A3C5-A57737A1C909",
"quantity":1,
"currencyCode":"USD",
"billingCycle":"annual",
"provisioningContext": {
"parentSubscriptionId":"97555B61-7461-477A-A98C-9C76148783E4"
},
"orderGroup":"OMS-0"
}
],
"links": {
"self": {
"uri":"/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/carts/4d927e27-93d1-448b-abe5-819b66ecca22",
"method":"GET",
"headers":[
]
}
},
"attributes": {
"objectType":"Cart"
}
}