Dolaylı satıcı müşterisi için bir sipariş oluşturma

Dolaylı bir satıcı müşterisi için sipariş oluşturma.

Önkoşullar

  • Iş ortağı merkezi kimlik doğrulamasındaaçıklandığı gibi kimlik bilgileri. Bu senaryo yalnızca 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ır customer-tenant-id .

  • Satın alınacak öğenin teklif tanımlayıcısı.

  • Dolaylı Bayi kiracı tanımlayıcısı.

C#

Dolaylı bir satıcının müşterisi için sipariş oluşturmak için:

  1. Oturum açmış iş ortağıyla ilişkisi olan dolaylı satıcıların bir koleksiyonunu alın.

  2. Koleksiyonda dolaylı satıcı KIMLIĞIYLE eşleşen öğeye yerel bir değişken alın. Bu adım, siparişi oluştururken satıcının Mpnıd özelliğine erişmenize yardımcı olur.

  3. Bir Order nesnesi örneği oluşturun ve müşteriyi kaydetmek Için Referencecustomerıd özelliğini müşteri tanımlayıcısı olarak ayarlayın.

  4. 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. Her bir satır öğesinde Partneridonrecord özelliğini dolaylı satıcının MPN kimliğiyle doldurduğunuzdan emin olun. En az bir sipariş satırı öğesine sahip olmanız gerekir.

  5. Müşteriyi tanımlamak için müşteri KIMLIĞIYLE ıaggregatepartner. Customers. Byıd yöntemini çağırarak işlemleri sipariş etmek için bir arabirim edinin ve ardından Orders özelliğinden arabirimi alın.

  6. Siparişi oluşturmak için Create veya createasync metodunu çağırın.

C# örneği

// IAggregatePartner partnerOperations;
// string customerId;
// string offerId;
// string indirectResellerId;

// Get the indirect resellers with a relationship to the signed-in partner.
var indirectResellers = partnerOperations.Relationships.Get(PartnerRelationshipType.IsIndirectCloudSolutionProviderOf);

// Find the matching reseller in the collection.
var selectedIndirectReseller = (indirectResellers != null && indirectResellers.Items.Any()) ?
    indirectResellers.Items.FirstOrDefault(reseller => reseller.Id.Equals(indirectResellerId, StringComparison.OrdinalIgnoreCase)) :
    null;

// Prepare the order and populate the PartnerIdOnRecord with the reseller's Microsoft Partner Network Id.
var order = new Order()
{
    ReferenceCustomerId = customerId,
    LineItems = new List<OrderLineItem>()
    {
        new OrderLineItem()
        {
            OfferId = offerId,
            FriendlyName = "New offer purchase.",
            Quantity = 5,
            PartnerIdOnRecord = selectedIndirectReseller != null ? selectedIndirectReseller.MpnId : null
        }
    }
};

// Place the order.
var createdOrder = partnerOperations.Customers.ById(customerId).Orders.Create(order);

örnek: konsol test uygulamasıProject: iş ortağı merkezi SDK örnekleri sınıfı: placeorderforcustomer. 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 GUID biçimli dize.

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

Ad 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 string Yes Müşteri tanımlayıcısı.
Bilimlingcycle dize No Bu sipariş için ortağın faturalandırılma sıklığı. Varsayılan değer "Monthly" olur ve siparişin başarıyla oluşturulması üzerine uygulanır. Desteklenen değerler, BillingCycleTypeiçinde bulunan üye adlarıdır. Note: yıllık faturalandırma özelliği henüz genel kullanıma sunulmamıştır. Yıllık faturalandırmaya yönelik destek yakında kullanıma sunulacak.
LineItems nesne dizisi Yes Orderlineıtem kaynakları dizisi.
creationDate dize No Siparişin oluşturulduğu tarih ve saat biçimi. Siparişin başarıyla oluşturulmasından sonra uygulandı.
öznitelikler object No "ObjectType": "Order" içerir.

Orderlineıtem

Bu tablo, istek gövdesinde Orderlineıtem özelliklerini açıklar.

