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ırcustomer-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:
Oturum açmış iş ortağıyla ilişkisi olan dolaylı satıcıların bir koleksiyonunu alın.
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.
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.
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.
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.
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"
}
}