Aracılığıyla paylaş


İş 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:

  1. Order nesnesinin örneğini oluşturun ve müşteriyi kaydetmek için ReferenceCustomerID özelliğini müşteri kimliğine ayarlayın.

  2. 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.

  3. İş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.

  4. Create veya CreateAsync yöntemini çağırın ve Order nesnesini geçirin.

  5. Kanıtlamayı tamamlamak ve diğer kurumsal bayileri dahil etmek 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 dizgi 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 okunabilir. 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

API aracılığıyla bir sepeti doğrularken, satır öğeleri sepete koyulma sırasına göre işlenir. Sipariş, sepette biri promosyon kimliğine sahip, diğeri ise promosyon kimliğine sahip olmayan (örneğin, farklı koşullara sahip) aynı türde iki ürün varsa, yeni teklif kısıtlamaları ile promosyonlara uygunluğu etkileyebilir. Birden çok ürünü satın alıyorsanız, promosyon için uygun olan satır öğelerini ilk olarak sepete yerleştirdiğinizden emin olun.

İ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 kullanılabilirliğinin doğru segment için olduğundan emin olun.
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 Yalnızca okunabilir. 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 diğer kurumsal bayiler için geçerli değildir. Yalnızca en fazla beş Dolaylı Kurumsal Bayi girilebilir. Bu değer yalnızca Avrupa ülkeleri/bölgeleri içinde işlem gören geçerli iş ortaklarıdır.
scheduledNextTermInstructions object Hayır Deneme aboneliği için sonraki dönem yönergelerini tanımlar. İş ortakları, yenileme sırasında ilgili ücretli aboneliğin sahip olduğu termDuration, billingFrequency ve miktar bilgilerini belirtebilir.

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).

Yenilenir

Bu tabloda, Microsoft Market tekliflerinin 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).
ScheduledNextTermInstructions

Bu tabloda, yeni ticaret deneyimi (NCE) lisans tabanlı deneme teklifleri için istek gövdesindeki scheduledNextTermInstructions özellikleri açıklanmaktadır. Hiçbir değer belirtilmezse, deneme sürümleri yıllık süreli, aylık faturalamalı ve 25 lisanslı ücretli aboneliklere dönüştürülür.

Mülk Tür Gerekli Açıklama
ürün array Hayır Deneme aboneliğinin yenileneceği teklifi, ücretli aboneliğin sahip olduğu vade ve faturalama sıklığını belirten bir dizi.
miktar Int Hayır Deneme teklifi yenilendikten sonra ilgili ücretli aboneliğin sahip olduğu lisans miktarı.
Ürün

Bu tabloda, NCE lisans tabanlı deneme teklifleri için istek gövdesindeki productTerm özellikleri açıklanmaktadır. Bu dizide hiçbir değer belirtilmezse, deneme süresi yıllık abonelik ve aylık faturalama ile ücretli aboneliğe yenilenir.

Mülk Tür Gerekli Açıklama
Ürün Kimliği dizgi Hayır Deneme sürümünün yenilendiği ücretli aboneliğin ürününü temsil etmek için biçimlendirilmiş bir GUID.
skuId dizgi Hayır Deneme sürümünün yenilendiği ücretli aboneliğin SKU'sunu temsil etmek için biçimlendirilmiş bir GUID.
availabilityId dizgi Hayır Deneme sürümünün yenilendiği ücretli aboneliğin kullanılabilirliğini temsil etmek için biçimlendirilmiş bir GUID.
billingCycle dizgi Hayır Deneme teklifi yenilendikten sonra ilgili ücretli aboneliğin faturalama sıklığı.
dönem süresi dizgi Hayır Deneme teklifi yenilendikten sonra ilgili ücretli aboneliğin sahip olduğu süre.

İ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
    }
  ]
}
// request example where some renewal values for an NCE license-based trial are specified
http
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: 486
Content-Type: application/json
{
  "lineItems": [
    {
      "id": 0,
      "catalogItemId": "CFQ7TTC0LCHC:0003:CFQ7TTC0XCQC",
      "quantity": 25,
      "currencyCode": "USD",
      "billingCycle": "none",
      "termDuration": "P1M",
      "promotionId": null,
      "provisioningContext": {},
      "customTermEndDate": null,
      "scheduledNextTermInstructions": {
        "product": {
          "billingCycle": "monthly",
          "termDuration": "P1M" 
        }
      }
    }
  ],
  "partnerOnRecordAttestationAccepted": true
}

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ğlandığında 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 daha fazla hata ayıklama bilgisi ile birlikte gelir. Bu kodu, hata türünü ve diğer parametreleri okumak için bir ağ izleme aracı kullanın. Tam liste için bkz. İş Ortağı Merkezi hata kodları.

Yanıt örneği

{
  "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"
    }
}
// response content for an order containing an NCE license-based trial
{
  "id": "99d3777b-61da-4c95-aefa-203c248c4180",
  "creationTimestamp": "2025-02-04T22:22:36.7924103Z",
  "lastModifiedTimestamp": "2025-02-04T22:22:36.7924109Z",
  "expirationTimestamp": "2025-02-11T22:23:34.5190698Z",
  "lastModifiedUser": "b5109661-56c5-45ed-9447-f67463458a97",
  "status": "Active",
  "lineItems": [
    {
      "id": 0,
      "catalogItemId": "CFQ7TTC0LCHC:0003:CFQ7TTC0XCQC",
      "quantity": 25,
      "currencyCode": "USD",
      "billingCycle": "none",
      "termDuration": "P1M",
      "provisioningContext": {},
      "orderGroup": "0",
      "pricing": {
        "listPrice": 0.0,
        "discountedPrice": 0.0,
        "proratedPrice": 0.0,
        "price": 0.0,
        "extendedPrice": 0.0
      },
      "scheduledNextTermInstructions": {
        "product": {
          "productId": "CFQ7TTC0LCHC",
          "skuId": "0002",
          "availabilityId": "CFQ7TTC0XL82",
          "billingCycle": "monthly",
          "termDuration": "P1M"
        },
        "quantity": 25
      }
    }
  ],
  "links": {
    "self": {
      "uri": "/customers/81e78b53-9aa8-44e7-a041-3b15272d8f84/carts/99d3777b-61da-4c95-aefa-203c248c4180",
      "method": "GET",
      "headers": []
    }
  },
  "attributes": {
    "objectType": "Cart"
  }
}