Müşteri siparişiyle sepet oluşturma
Şunlar için geçerlidir: İş Ortağı Merkezi | 21Vianet tarafından işletilen İş Ortağı Merkezi | ABD Kamu için Microsoft Bulut İş Ortağı Merkezi
Sepete müşteri için sipariş ekleyebilirsiniz. Şu anda satışa sunulanlar hakkında daha fazla bilgi için bkz. Bulut Çözümü Sağlayıcısı programında iş ortağı teklifleri.
Not
Sepetlerin süresi ilk oluşturma işleminden 7 gün sonra dolar.
Ö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.
C#
Müşteriye sipariş oluşturmak için:
Cart nesnesinin örneğini oluşturma.
CartLineItem nesnelerinin listesini oluşturun ve listeyi sepetin LineItems özelliğine atayın. Her sepet satırı öğesi, bir ürünün satın alma bilgilerini içerir. En az bir sepet satırı öğeniz olmalıdır.
Müşteriyi tanımlamak için müşteri kimliğiyle IAggregatePartner.Customers.ById yöntemini çağırarak ve ardından Cart özelliğinden arabirimi alarak sepet işlemlerine yönelik bir arabirim alın.
Sepeti oluşturmak için Create veya CreateAsync yöntemini çağırın.
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": [
{
"id": 0,
"catalogItemId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
"quantity": 1,
"billingCycle": "monthly",
"termDuration": "P1M",
"renewsTo": null,
"provisioningContext": {},
"customTermEndDate": "2022-02-19T00:00:00Z"
},
{
"id": 1,
"catalogItemId": "CFQ7TTC0LFLS:0002:CFQ7TTC0KDLJ",
"quantity": 2,
"billingCycle": "monthly",
"termDuration": "P1Y",
"participants": [
{
"key": "transaction_reseller",
"value": "5357564"
},
{
"key": "additional_transaction_reseller",
"value": "517285"
},
{
"key": "additional_transaction_reseller",
"value": "5357563"
}
]
}
]
}
Yanıt örneği
{
"id": "3e22b548-647d-4223-9675-1fcb6cb57665",
"creationTimestamp": "2021-08-18T17:29:52.3517492Z",
"lastModifiedTimestamp": "2021-08-18T17:29:52.3517553Z",
"expirationTimestamp": "2021-08-25T17:30:11.2406416Z",
"lastModifiedUser": "da62a0dc-35e9-4601-b48e-a047bd3ec7c1",
"status": "Active",
"lineItems": [
{
"id": 0,
"catalogItemId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
"quantity": 1,
"currencyCode": "USD",
"billingCycle": "monthly",
"termDuration": "P1M",
"customTermEndDate": "2022-02-19T00:00:00Z";
"provisioningContext": {},
"orderGroup": "0"
},
{
"id": 1,
"catalogItemId": "CFQ7TTC0LFLS:0002:CFQ7TTC0KDLJ",
"quantity": 2,
"currencyCode": "USD",
"billingCycle": "monthly",
"termDuration": "P1Y",
"participants": [
{
"key": "transaction_reseller",
"value": "5357564"
},
{
"key": "additional_transaction_reseller",
"value": "517285"
},
{
"key": "additional_transaction_reseller",
"value": "5357563"
}
],
"provisioningContext": {},
"orderGroup": "0"
}
],
"links": {
"self": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/carts/3e22b548-647d-4223-9675-1fcb6cb57665",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Cart"
}
}
C# örneği
// IAggregatePartner partnerOperations;
// string customerId;
// string subscriptionId;
var cart = new Cart()
{
LineItems = new List<CartLineItem>()
{
new CartLineItem()
{
/* Microsoft Azure Subscription */
Id = 0,
CatalogItemId = "MS-AZR-0145P",
Quantity = 1,
BillingCycle = BillingCycleType.Monthly,
TermDuration = "P1Y"
},
new CartLineItem()
{
/* Azure Reserved Instance */
Id = 1,
CatalogItemId = "DZH318Z0BQ36:004G:DZH318Z08C0S",
Quantity = 1,
BillingCycle = BillingCycleType.OneTime,
TermDuration = "P1Y",
ProvisioningContext = new Dictionary<string, string>
{
{ "subscriptionId", subscriptionId },
{ "scope", "shared" }
}
},
new CartLineItem()
{
/* Azure Reserved Instance */
Id = 2,
CatalogItemId = "DZH318Z0BQ36:004J:DZH318Z08B8X",
Quantity = 1,
BillingCycle = BillingCycleType.OneTime,
TermDuration = "P3Y",
ProvisioningContext = new Dictionary<string, string>
{
{ "subscriptionId", subscriptionId },
{ "scope", "shared" }
}
},
new CartLineItem()
{
/* Perpetual Software */
Id = 3,
CatalogItemId = "DG7GMGF0DWM3:0002:DG7GMGF0DT1M",
Quantity = 1,
BillingCycle = BillingCycleType.OneTime
},
new CartLineItem()
{
/* SaaS */
Id = 4,
CatalogItemId = "DZH318Z0BXWC:0002:DZH318Z0BMRV",
Quantity = 1,
BillingCycle = BillingCycleType.Monthly,
TermDuration = "P1M"
},
new CartLineItem()
{
/* SaaS Free Trial */
Id = 5,
CatalogItemId = "DZH318Z0C0WF:0001:DZH318Z0BP69",
Quantity = 10,
BillingCycle = BillingCycleType.None,
TermDuration = "P1M",
RenewsTo = new RenewsTo
{
TermDuration = "P1Y"
}
}
}
};
cart = partnerOperations.Customers.ById(customerId).Carts.Create(cart);
Java
İş Ortağı Merkezi Java SDK'sı, İş Ortağı Merkezi kaynaklarını yönetmek için kullanılabilir. İş ortağı topluluğu tarafından sürdürülen ve Microsoft tarafından resmi olarak desteklenmeyen açık kaynaklı bir projedir. Bir sorunla karşılaşırsanız topluluktan yardım alabilir veya GitHub'da bir sorun açabilirsiniz.
Müşteriye sipariş oluşturmak için:
Cart nesnesinin örneğini oluşturma.
CartLineItem nesnelerinin listesini oluşturun ve listeyi sepetin satır öğelerine atayın. Her sepet satırı öğesi, bir ürünün satın alma bilgilerini içerir. En az bir sepet satırı öğeniz olmalıdır.
Müşteriyi tanımlamak için müşteri kimliğiyle IAggregatePartner.getCustomers().byId işlevini çağırıp getCart işlevinden arabirimi alarak sepet işlemlerine yönelik bir arabirim alın.
Sepeti oluşturmak için create işlevini çağırın.
Java örneği
// IAggregatePartner partnerOperations;
// String customerId;
// String subscriptionId;
// String catalogItemId;
CartLineItem lineItem = new CartLineItem();
lineItem.setBillingCycle(BillingCycleType.OneTime);
lineItem.setCatalogItemId(catalogItemId);
lineItem.setFriendlyName("Sample RI Purchase");
lineItem.setQuantity(1);
Map<String, String> provisioningContext = new HashMap<String,String>();
provisioningContext.put("duration", "3Years");
provisioningContext.put("scope", "shared");
provisioningContext.put("subscriptionId", subscriptionId);
lineItem.setProvisioningContext(provisioningContext);
List<CartLineItem> lineItemList = new ArrayList<CartLineItem>();
lineItemList.add(lineItem);
Cart cart = new Cart();
cart.setLineItems(lineItemList);
Cart cartCreated = partnerOperations.getCustomers().byId(customerId).getCarts().create(cart);
PowerShell
İş Ortağı Merkezi PowerShell modülü, İş Ortağı Merkezi kaynaklarını yönetmek için kullanılabilir. İş ortağı topluluğu tarafından sürdürülen ve Microsoft tarafından resmi olarak desteklenmeyen açık kaynaklı bir projedir. Bir sorunla karşılaşırsanız topluluktan yardım alabilir veya GitHub'da bir sorun açabilirsiniz.
Müşteriye sipariş oluşturmak için:
Cart nesnesinin örneğini oluşturma.
CartLineItem nesnelerinin listesini oluşturun ve listeyi sepetin satır öğelerine atayın. Her sepet satırı öğesi, bir ürünün satın alma bilgilerini içerir. En az bir sepet satırı öğeniz olmalıdır.
Sepeti oluşturmak için New-PartnerCustomerCart komutunu yürütür.
# $customerId
# $subscriptionId
# $catalogItemId
$lineItem = New-Object -TypeName Microsoft.Store.PartnerCenter.PowerShell.Models.Carts.PSCartLineItem
$lineItem.BillingCycle = 'OneTime'
$lineItem.CatalogItemId = $catalogItemId
$lineItem.FriendlyName = 'Sample RI Purchase'
$lineItem.ProvisioningContext.Add('duration', '1Year')
$lineItem.ProvisioningContext.Add('scope', 'shared')
$lineItem.ProvisioningContext.Add('subscriptionId', $subsciptionId)
$lineItem.Quantity = 10
New-PartnerCustomerCart -CustomerId $customerId -LineItems $lineItem
REST isteği
İstek söz dizimi
Metot | İstek URI'si |
---|---|
POST | {baseURL}/v1/customers/{customer-id}/carts HTTP/1.1 |
URI parametresi
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
Bu tabloda istek gövdesindeki Sepet özellikleri açıklanmaktadır.
Özellik | Type | Zorunlu | Açıklama |
---|---|---|---|
id | dize | Hayır | Sepetin başarıyla oluşturulmasından sonra sağlanan bir sepet tanımlayıcısı. |
creationTimeStamp | DateTime | Hayır | Sepetin oluşturulduğu tarih, tarih-saat biçiminde. Sepet başarıyla oluşturulduktan sonra uygulanır. |
lastModifiedTimeStamp | DateTime | Hayır | Sepetin son güncelleştirildiği tarih( tarih-saat biçiminde). Sepet başarıyla oluşturulduktan sonra uygulanır. |
expirationTimeStamp | DateTime | Hayır | Sepetin bitiş tarihi( tarih-saat biçiminde). Sepet başarıyla oluşturulduktan sonra uygulanır. |
lastModifiedUser | Dize | Hayır | Sepeti son güncelleştiren kullanıcı. Sepet başarıyla oluşturulduktan sonra uygulanır. |
lineItems | Nesneler dizisi | Yes | CartLineItem kaynakları dizisi. |
PartnerOnRecordAttestationAccepted | Boolean | Yes | Kanıtlamanın tamamlanmasını onaylar |
Bu tabloda istek gövdesindeki CartLineItem özellikleri açıklanmaktadır.
Özellik | Type | Zorunlu | Açıklama |
---|---|---|---|
id | dize | Hayır | Sepet satırı öğesi için benzersiz tanımlayıcı. Sepet başarıyla oluşturulduktan sonra uygulanır. |
catalogId | string | Yes | Katalog öğesi tanımlayıcısı. Katalog öğesinin kullanılabilirliğinin doğru segment için olduğundan emin olun. |
friendlyName | Dize | Hayır | isteğe bağlı. Belirsizliği gidermek için iş ortağı tarafından tanımlanan öğenin kolay adı. |
promotionId | Dize | Hayır | isteğe bağlı. Çoğu NCE promosyonu otomatik olarak uygulanır, ancak isteğe bağlı promosyonların (Buluta Köprü 2 gibi) bir sepet satırı öğesine uygulanması için iş ortaklarının sepete ekleme isteğine promosyon kimliğini dahil etmesi gerekir. |
quantity | int | Yes | Lisans veya örnek sayısı. |
currencyCode | Dize | Hayır | Para birimi kodu. |
billingCycle | Object | Yes | Geçerli dönem için ayarlanan faturalama dönemi türü. |
customTermEndDate | DateTime | Hayır | Yeni aboneliği birlikte sonlandırmak istediğiniz mevcut aboneliğin bitiş tarihi. |
Katılımcı | Nesne Dizesi çiftlerinin listesi | Hayır | Satın alma işlemindeki Kayıtlı İş Ortağı Kimliği (İş Ortağı Kimliği) koleksiyonu. |
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. |
orderGroup | Dize | Hayır | Hangi öğelerin bir araya yerleştirilebileceğini belirten bir grup. |
error | Object | Hayır | Bir hata varsa sepet oluşturulduktan sonra uygulanır. |
renewsTo | Nesneler dizisi | Hayır | RenewsTo kaynakları dizisi. |
AttestationAccepted | Boolean | 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. |
transaction_reseller | String | 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. |
additional_transaction_reseller | 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. |
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 /v1/customers/d6bf25b7-e0a8-4f2d-a31b-97b55cfc774d/carts HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 4fa6dad6-a89f-4875-8247-8294a10ae1cf
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
MS-PartnerCenter-Client: Partner Center .NET SDK
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 496
Expect: 100-continue
{
"lineItems": [
{
/* Microsoft Azure Subscription */
"id": 0,
"catalogItemId": "MS-AZR-0145P",
"quantity": 1,
"billingCycle": "monthly",
"termDuration": "P1Y"
},
{
/* Azure Reserved Instance */
"id": 1,
"catalogItemId": "DZH318Z0BQ36:004G:DZH318Z08C0S",
"quantity": 1,
"billingCycle": "one_time",
"termDuration": "P1Y",
"provisioningContext": {
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"scope": "shared"
}
},
{
/* Azure Reserved Instance */
"id": 2,
"catalogItemId": "DZH318Z0BQ36:004J:DZH318Z08B8X",
"quantity": 1,
"billingCycle": "one_time",
"termDuration": "P3Y",
"provisioningContext": {
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"scope": "single"
}
},
{
/* Perpetual Software */
"id": 3,
"catalogItemId": "DG7GMGF0DWTL:0001:DG7GMGF0DSFM",
"quantity": 1,
"billingCycle": "one_time"
},
{
/* SaaS */
"id": 4,
"catalogItemId": "DZH318Z0BXWC:0002:DZH318Z0BMRV",
"quantity": 1,
"billingCycle": "monthly",
"termDuration": "P1M"
},
{
/* SaaS Free Trial */
"id": 5,
"catalogItemId": "DZH318Z0C0WF:0001:DZH318Z0BP69",
"quantity": 10,
"billingCycle": "none",
"termDuration": "P1M",
"renewsTo": {
"termDuration": "P1Y"
}
}
]
}
Önemli
Haziran 2023 itibarıyla en son İş Ortağı Merkezi .NET SDK sürümü 3.4.0 arşivlenmiştir. SDK sürümünü, yararlı bilgiler içeren bir benioku dosyasıyla birlikte GitHub'dan indirebilirsiniz.
İş ortaklarının İş Ortağı Merkezi REST API'lerini kullanmaya devam etmesi teşvik edilir.
REST yanıtı
Başarılı olursa, bu yöntem yanıt gövdesinde doldurulan Cart kaynağını döndürür.
Yanıt başarısı ve hata kodları
Her yanıt, başarılı veya başarısız olduğunu ve hata ayıklama bilgilerini gösteren bir HTTP durum koduyla 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 . Hata Kodları.
Yanıt örneği
HTTP/1.1 201 Created
Content-Length: 764
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 4fa6dad6-a89f-4875-8247-8294a10ae1cf
X-Locale: en-US,en-US
MS-CV: sF/wRa2ih0CzbABc.0
MS-ServerId: 000001
Date: Thu, 15 Mar 2018 17:15:01 GMT
{
"id": "3655b1a0-b1c9-4268-9824-577fdbc4d0be",
"creationTimestamp": "2019-01-16T00:45:41.6062996Z",
"lastModifiedTimestamp": "2019-01-16T00:45:41.6062996Z",
"expirationTimestamp": "2019-01-16T01:00:54.4188497Z",
"lastModifiedUser": "1824b7fc-2fac-4478-b177-66823c40ab75",
"status": "Active",
"lineItems": [
{
"id": 0,
"catalogItemId": "MS-AZR-0145P",
"quantity": 1,
"currencyCode": "USD",
"billingCycle": "monthly",
"termDuration": "P1Y",
"orderGroup": "OMS-0"
},
{
"id": 1,
"catalogItemId": "DZH318Z0BQ36:004G:DZH318Z08C0S",
"quantity": 1,
"currencyCode": "USD",
"billingCycle": "one_time",
"termDuration": "P1Y",
"provisioningContext": {
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"scope": "shared"
},
"orderGroup": "0"
},
{
"id": 2,
"catalogItemId": "DZH318Z0BQ36:004J:DZH318Z08B8X",
"quantity": 1,
"currencyCode": "USD",
"billingCycle": "one_time",
"termDuration": "P3Y",
"provisioningContext": {
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"scope": "shared"
},
"orderGroup": "0"
},
{
"id": 3,
"catalogItemId": "DG7GMGF0DWM3:0002:DG7GMGF0DT1M",
"quantity": 1,
"currencyCode": "USD",
"billingCycle": "one_time",
"orderGroup": "0"
},
{
"id": 4,
"catalogItemId": "DZH318Z0BXWC:0002:DZH318Z0BMRV",
"quantity": 1,
"currencyCode": "USD",
"billingCycle": "monthly",
"termDuration": "P1M",
"orderGroup": "1"
},
{
"id": 5,
"catalogItemId": "DZH318Z0C0WF:0001:DZH318Z0BP69",
"quantity": 10,
"currencyCode": "USD",
"billingCycle": "none",
"termDuration": "P1M",
"renewsTo": {
"termDuration": "P1Y"
},
"orderGroup": "2"
}
],
"links": {
"self": {
"uri": "/customers/28045616-f6b9-462f-9701-0d89b5e65c44/carts/3655b1a0-b1c9-4268-9824-577fdbc4d0be",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Cart"
}
}
Yeni ticaret lisans tabanlı hizmetler için örnek
Not
Lisans tabanlı hizmetler için yeni ticaret deneyimleri birçok yeni özellik içerir ve tüm Bulut Çözümü Sağlayıcısı (CSP' ler) tarafından kullanılabilir. Daha fazla bilgi için bkz . Yeni ticaret deneyimlerine genel bakış.
İstek örneği
POST /v1/customers/932c4101-dc08-461b-b4c1-75d80e905775/carts HTTP/1.1
Host: api.partnercenter.microsoft.com
Content-Type: application/json
Content-Length: 165
{
"LineItems": [
{
"CatalogItemId":"CFQ7TTC0LFLZ:0002:CFQ7TTC0K4TS",
"Quantity": 1,
"TermDuration": "P1M",
"BillingCycle": "Monthly"
}
]
}
Önemli
Azure planı ve kalıcı yazılım satırı öğeleri termDuration özelliğini desteklemez. Bu tür öğeleri oluştururken bunu dahil etmekten kaçının.
REST yanıtı
Başarılı olursa, bu yöntem yanıt gövdesinde doldurulan Cart kaynağını döndürür.
Yanıt başarısı ve hata kodları
Her yanıt, başarılı veya başarısız olduğunu ve diğer hata ayıklama bilgilerini gösteren bir HTTP durum koduyla 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 . Hata Kodları.
Yanıt örneği
{
"id": "2517c51b-58cd-4abe-87ed-3ab812401ab4",
"creationTimestamp": "2023-07-11T21:16:11.55149Z",
"lastModifiedTimestamp": "2023-07-11T21:16:11.5515713Z",
"expirationTimestamp": "2023-07-18T21:16:17.2480482Z",
"lastModifiedUser": "9db12087-fbc3-481c-8965-73d44ff88e27",
"status": "Active",
"lineItems": [
{
"id": 0,
"catalogItemId": "CFQ7TTC0LF8S:0001:CFQ7TTC0VZW5",
"quantity": 1,
"currencyCode": "USD",
"billingCycle": "monthly",
"termDuration": "P1Y",
"provisioningContext": {},
"orderGroup": "0",
"pricing": {
"listPrice": 30.4,
"discountedPrice": 30.4,
"proratedPrice": 30.4,
"price": 30.4,
"extendedPrice": 364.8
}
}
],
"links": {
"self": {
"uri": "/customers/ebd8b4c2-4069-46a8-bd70-123d6dec3e39/carts/2517c51b-58cd-4abe-87ed-3ab812401ab4",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Cart"
}
}