İş Ortağı Merkezi API'lerini kullanarak müşteri için sipariş oluşturma
Şunlar 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ş oluşturma yalnızca şunlar için geçerlidir:
- İş Ortağı Merkezi
Şu anda satışa sunulanlar hakkında bilgi için bkz. Bulut Çözümü Sağlayıcısı programında iş ortağı teklifleri.
Ö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.
Müşteri kimliği (
customer-tenant-id
). Müşterinin kimliğini bilmiyorsanız, İş Ortağı Merkezi'nde Müşteriler çalışma alanını, 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.Teklif tanımlayıcısı.
C#
Müşteriye sipariş oluşturmak için:
Bir Order nesnesinin örneğini oluşturun ve müşteriyi kaydetmek için ReferenceCustomerID özelliğini müşteri kimliği olarak 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ş satırı öğeniz 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 arabirimini 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ı. Proje: İş Ortağı Merkezi SDK Örnekleri Sınıfı: CreateOrder.cs
REST isteği
İstek söz dizimi
Metot | İ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.
Adı | Tür | Zorunlu | Açıklama |
---|---|---|---|
customer-id | string | Yes | Müşteriyi tanımlayan GUID biçimli müşteri kimliği. |
İstek üst bilgileri
Daha fazla bilgi için bkz . İş Ortağı Merkezi REST üst bilgileri.
Request body
Sipariş
Bu tabloda istek gövdesindeki Order özellikleri açıklanmaktadır.
Özellik | Type | Zorunlu | Açıklama |
---|---|---|---|
id | dize | Hayır | Siparişin başarıyla oluşturulmasından sonra sağlanan sipariş tanımlayıcısı. |
referenceCustomerId | Dize | Hayır | Müşteri tanımlayıcısı. |
billingCycle | Dize | Hayır | İş ortağının bu sipariş için faturalandırıldığı sıklığı gösterir. Desteklenen değerler BillingCycleType iç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 kaynakları dizisi | Yes | Müşterinin satın aldığı tekliflerin, miktar dahil olmak üzere listelenmiş listesi. |
currencyCode | Dize | Hayır | Salt okunur. Sipariş verirken kullanılan para birimi. Siparişin başarıyla oluşturulması üzerine uygulanır. |
creationDate | datetime | Hayır | Salt okunur. Siparişin oluşturulduğu tarih, tarih-saat biçimindedir. Siparişin başarıyla oluşturulması üzerine uygulanır. |
durum | Dize | Hayır | Salt okunur. Siparişin durumu. Desteklenen değerler OrderStatus'ta bulunan üye adlarıdır. |
bağlantılar | OrderLinks | Hayır | Sipariş'e karşılık gelen kaynak bağlantıları. |
öznitelikler | ResourceAttributes | Hayır | Order'a karşılık gelen meta veri öznitelikleri. |
PartnerOnRecordAttestationAccepted | Boolean | Yes | Kanıtlamanın tamamlanmasını onaylar |
OrderLineItem
Bu tablo, istek gövdesindeki OrderLineItem özelliklerini açıklar.
Not
partnerIdOnRecord yalnızca dolaylı bir sağlayıcı dolaylı bayi adına sipariş verdiği zaman sağlanmalıdır. Yalnızca dolaylı kurumsal bayinin İş Ortağı Kimliğini depolamak için kullanılır (hiçbir zaman dolaylı sağlayıcının kimliği).
Adı | Tür | Zorunlu | Açıklama |
---|---|---|---|
lineItemNumber | int | Yes | Koleksiyondaki her satır öğesi, 0'dan 1 sayısına kadar sayarak benzersiz bir satır numarası alır. |
offerId | string | Yes | Teklif tanımlayıcısı. Teklifin kullanılabilirliğini doğru segment için sağladığından emin olun. |
subscriptionId | Dize | Hayır | Abonelik tanımlayıcısı. |
parentSubscriptionId | Dize | Hayır | isteğe bağlı. Bir eklenti teklifindeki üst aboneliğin kimliği. Yalnızca PATCH için geçerlidir. |
friendlyName | Dize | Hayır | isteğe bağlı. Belirsizliğe yardımcı olmak için iş ortağı tarafından tanımlanan aboneliğin kolay adı. |
quantity | int | Yes | Lisans tabanlı abonelik için lisans sayısı. |
customTermEndDate | DateTime | Hayır | Yeni aboneliğin ilk faturalama döneminin bitiş tarihi. |
partnerIdOnRecord | Dize | Hayır | Dolaylı bir sağlayıcı dolaylı kurumsal 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. |
provisioningContext | Sözlük<dizesi, dize> | Hayır | Katalogdaki bazı öğeler için sağlama için gereken bilgiler. SKU'daki provisioningVariables özelliği, katalogdaki belirli öğeler için hangi özelliklerin gerekli olduğunu gösterir. |
bağlantılar | OrderLineItemLinks | Hayır | Salt okunur. Sipariş satırı öğesine karşılık gelen kaynak bağlantıları. |
öznitelikler | ResourceAttributes | Hayır | OrderLineItem öğesine karşılık gelen meta veri öznitelikleri. |
renewsTo | Nesneler dizisi | Hayır | RenewsTo kaynakları dizisi. |
AttestationAccepted | ikili | Hayır | Teklif veya sku koşullarının sözleşmesini gösterir. Yalnızca SkuAttestationProperties veya OfferAttestationProperties enforceAttestation değerinin True olduğu teklifler veya sku'lar için gereklidir. |
AdditionalPartnerIdsOnRecord | String | Hayır | Dolaylı bir sağlayıcı dolaylı kurumsal bayi adına bir sipariş verildiğinde, bu alanı yalnızca Ek dolaylı satıcının İş Ortağı Kimliği ile doldurun (hiçbir zaman dolaylı sağlayıcının kimliği değildir). 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. |
Yenilenenler
Bu tabloda istek gövdesindeki RenewsTo özellikleri açıklanmaktadır.
Özellik | Type | Zorunlu | Açıklama |
---|---|---|---|
termDuration | Dize | Hayır | Yenileme döneminin süresinin ISO 8601 gösterimi. Desteklenen geçerli değerler P1M (1 ay) ve P1Y (1 yıl) değerleridir. |
İ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"
}
}