Iş Ortağı Merkezi API 'Lerini kullanarak bir müşteri için sipariş oluşturma
Uygulama hedefi: Iş Ortağı Merkezi | 21Vianet tarafından işletilen iş ortağı Merkezi | Microsoft Cloud for US Government için iş ortağı Merkezi
Azure ayrılmış VM örneği ürünlerinin bir sırası oluşturmak için yalnızca şu şekilde geçerlidir:
- İş Ortağı Merkezi
şu anda satım için kullanılabilir olan bilgiler hakkında bilgi için Bulut Çözümü Sağlayıcısı programındaki iş ortağı tekliflerikonusuna bakın.
Önkoşullar
Iş ortağı merkezi kimlik doğrulamasındaaçı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 Iş Ortağı Merkezi panosundabulabilirsiniz. Iş Ortağı Merkezi menüsünden CSP ' yi ve ardından müşteriler' i seçin. Müşteri listesinden müşteriyi seçin ve ardından Hesap' ı seçin. 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ĞI () ile aynıdırcustomer-tenant-id.Bir teklif tanımlayıcısı.
C#
Bir müşteri için sipariş oluşturmak için:
Bir Order nesnesi örneği oluşturun ve müşteriyi kaydetmek Için Referencecustomerıd özelliğini müşteri kimliği olarak ayarlayın.
Orderlineıtem nesnelerinin bir listesini oluşturun ve listeyi Order 's LineItems özelliğine atayın. Her sipariş satırı öğesi, bir teklifin satın alma bilgilerini içerir. En az bir sipariş satırı öğesine sahip olmanız gerekir.
Sipariş işlemlerine yönelik bir arabirim edinin. İlk olarak, müşteriyi tanımlamak için ıaggregatepartner. Customers. Byıd YÖNTEMINI Müşteri kimliğiyle çağırın. Sonra, Orders özelliğinden arabirimi alın.
Create veya createasync metodunu çağırın ve Order nesnesini geçirin.
Kanıtlamayı tamamlayıp ek satıcıları dahil etmek için aşağıdaki örnek Istek ve yanıt örneklerine 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": "fcddfa52-1da8-4529-d347-50ea51e1e7be",
"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", "5198C069-3DAA-403A-8660-5BE11BFD12EE" },
{ "scope", "shared" },
{ "duration", "3Years" }
}
}
}
};
var createdOrder = partnerOperations.Customers.ById(customerId).Orders.Create(order);
Örnek: konsol test uygulaması. Project: iş ortağı merkezi SDK örnekleri sınıfı: createorder. cs
REST isteği
İstek sözdizimi
| Yöntem | İstek URI'si |
|---|---|
| YAYINLA | {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 | Gerekli | Açıklama |
|---|---|---|---|
| müşteri kimliği | string | Yes | Müşteriyi tanımlayan bir GUID biçimli müşteri kimliği. |
İstek üst bilgileri
Daha fazla bilgi için bkz. Iş ortağı MERKEZI Rest üstbilgileri.
İstek gövdesi
Sipariş
Bu tablo, istek gövdesindeki sıra özelliklerini açıklar.
| Özellik | Tür | Gerekli | Açıklama |
|---|---|---|---|
| kimlik | dize | No | Siparişin başarıyla oluşturulması sırasında sağlanan bir sipariş tanımlayıcısı. |
| Referencecustomerıd | dize | No | Müşteri tanımlayıcısı. |
| Bilimlingcycle | dize | No | Ortağın bu sipariş için faturalandırılabileceği sıklığı belirtir. Desteklenen değerler, BillingCycleTypeiçinde bulunan üye adlarıdır. "Aylık" veya "OneTime" varsayılan olarak sıralı oluşturma. Bu alan, siparişin başarıyla oluşturulmasından sonra uygulanır. |
| LineItems | Orderlineıtem kaynakları dizisi | Yes | Müşterinin miktarı dahil satın aldığı tekliflerinin listesi. |
| currencyCode | dize | No | Salt okunur. Sipariş yerleştirilirken kullanılan para birimi. Siparişin başarıyla oluşturulmasından sonra uygulandı. |
| creationDate | datetime | No | Salt okunur. Siparişin oluşturulduğu tarih ve saat biçimi. Siparişin başarıyla oluşturulmasından sonra uygulandı. |
| durum | dize | No | Salt okunur. Siparişin durumu. Desteklenen değerler Orderstatusiçinde bulunan üye adlarıdır. |
| Köprü | OrderLinks | No | Sıraya karşılık gelen kaynak bağlantıları. |
| öznitelikler | Resourceattributes | No | Order'a karşılık gelen meta veri öznitelikleri. |
| PartnerOnRecordAttestationAccepted | Boole | Yes | Doğrulama tamamlanmasını onaylar |
OrderLineItem
Bu tablo, istek gövdesinin OrderLineItem özelliklerini açıklar.
Not
partnerIdOnRecord yalnızca dolaylı bir sağlayıcı dolaylı kurumsal bayi adına sipariş verdiklerinde sağlanmalıdır. Yalnızca dolaylı kurumsal bayinin Microsoft İş Ortağı Ağı kimliğini depolamak için kullanılır (hiçbir zaman dolaylı sağlayıcının kimliği).
| Ad | Tür | Gerekli | Açıklama |
|---|---|---|---|
| lineItemNumber | int | Yes | Koleksiyonda yer alan her satır öğesi benzersiz bir satır numarası alır ve 0 ile 1 arasında bir sayıya kadar sayar. |
| offerId | string | Yes | Teklif tanımlayıcısı. |
| subscriptionId | dize | No | Abonelik tanımlayıcısı. |
| parentSubscriptionId | dize | No | İsteğe bağlı. Eklenti teklifinde üst aboneliğin kimliği. Yalnızca PATCH için geçerlidir. |
| Friendlyname | dize | No | İsteğe bağlı. Karartmanıza yardımcı olmak için iş ortağı tarafından tanımlanan aboneliğin kolay adı. |
| miktar | int | Yes | Lisans tabanlı bir aboneliğin lisans sayısı. |
| partnerIdOnRecord | dize | No | Dolaylı sağlayıcı dolaylı bir kurumsal bayi adına sipariş verdiylerinde, bu alanı yalnızca dolaylı kurumsal bayinin MPN kimliğiyle (dolaylı sağlayıcının kimliği hiçbir zaman) doldurmak. Bu, teşvikler için doğru hesaplamayı sağlar. |
| provisioningContext | Sözlük < dizesi, dize> | No | 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ı | OrderLineItemLinks | No | Salt okunur. Sipariş satırı öğesine karşılık gelen kaynak bağlantıları. |
| öznitelikler | Resourceattributes | No | OrderLineItem'a karşılık gelen meta veri öznitelikleri. |
| renewsTo | Nesne dizisi | No | RenewsTo kaynakları dizisi. |
| AttestationAccepted | bool | No | Teklif veya sku koşullarının sözleşmeyi gösterir. Yalnızca SkuAttestationProperties veya OfferAttestationProperties enforceAttestation true olan teklifler veya sku'lar için gereklidir. |
| AdditionalPartnerIdsOnRecord | Dize | No | Dolaylı sağlayıcı dolaylı bir kurumsal bayi adına sipariş verdiylerinde, bu alanı yalnızca Ek dolaylı kurumsal bayinin MPN kimliğiyle (dolaylı sağlayıcının kimliği hiçbir zaman) doldurmak. 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 içinde işlem yapılan iş ortakları için geçerlidir. |
RenewsTo
Bu tabloda istek gövdesinin RenewsTo özellikleri açık edilmektedir.
| Özellik | Tür | Gerekli | Açıklama |
|---|---|---|---|
| termDuration | dize | No | Yenileme 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": "3D5ECED6-1151-44C7-AEE6-70A4BB725666",
"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 Sipariş kaynağı döndürür.
Sipariş bir veya daha fazla abonelik içeriyorsa, ilgili abonelik kimliği değerleri YALNıZCA ILGILI abonelikler API çağrısı zamanında sağlandı ise REST yanıtta görünür. Abonelikleri sağlama zaman uyumsuz olarak gerçekleşir ve bu nedenle Sipariş Oluştur çağrısının REST yanıtını kullanarak abonelik kimliği değerleri her zaman görünür durumda olmayacaktır. Ancak, ilgili abonelikler sağlandıktan sonra abonelik kimliği değerlerine Siparişleri Al ve Kimlike Göre Sipariş Al API çağrıları aracılığıyla erişilebilir.
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 201 Created
Content-Length: 788
Content-Type: application/json; charset=utf-8
MS-CorrelationId: b593cbb7-b358-4b31-81fc-e60b9c277a7f
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"
}
}