İş Ortağı Merkezi API'lerini kullanarak müşteri için sipariş oluşturma
için geçerlidir: İş Ortağı Merkezi | 21Vianet tarafından işletilen İş Ortağı Merkezi | ABD Kamu için Microsoft Bulut İş Ortağı Merkezi
Azure ayrılmış VM örneği ürünleri için siparişi oluşturma yalnızca uygulanır:
- İş Ortağı Merkezi
Şu anda satışa sunulanlar hakkında bilgi için, Bulut Çözümü Sağlayıcısı programındaki İş ortağı teklifleriniinceleyin.
Önkoşullar
İş Ortağı Merkezi kimlik doğrulaması'nda açıklandığı gibi kimlik bilgileri. Bu senaryo hem tek başına Uygulama hem de Uygulama+Kullanıcı kimlik bilgileriyle kimlik doğrulamayı destekler.
Bir müşteri kimliği (
customer-tenant-id
). Müşterinin kimliğini bilmiyorsanız, İş Ortağı Merkezi içinde, önce Müşteriler çalışma alanını, sonra müşteri listesinden müşteriyi ve ardından Hesap'ı seçerek arayabilirsiniz. Müşterinin Hesap sayfasında, Müşteri Hesabı Bilgileri bölümünde Microsoft Kimliği bulun. Microsoft kimliği, müşteri kimliğiyle (customer-tenant-id
) aynıdır.Teklif tanımlayıcısı.
C#
Müşteriye sipariş oluşturmak için:
Order nesnesinin örneğini oluşturun ve müşteriyi kaydetmek için ReferenceCustomerID özelliğini müşteri kimliğine ayarlayın.
OrderLineItem nesnelerinin listesini oluşturun ve listeyi siparişin LineItems özelliğine atayın. Her sipariş satırı öğesi, bir teklif için satın alma bilgilerini içerir. En az bir sipariş kaleminiz olmalıdır.
İşlemleri sıralamak için bir arabirim edinin. İlk olarak, müşteriyi tanımlamak için müşteri kimliğiyle IAggregatePartner.Customers.ById yöntemini çağırın. Ardından, Orders özelliğinden arabirimi alın.
Create veya CreateAsync yöntemini çağırın ve Order nesnesini geçirin.
Kanıtlamayı tamamlamak ve ek kurumsal bayiler eklemek için aşağıdaki İstek ve Yanıt Örnekleri örneğine bakın:
İstek örneği
{
"PartnerOnRecordAttestationAccepted":true,
"lineItems": [
{
"offerId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
"quantity": 1,
"lineItemNumber": 0,
"PartnerIdOnRecord": "873452",
"AdditionalPartnerIdsOnRecord":["4847383","873452"]
}
],
"billingCycle": "monthly"
}
Yanıt örneği
{
"id": "5cf72f146967",
"alternateId": "5cf72f146967",
"referenceCustomerId": "f81d98dd-c2f4-499e-a194-5619e260344e",
"billingCycle": "monthly",
"currencyCode": "USD",
"currencySymbol": "$",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"termDuration": "P1M",
"transactionType": "New",
"friendlyName": "AI Builder Capacity add-on",
"quantity": 1,
"partnerIdOnRecord": "873452",
"additionalPartnerIdsOnRecord": [
"4847383",
"873452"
],
"links": {
"product": {
"uri": "/products/CFQ7TTC0LH0Z?country=US",
"method": "GET",
"headers": []
},
"sku": {
"uri": "/products/CFQ7TTC0LH0Z/skus/0001?country=US",
"method": "GET",
"headers": []
},
"availability": {
"uri": "/products/CFQ7TTC0LH0Z/skus/0001/availabilities/CFQ7TTC0K18P?country=US",
"method": "GET",
"headers": []
}
}
}
],
"creationDate": "2021-08-17T18:13:11.3122226Z",
"status": "pending",
"transactionType": "UserPurchase",
"links": {
"self": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/5cf72f146967",
"method": "GET",
"headers": []
},
"provisioningStatus": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/5cf72f146967/provisioningstatus",
"method": "GET",
"headers": []
},
"patchOperation": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/5cf72f146967",
"method": "PATCH",
"headers": []
}
},
"client": {},
"attributes": {
"objectType": "Order"
}
}
IAggregatePartner partnerOperations;
string customerId;
string offerId;
var order = new Order()
{
ReferenceCustomerId = customerId,
LineItems = new List<OrderLineItem>()
{
new OrderLineItem()
{
OfferId = offerId,
FriendlyName = "new offer purchase",
Quantity = 1,
ProvisioningContext = new Dictionary<string, string>
{
{ "subscriptionId", "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f" },
{ "scope", "shared" },
{ "duration", "3Years" }
}
}
}
};
var createdOrder = partnerOperations.Customers.ById(customerId).Orders.Create(order);
Örnek: Konsol test uygulaması. Project: İş Ortağı Merkezi SDK Örnekleri Sınıf: CreateOrder.cs
REST isteği
İstek söz dizimi
Yöntem | İstek URI'si |
---|---|
POST | {baseURL}/v1/customers/{customer-id}/orders HTTP/1.1 |
URI parametreleri
Müşteriyi tanımlamak için aşağıdaki yol parametresini kullanın.
İsim | Tür | Gerekli | Açıklama |
---|---|---|---|
müşteri-id | dizgi | Evet | Müşteriyi tanımlayan GUID biçimli müşteri kimliği. |
İstek başlıkları
Daha fazla bilgi için İş Ortağı Merkezi REST üst bilgileribölümüne bakın.
İstek gövdesi
Sipariş
Bu tabloda, istek gövdesindeki Sipariş özellikleri açıklanmaktadır.
Mülk | Tür | Gerekli | Açıklama |
---|---|---|---|
id | dizgi | Hayır | Siparişin başarıyla oluşturulmasından sonra sağlanan sipariş tanımlayıcısı. |
referansMüşteriKimliği | dizgi | Hayır | Müşteri tanımlayıcısı. |
billingCycle | string | Hayır | İş ortağının bu sipariş için faturalandırıldığı sıklığı gösterir. Desteklenen değerler, BillingCycleTypeiçinde bulunan üye adlarıdır. Sipariş oluşturma sırasında varsayılan değer "Aylık" veya "OneTime" olur. Bu alan, siparişin başarıyla oluşturulmasından sonra uygulanır. |
lineItems | OrderLineItem kaynak dizisi | Evet | Müşterinin satın aldığı tekliflerin, miktar dahil olmak üzere listelenmiş listesi. |
para birimi kodu | dizgi | Hayır | Yalnızca okunabilir. Sipariş verirken kullanılan para birimi. Siparişin başarıyla oluşturulması üzerine uygulanır. |
oluşturmaTarihi | tarih ve zaman | Hayır | Yalnızca okuma. Siparişin oluşturulduğu tarih, tarih-saat biçimindedir. Siparişin başarıyla oluşturulması üzerine uygulanır. |
durum | dizgi | Hayır | Yalnızca okunabilir. Siparişin durumu. Desteklenen değerler, OrderStatusiçinde bulunan üye adlarıdır. |
Bağlantı | SiparişBağlantıları | Hayır | Sipariş'e karşılık gelen kaynak bağlantıları. |
Öznitelik | ResourceAttributes | Hayır | Sipariş'e karşılık gelen meta veri öznitelikleri. |
Ortak Kayıt Beyanı Kabul Edildi | Boolean | Evet | Kanıtlamanın tamamlanmasını onaylar |
Sipariş Satır Kalemi
Bu tabloda, istek gövdesindeki OrderLineItem özellikleri açıklanmaktadır.
Not
partnerIdOnRecord yalnızca dolaylı bir sağlayıcı dolaylı bayi adına sipariş verdiği zaman sağlanmalıdır. Yalnızca dolaylı bayinin İş Ortağı Kimliğini depolamak için kullanılır (dolaylı sağlayıcının kimliğini değil).
İsim | Tür | Gerekli | Açıklama |
---|---|---|---|
satırKalemiNumarası | Int | Evet | Koleksiyondaki her satır öğesi, 0'dan 1 sayısına kadar sayarak benzersiz bir satır numarası alır. |
teklifID | dizgi | Evet | Teklif tanımlayıcısı. Teklifin uygun segment için geçerli olduğundan emin olmalısınız. |
abonelikKimliği | dizgi | Hayır | Abonelik tanımlayıcısı. |
ebeveynAbonelikKimliği | dizgi | Hayır | Opsiyonel. Bir eklenti teklifindeki üst aboneliğin kimliği. Yalnızca PATCH için geçerlidir. |
friendlyName | dizgi | Hayır | Opsiyonel. Belirsizliği gidermek için iş ortağı tarafından tanımlanan aboneliğin açıklayıcı adı. |
miktar | Int | Evet | Lisans tabanlı abonelik için lisans sayısı. |
özelDönemBitişTarihi | TarihSaat | Hayır | Yeni aboneliğin ilk faturalama döneminin bitiş tarihi. |
partnerIdOnRecord | dizgi | Hayır | Dolaylı bir sağlayıcı dolaylı bayi adına bir sipariş verildiğinde, bu alanı yalnızca dolaylı satıcının PartnerID değeriyle doldurun (hiçbir zaman dolaylı sağlayıcının kimliği değildir). Bu, teşviklerin düzgün hesaplanmasını sağlar. |
sağlama bağlamı | Sözlük<dizesi, dize> | Hayır | Katalogdaki bazı öğeler için tedarik için bilgiler gereklidir. SKU'daki provisioningVariables özelliği, katalogdaki belirli öğeler için hangi özelliklerin gerekli olduğunu gösterir. |
Bağlantı | OrderLineItemLinks | Hayır | Sadece okunur. Sipariş satırı öğesine karşılık gelen kaynak bağlantıları. |
Öznitelik | ResourceAttributes | Hayır | OrderLineItem öğesine karşılık gelen meta veri öznitelikleri. |
yenilenir | Nesne dizisi | Hayır | RenewsTo kaynakları dizisi. |
Teyit Kabul Edildi | Bool | Hayır | Teklif veya SKU koşullarına onayı belirtir. Yalnızca SkuAttestationProperties veya OfferAttestationProperties enforceAttestation değerinin True olduğu teklifler veya sku'lar için gereklidir. |
Kayıtlı Ek Ortak Kimlikleri | Dize | Hayır | Dolaylı bir sağlayıcı dolaylı bayi adına bir sipariş verildiğinde, bu alanı yalnızca Ek dolaylı bayinin İş Ortağı Kimliği ile doldurun (asla dolaylı sağlayıcının kimliği kullanılmaz). Teşvikler bu ek kurumsal bayiler için geçerli değildir. Yalnızca en fazla 5 Dolaylı Kurumsal Bayi girilebilir. Bu yalnızca AB/EFTA ülkeleri/bölgeleri içinde işlem gören geçerli iş ortaklarıdır. |
Yenilenir
Bu tabloda, istek gövdesindeki RenewsTo özellikleri açıklanmaktadır.
Mülk | Tür | Gerekli | Açıklama |
---|---|---|---|
dönem süresi | dizgi | Hayır | Yenileme döneminin süresinin ISO 8601 gösterimi. Desteklenen geçerli değerler P1M (1 ay) ve P1Y (1 yıl). |
İstek örneği
POST https://api.partnercenter.microsoft.com/v1/customers/b0d70a69-4c42-4b27-b17b-91a835d8686a/orders HTTP/1.1
Authorization: Bearer <token>
Host: api.partnercenter.microsoft.com
Content-Length: 691
Content-Type: application/json
{
"BillingCycle": "one_time",
"CurrencyCode": "USD",
"LineItems": [
{
"LineItemNumber": 0,
"ProvisioningContext": {
"subscriptionId": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
"scope": "shared",
"duration": "1Year"
},
"OfferId": "DZH318Z0BQ4B:0047:DZH318Z0DSM8",
"FriendlyName": "A_sample_Azure_RI",
"Quantity": 1
}
]
}
REST yanıtı
Başarılı olursa, yöntem yanıt gövdesinde bir Order kaynağı döndürür.
Siparişte bir veya daha fazla abonelik varsa, ilgili abonelik kimliği değerleri yalnızca ILGILI abonelikler API çağrısı sırasında sağlanmışsa REST yanıtında görünür. Sağlama abonelikleri zaman uyumsuz olarak gerçekleşir ve bu nedenle abonelik kimliği değerleri Sipariş Oluştur çağrısının REST yanıtında her zaman görünür olmayabilir. Ancak, ilgili abonelikler sağlandıktan sonra abonelik kimliği değerlerine Sipariş Al ve Kimlik API'sine göre Sipariş Al çağrıları aracılığıyla erişilebilir.
Yanıt başarısı ve hata kodları
Her yanıt, başarılı veya başarısız olduğunu belirten 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 hata kodları.
Yanıt örneği
HTTP/1.1 201 Created
Content-Length: 788
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 025f4c19-217f-49d6-a056-391902c62fb3
Date: Thu, 15 Mar 2018 22:30:02 GMT
{
"id": "Cs_jyTxubLpvdJXdo8xcQZN6I2RsLrgZ1",
"referenceCustomerId": "b0d70a69-4c42-4b27-b17b-91a835d8686a",
"billingCycle": "one_time",
"currencyCode": "USD",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "84A03D81-6B37-4D66-8D4A-FAEA24541538",
"friendlyName": "A_sample_Azure_RI",
"quantity": 1,
"links": {
"sku": {
"uri": "/products/DZH318Z0BQ4B/skus/0047?country=US",
"method": "GET",
"headers": []
}
}
} ],
"creationDate": "2018-03-15T22:30:02.085152Z",
"status": "pending",
"links": {
"provisioningStatus": {
"uri": "/customers/b0d70a69-4c42-4b27-b17b-91a835d8686a/orders/Cs_jyTxubLpvdJXdo8xcQZN6I2RsLrgZ1/provisioningstatus",
"method": "GET",
"headers": []
},
"self": {
"uri": "/customers/b0d70a69-4c42-4b27-b17b-91a835d8686a/orders/Cs_jyTxubLpvdJXdo8xcQZN6I2RsLrgZ1",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Order"
}
}