Ad Tür Gerekli Açıklama
Lineıtemnumber int Yes Koleksiyondaki her bir satır öğesi, 0 ' dan say-1 ' e kadar sayarak benzersiz bir satır numarası alır.
OfferId string Yes Teklif tanımlayıcısı.
subscriptionId dize No Abonelik tanımlayıcısı.
Parentsubscriptionıd dize No İsteğe bağlı. Bir eklenti teklifinde üst aboneliğin KIMLIĞI. Yalnızca düzeltme eki için geçerlidir.
friendlyName dize No İsteğe bağlı. Belirsizliği ortadan kaldırmaya yardımcı olmak için iş ortağı tarafından tanımlanan aboneliğin kolay adı.
miktar int Yes Lisans tabanlı abonelik için lisans sayısı.
partnerIdOnRecord dize No Dolaylı bir sağlayıcı dolaylı bir satıcı adına bir sipariş yerleştirirse, bu alanı yalnızca dolaylı satıcının MPN kimliğiyle doldurun (hiçbir zaman dolaylı sağlayıcının kimliği değildir). Bu, teşvikleri için doğru hesaplamayı sağlar. Satıcı MPN KIMLIĞI sağlama hatası, siparişin başarısız olmasına neden olmaz. Ancak, satıcı kaydedilmez ve bir sonuç olarak hesaplamalar satışı içermez.
öznitelikler object No "ObjectType": "Orderlineıtem" içerir.

İstek örneği

POST https://api.partnercenter.microsoft.com/v1/customers/c501c3c4-d776-40ef-9ecf-9cefb59442c1/orders HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 02109f46-3ff2-4be4-9f37-b2eb6d58d542
MS-CorrelationId: 85195ae6-3de5-4978-abd4-7be2fbfe4c84
X-Locale: en-US
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 410
Expect: 100-continue

{
    "Id": null,
    "ReferenceCustomerId": "c501c3c4-d776-40ef-9ecf-9cefb59442c1",
    "BillingCycle": "unknown",
    "LineItems": [{
            "LineItemNumber": 0,
            "OfferId": "DB2E705F-B82A-4024-A3D5-D88E12F2DB35",
            "SubscriptionId": null,
            "ParentSubscriptionId": null,
            "FriendlyName": "New offer purchase.",
            "Quantity": 5,
            "PartnerIdOnRecord": "4847383",
            "Attributes": {
                "ObjectType": "OrderLineItem"
            }
        }
    ],
    "CreationDate": null,
    "Attributes": {
        "ObjectType": "Order"
    }
}

REST yanıtı

Başarılı olursa, yanıt gövdesi doldurulmuş sipariş kaynağını içerir.

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. Partner Center hata kodları.

Yanıt örneği

HTTP/1.1 201 Created
Content-Length: 831
Content-Type: application/json; charset=utf-8
MS-CorrelationId: 85195ae6-3de5-4978-abd4-7be2fbfe4c84
MS-RequestId: 02109f46-3ff2-4be4-9f37-b2eb6d58d542
MS-CV: Nd3Oum/L5EywtKQK.0
MS-ServerId: 020021921
Date: Mon, 10 Apr 2017 23:02:24 GMT

{
    "id": "3eddcac6-63b2-4c40-b0b6-f47e18301492",
    "referenceCustomerId": "c501c3c4-d776-40ef-9ecf-9cefb59442c1",
    "billingCycle": "monthly",
    "lineItems": [{
            "lineItemNumber": 0,
            "offerId": "DB2E705F-B82A-4024-A3D5-D88E12F2DB35",
            "subscriptionId": "42226ED6-070A-4E0F-B80C-4CDFB3E97AA7",
            "friendlyName": "New offer purchase.",
            "quantity": 5,
            "partnerIdOnRecord": "4847383",
            "links": {
                "subscription": {
                    "uri": "/customers/c501c3c4-d776-40ef-9ecf-9cefb59442c1/subscriptions/42226ED6-070A-4E0F-B80C-4CDFB3E97AA7",
                    "method": "GET",
                    "headers": []
                }
            }
        }
    ],
    "creationDate": "2017-04-10T16:02:25.983-07:00",
    "links": {
        "self": {
            "uri": "/customers/c501c3c4-d776-40ef-9ecf-9cefb59442c1/orders/3eddcac6-63b2-4c40-b0b6-f47e18301492",
            "method": "GET",
            "headers": []
        }
    },
    "attributes": {
        "etag": "eyJpZCI6IjNlZGRjYWM2LTYzYjItNGM0MC1iMGI2LWY0N2UxODMwMTQ5MiIsInZlcnNpb24iOjF9",
        "objectType": "Order"
    }
}