Skapa en kundvagn med en kundorder
Gäller för: Partnercenter | Partnercenter som drivs av 21Vianet | Partnercenter för Microsoft Cloud for US Government
Du kan lägga till en beställning för en kund i en kundvagn. Mer information om vad som för närvarande är tillgängligt att sälja finns i Partnererbjudanden i Dobavljač rešenja u oblaku-programmet.
Kommentar
Kundvagnar upphör att gälla 7 dagar från det första skapandet.
Förutsättningar
Autentiseringsuppgifter enligt beskrivningen i Partnercenter-autentisering. Det här scenariot stöder autentisering med både fristående app- och App+User-autentiseringsuppgifter.
Ett kund-ID (
customer-tenant-id
). Om du inte känner till kundens ID kan du söka efter det i Partnercenter genom att välja arbetsytan Kunder , sedan kunden från kundlistan och sedan Konto. På kundens kontosida letar du efter Microsoft-ID :t i avsnittet Kundkontoinformation . Microsoft-ID:t är samma som kund-ID :t (customer-tenant-id
).
C#
Så här skapar du en beställning för en kund:
Instansiera ett kundvagnsobjekt.
Skapa en lista över CartLineItem-objekt och tilldela listan till kundvagnens LineItems-egenskap. Varje kundvagnsrad innehåller inköpsinformation för en produkt. Du måste ha minst en kundvagnsrad.
Hämta ett gränssnitt för kundvagnsåtgärder genom att anropa metoden IAggregatePartner.Customers.ById med kund-ID:t för att identifiera kunden och sedan hämta gränssnittet från egenskapen Kundvagn .
Anropa metoden Skapa eller SkapaAsync för att skapa kundvagnen.
För att slutföra attesteringen och inkludera andra återförsäljare, se följande exempel på exempel på begäran och svar:
Exempel på begäran
{
"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"
}
]
}
]
}
Svarsexempel
{
"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#-exempel
// 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
Java SDK för Partnercenter kan användas för att hantera Partnercenter-resurser. Det är ett projekt med öppen källkod som underhålls av partnercommunityn och stöds inte officiellt av Microsoft. Du kan få hjälp från communityn eller öppna ett problem på GitHub om du får problem.
Så här skapar du en beställning för en kund:
Instansiera ett kundvagnsobjekt.
Skapa en lista över CartLineItem-objekt och tilldela listan till kundvagnens radobjekt. Varje kundvagnsrad innehåller inköpsinformation för en produkt. Du måste ha minst en kundvagnsrad.
Hämta ett gränssnitt för kundvagnsåtgärder genom att anropa funktionen IAggregatePartner.getCustomers().byId med kund-ID:t för att identifiera kunden och sedan hämta gränssnittet från funktionen getCart.
Anropa create-funktionen för att skapa kundvagnen.
Java-exempel
// 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
PowerShell-modulen partnercenter kan användas för att hantera Partnercenter-resurser. Det är ett projekt med öppen källkod som underhålls av partnercommunityn och stöds inte officiellt av Microsoft. Du kan få hjälp från communityn eller öppna ett problem på GitHub om du får problem.
Så här skapar du en beställning för en kund:
Instansiera ett kundvagnsobjekt.
Skapa en lista över CartLineItem-objekt och tilldela listan till kundvagnens radobjekt. Varje kundvagnsrad innehåller inköpsinformation för en produkt. Du måste ha minst en kundvagnsrad.
Kör kommandot New-PartnerCustomerCart för att skapa kundvagnen.
# $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-begäran
Syntax för begäran
Metod | URI för förfrågan |
---|---|
POST | {baseURL}/v1/customers/{customer-id}/carts HTTP/1.1 |
URI-parameter
Använd följande sökvägsparameter för att identifiera kunden.
Namn | Typ | Obligatoriskt | Beskrivning |
---|---|---|---|
kund-ID | sträng | Ja | Ett GUID-formaterat kund-ID som identifierar kunden. |
Begärandehuvuden
Mer information finns i REST-huvuden för Partnercenter.
Begärandetext
I den här tabellen beskrivs kundvagnsegenskaperna i begärandetexten.
Property | Type | Obligatoriskt | Beskrivning |
---|---|---|---|
id | sträng | Nej | En kundvagnsidentifierare som tillhandahålls när kundvagnen har skapats. |
creationTimeStamp | Datum/tid | Nej | Det datum då kundvagnen skapades i datum-tid-format. Tillämpas när kundvagnen har skapats. |
lastModifiedTimeStamp | Datum/tid | Nej | Datumet då kundvagnen senast uppdaterades, i datum-tid-format. Tillämpas när kundvagnen har skapats. |
expirationTimeStamp | Datum/tid | Nej | Datumet då kundvagnen upphör att gälla, i datum-tid-format. Tillämpas när kundvagnen har skapats. |
lastModifiedUser | sträng | Nej | Användaren som senast uppdaterade kundvagnen. Tillämpas när kundvagnen har skapats. |
lineItems | Objektmatris | Ja | En matris med CartLineItem-resurser . |
PartnerOnRecordAttestationAccepted | Booleskt | Ja | Bekräftar att attesteringen har slutförts |
I den här tabellen beskrivs egenskaperna CartLineItem i begärandetexten.
Property | Type | Obligatoriskt | Beskrivning |
---|---|---|---|
id | sträng | Nej | En unik identifierare för ett kundvagnsradobjekt. Tillämpas när kundvagnen har skapats. |
catalogId | sträng | Ja | Katalogobjektidentifieraren. Se till att tillgängligheten för katalogobjektet är för rätt segment. |
friendlyName | sträng | Nej | Valfritt. Det egna namnet på det objekt som definierats av partnern för att underlätta tvetydigheten. |
promotionId | sträng | Nej | Valfritt. De flesta NCE-kampanjer tillämpas automatiskt, men för valfria kampanjer (till exempel Bridge to the Cloud 2) för att gälla för ett kundvagnslinjeobjekt måste partner inkludera kampanj-ID:t i begäran om att lägga till i kundvagnen. |
kvantitet | heltal | Ja | Antalet licenser eller instanser. |
currencyCode | sträng | Nej | Valutakod. |
billingCycle | Objekt | Ja | Typ av faktureringsperiod som angetts för den aktuella perioden. |
customTermEndDate | Datum/tid | Nej | Slutdatumet för en befintlig prenumeration som du vill samordna den nya prenumerationen med. |
Deltagare | Lista över objektsträngspar | Nej | En samling PartnerId on Record (PartnerID) vid köpet. |
provisioningContext | Ordlistesträng<, sträng> | Nej | Information som krävs för etablering för vissa objekt i katalogen. Egenskapen provisioningVariables i en SKU anger vilka egenskaper som krävs för specifika objekt i katalogen. |
orderGroup | sträng | Nej | En grupp som anger vilka objekt som kan placeras tillsammans. |
fel | Objekt | Nej | Tillämpas efter att kundvagnen har skapats om det finns ett fel. |
renewsTo | Objektmatris | Nej | En matris med RenewsTo-resurser . |
AttestationAccepted | Booleskt | Nej | Anger avtal om att erbjuda eller sku villkor. Krävs endast för erbjudanden eller skuus där SkuAttestationProperties eller OfferAttestationProperties enforceAttestation är Sant. |
transaction_reseller | String | Nej | När en indirekt leverantör gör en beställning på uppdrag av en indirekt återförsäljare fyller du i det här fältet endast med partner-ID för den indirekta återförsäljaren (aldrig ID för den indirekta leverantören). Detta säkerställer korrekt redovisning av incitament. |
additional_transaction_reseller | String | Nej | När en indirekt leverantör lägger en beställning på uppdrag av en indirekt återförsäljare fyller du i det här fältet med partner-ID för den ytterligare indirekta återförsäljaren (aldrig ID:t för den indirekta leverantören). Incitament gäller inte för dessa ytterligare återförsäljare. Endast högst 5 indirekta återförsäljare kan anges. Detta är endast tillämpliga partner som handlar inom EU/EFTA-länder/regioner. |
Den här tabellen beskriver egenskaperna RenewsTo i begärandetexten.
Property | Type | Obligatoriskt | Beskrivning |
---|---|---|---|
termDuration | sträng | Nej | En ISO 8601-representation av förnyelseperiodens varaktighet. De aktuella värdena som stöds är P1M (1 månad) och P1Y (1 år). |
Exempel på begäran
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"
}
}
]
}
Viktigt!
Från och med juni 2023 arkiveras nu den senaste Partner Center .NET SDK-versionen 3.4.0. Du kan ladda ned SDK-versionen från GitHub tillsammans med en readme-fil som innehåller användbar information.
Partner uppmanas att fortsätta att använda REST-API:er för Partnercenter.
REST-svar
Om det lyckas returnerar den här metoden den ifyllda kundvagnsresursen i svarstexten.
Svarsframgång och felkoder
Varje svar levereras med en HTTP-statuskod som anger lyckad eller misslyckad och felsökningsinformation. Använd ett verktyg för nätverksspårning för att läsa den här koden, feltypen och andra parametrar. Den fullständiga listan finns i Felkoder.
Svarsexempel
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"
}
}
Exempel på nya licensbaserade tjänster för handel
Kommentar
De nya handelsupplevelserna för licensbaserade tjänster innehåller många nya funktioner och är tillgängliga för alla Dobavljač rešenja u oblaku (CSP:er). Mer information finns i översikten över nya handelsupplevelser.
Exempel på begäran
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"
}
]
}
Viktigt!
Azure-plan och eviga programvaruradobjekt stöder inte egenskapen termDuration. Undvik att inkludera detta när du använder dessa typer av objekt.
REST-svar
Om det lyckas returnerar den här metoden den ifyllda kundvagnsresursen i svarstexten.
Svarsframgång och felkoder
Varje svar levereras med en HTTP-statuskod som anger lyckad eller misslyckad och annan felsökningsinformation. Använd ett verktyg för nätverksspårning för att läsa den här koden, feltypen och andra parametrar. Den fullständiga listan finns i Felkoder.
Svarsexempel
{
"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"
}
}