Vytvoření košíku s objednávkou zákazníka
Platí pro: Partnerské centrum | Partnerské centrum provozované společností 21Vianet | Partnerské centrum pro Microsoft Cloud pro státní správu USA
Objednávku pro zákazníka můžete přidat do košíku. Další informace o tom, co je aktuálně k dispozici k prodeji, najdete v tématu Nabídky partnerů v programu Cloud Solution Provider.
Poznámka:
Platnost košíků vyprší 7 dnů od počátečního vytvoření.
Požadavky
Přihlašovací údaje popsané v ověřování v Partnerském centru Tento scénář podporuje ověřování pomocí samostatných přihlašovacích údajů aplikace i aplikace a uživatele.
ID zákazníka (
customer-tenant-id
). Pokud neznáte ID zákazníka, můžete ho vyhledat v Partnerském centru tak , že vyberete pracovní prostor Zákazníci , pak zákazník ze seznamu zákazníků a pak účet. Na stránce Účet zákazníka vyhledejte ID Microsoftu v části Informace o účtu zákazníka. ID Microsoftu je stejné jako ID zákazníka (customer-tenant-id
).
C#
Vytvoření objednávky pro zákazníka:
Vytvoření instance objektu Cart
Vytvořte seznam objektů CartLineItem a přiřaďte seznam vlastnosti LineItems košíku. Každá položka řádku košíku obsahuje informace o nákupu pro jeden produkt. Musíte mít aspoň jednu položku řádku košíku.
Získejte rozhraní pro operace košíku zavoláním metody IAggregatePartner.Customers.ById s ID zákazníka k identifikaci zákazníka a načtením rozhraní z vlastnosti Cart .
Zavolejte metodu Create nebo CreateAsync , která vytvoří košík.
Pokud chcete dokončit ověření identity a zahrnout další prodejce, projděte si následující ukázkové ukázky požadavků a odpovědí:
Ukázka požadavku
{
"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"
}
]
}
]
}
Ukázka odpovědi
{
"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"
}
}
Příklad jazyka C#
// 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
Sadu Java SDK Partnerského centra je možné použít ke správě prostředků Partnerského centra. Jedná se o opensourcový projekt spravovaný komunitou partnerů, který oficiálně nepodporuje Microsoft. Pokud narazíte na problém, můžete získat pomoc od komunity nebo otevřít problém na GitHubu .
Vytvoření objednávky pro zákazníka:
Vytvoření instance objektu Cart
Vytvořte seznam objektů CartLineItem a přiřaďte seznam k řádkovým položkám košíku. Každá položka řádku košíku obsahuje informace o nákupu pro jeden produkt. Musíte mít aspoň jednu položku řádku košíku.
Získejte rozhraní pro operace košíku zavoláním funkce IAggregatePartner.getCustomers().byId s ID zákazníka k identifikaci zákazníka a načtením rozhraní z funkce getCart .
Voláním funkce create vytvořte košík.
Příklad Javy
// 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
Modul PowerShellu v Partnerském centru se dá použít ke správě prostředků Partnerského centra. Jedná se o opensourcový projekt spravovaný komunitou partnerů, který oficiálně nepodporuje Microsoft. Pokud narazíte na problém, můžete získat pomoc od komunity nebo otevřít problém na GitHubu .
Vytvoření objednávky pro zákazníka:
Vytvoření instance objektu Cart
Vytvořte seznam objektů CartLineItem a přiřaďte seznam k řádkovým položkám košíku. Každá položka řádku košíku obsahuje informace o nákupu pro jeden produkt. Musíte mít aspoň jednu položku řádku košíku.
Spuštěním příkazu New-PartnerCustomerCart vytvořte košík.
# $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
Požadavek REST
Syntaxe požadavku
metoda | Identifikátor URI žádosti |
---|---|
POST | {baseURL}/v1/customers/{customer-id}/carts HTTP/1.1 |
Parametr identifikátoru URI
Pomocí následujícího parametru cesty identifikujte zákazníka.
Name | Type | Požadováno | Popis |
---|---|---|---|
ID zákazníka | string | Ano | IDENTIFIKÁTOR GUID naformátovaný id zákazníka, které identifikuje zákazníka. |
Záhlaví žádosti
Další informace najdete v tématu Hlavičky REST Partnerského centra.
Text požadavku
Tato tabulka popisuje vlastnosti košíku v textu požadavku.
Vlastnost | Typ | Požadováno | Popis |
---|---|---|---|
ID | string | No | Identifikátor košíku zadaný při úspěšném vytvoření košíku. |
creationTimeStamp | DateTime | No | Datum vytvoření košíku ve formátu data a času. Použito při úspěšném vytvoření košíku. |
lastModifiedTimeStamp | DateTime | No | Datum poslední aktualizace košíku ve formátu data a času. Použito při úspěšném vytvoření košíku. |
expirationTimeStamp | DateTime | No | Datum vypršení platnosti košíku ve formátu data a času. Použito při úspěšném vytvoření košíku. |
lastModifiedUser | string | No | Uživatel, který naposledy aktualizoval košík. Použito při úspěšném vytvoření košíku. |
lineItems | Pole řetězců | Ano | Pole prostředků CartLineItem . |
PartnerOnRecordAttestationAccepted | Logická hodnota | Ano | Potvrdí dokončení ověření identity. |
Tato tabulka popisuje vlastnosti CartLineItem v textu požadavku.
Vlastnost | Typ | Požadováno | Popis |
---|---|---|---|
ID | string | No | Jedinečný identifikátor položky řádku košíku. Použito při úspěšném vytvoření košíku. |
catalogId | string | Ano | Identifikátor položky katalogu. Ujistěte se, že je dostupnost položky katalogu určená pro správný segment. |
friendlyName | string | No | Nepovinné. Popisný název položky definované partnerem, který pomáhá nejednoznačný. |
promotionId | string | No | Nepovinné. Většina propagačních akcí NCE se automaticky použije, ale u volitelných propagačních akcí (například Bridge to the Cloud 2), které se mají použít u položky řádku košíku, musí partneři do žádosti o přidání do košíku zahrnout ID povýšení. |
množství. | int | Ano | Počet licencí nebo instancí. |
currencyCode | string | No | Kód měny. |
billingCycle | Object | Ano | Typ fakturačního cyklu nastavený pro aktuální období. |
customTermEndDate | DateTime | No | Koncové datum stávajícího předplatného, ke kterému chcete vytvořit nové předplatné. |
účastníci | Seznam párů řetězců objektů | No | Kolekce PartnerId on Record (PartnerID) při nákupu. |
provisioningContext | Řetězec slovníku<, řetězec> | No | Informace potřebné ke zřízení některých položek v katalogu. Vlastnost provisioningVariables v skladové položkách indikuje, které vlastnosti jsou vyžadovány pro konkrétní položky v katalogu. |
orderGroup | string | No | Skupina označující, které položky lze umístit dohromady. |
chyba | Object | No | Pokud dojde k chybě, použije se po vytvoření košíku. |
prodlužuje platnost | Pole řetězců | No | Pole prostředků RenewsTo |
AttestationAccepted | Logický | No | Označuje smlouvu o nabídce nebo podmínkách skladové položky. Vyžaduje se pouze pro nabídky nebo skladové položky, u kterých je SkuAttestationProperties nebo OfferAttestationProperties enforceAttestation true. |
transaction_reseller | Řetězcové | No | Když nepřímý poskytovatel umístí objednávku jménem nepřímého prodejce, vyplňte toto pole pouze ID partnera nepřímého prodejce (nikdy ID nepřímého poskytovatele). Tím se zajistí řádné účtování pobídek. |
additional_transaction_reseller | Řetězcové | No | Když nepřímý zprostředkovatel umístí objednávku jménem nepřímého prodejce, vyplňte toto pole pouze ID partnera dalšího nepřímého prodejce (nikdy ID nepřímého poskytovatele). Pobídky se nevztahují na tyto další prodejce. Je možné zadat maximálně 5 nepřímých prodejců. Jedná se pouze o příslušné partnery, kteří provádí transakce v rámci zemí/oblastí EU/ESVO. |
Tato tabulka popisuje vlastnosti RenewsTo v textu požadavku.
Vlastnost | Typ | Požadováno | Popis |
---|---|---|---|
termDuration | string | No | Vyjádření doby trvání období prodloužení iso 8601. Aktuální podporované hodnoty jsou P1M (1 měsíc) a P1Y (1 rok). |
Příklad požadavku
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"
}
}
]
}
Důležité
Od června 2023 se teď archivuje nejnovější verze sady .NET SDK partnerského centra 3.4.0. Vydání sady SDK si můžete stáhnout z GitHubu spolu se souborem readme, který obsahuje užitečné informace.
Doporučujeme, aby partneři dál používali rozhraní REST API Partnerského centra.
Odpověď REST
Pokud je tato metoda úspěšná, vrátí naplněný prostředek Cart v textu odpovědi.
Kódy úspěšnosti a chyb odpovědi
Každá odpověď obsahuje stavový kód HTTP, který indikuje informace o úspěchu nebo selhání a ladění. Ke čtení tohoto kódu, typu chyby a dalších parametrů použijte nástroj pro trasování sítě. Úplný seznam najdete v tématu Kódy chyb.
Příklad odpovědi
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"
}
}
Příklad nových služeb založených na obchodních licencích
Poznámka:
Nové komerční prostředí pro služby založené na licencích zahrnují mnoho nových funkcí a jsou k dispozici pro všechny poskytovatele cloudových řešení (CSP). Další informace najdete v přehledu nových obchodních prostředí.
Příklad požadavku
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"
}
]
}
Důležité
Řádkové položky plánu Azure a časově neomezeného softwaru nepodporují vlastnost termDuration. Vyhněte se zahrnutí těchto typů položek.
Odpověď REST
Pokud je tato metoda úspěšná, vrátí naplněný prostředek Cart v textu odpovědi.
Kódy úspěšnosti a chyb odpovědi
Každá odpověď obsahuje stavový kód HTTP, který označuje úspěch nebo selhání a další informace o ladění. Ke čtení tohoto kódu, typu chyby a dalších parametrů použijte nástroj pro trasování sítě. Úplný seznam najdete v tématu Kódy chyb.
Příklad odpovědi
{
"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"
}
}