Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Så här skapar du en order för en kund hos en indirekt återförsäljare.
Förutsättningar
Autentiseringsuppgifter enligt beskrivningen i PartnerCenter-autentisering. Det här scenariot stöder endast autentisering med App+User-autentiseringsuppgifter.
Ett kund-ID (
customer-tenant-id
). Om du inte känner till kundens ID kan du leta upp 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 i avsnittet Kundkontoinformation. Microsoft-ID:t är detsamma som kund-ID :t (customer-tenant-id
).Erbjudandeidentifieraren för den artikel som ska köpas.
Klientidentifieraren för den indirekta återförsäljaren.
C#
Så här skapar du en order för en kund hos en indirekt återförsäljare:
Hämta en samling indirekta återförsäljare som har en relation med den inloggade partnern.
Hämta en lokal variabel till objektet i samlingen som matchar det indirekta reseller-ID:t. Det här steget hjälper dig att komma åt återförsäljarens egenskap MpnId när du skapar ordern.
Instansiera ett Order-objekt och ange egenskapen ReferenceCustomerID som kundidentifierare för att registrera kunden.
Skapa en lista över OrderLineItem objekt och tilldela listan till orderns egenskap LineItems. Varje orderrad innefattar inköpsinformationen för ett erbjudande. Se till att fylla i egenskapen PartnerIdOnRecord i varje radobjekt med PartnerID för den indirekta återförsäljaren. Du måste ha minst ett orderradsobjekt.
Hämta ett gränssnitt för att beställa å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 Orders.
Anropa metoden Skapa eller CreateAsync för att skapa ordern.
C#-exempel
// 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 Partner 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);
Exempel: Console-testappProject: Partner Center SDK-exempel Klass: PlaceOrderForCustomer.cs
REST-begäran
Syntax för begäran
Metod | Begärd URI |
---|---|
POST | {baseURL}/v1/customers/{customer-id}/orders HTTP/1.1 |
URI-parametrar
Använd följande sökvägsparameter för att identifiera kunden.
Namn | Typ | Krävs | Beskrivning |
---|---|---|---|
kund-ID | sträng | Ja | En GUID-formaterad sträng som identifierar kunden. |
Begärandehuvuden
Mer information finns i REST-huvuden för Partnercenter.
Begäranens innehåll
Ordning
I den här tabellen beskrivs egenskaperna Order i begärandetexten.
Namn | Typ | Krävs | Beskrivning |
---|---|---|---|
Id | sträng | Nej | En orderidentifierare som anges när beställningen har skapats. |
referenskund-ID | sträng | Ja | Kundidentifieraren. |
billingCycle | sträng | Nej | Hur ofta partnern faktureras för den här ordern. Standardvärdet är "Månadsvis" och tillämpas när beställningen har skapats. Värden som stöds är de medlemsnamn som finns i BillingCycleType. Obs! Den årliga faktureringsfunktionen är ännu inte allmänt tillgänglig. Stöd för årlig fakturering kommer snart. |
lineItems | matris med objekt | Ja | En matris med OrderLineItem resurser. |
skapelsedatum | sträng | Nej | Det datum då ordern skapades, i datum-tid-format. Tillämpas vid framgångsrik skapande av beställningen. |
Attributen | objekt | Nej | Innehåller "ObjectType": "Order" |
OrderLineItem
I den här tabellen beskrivs egenskaperna OrderLineItem i begärandetexten.
Namn | Typ | Krävs | Beskrivning |
---|---|---|---|
radartikelnummer | Int | Ja | Varje radobjekt i samlingen får ett unikt radnummer som räknar upp från 0 till count-1. |
offerId | sträng | Ja | Erbjudande-ID. |
prenumerations-ID | sträng | Nej | Prenumerationsidentifieraren. |
parentPrenumerationsId | sträng | Nej | Valfri. ID för huvudprenumerationen i ett tilläggserbjudande. Gäller endast patch. |
freundlichNamn | sträng | Nej | Valfri. Det vänliga namnet på prenumerationen som definierats av partnern för att underlätta identifiering. |
kvantitet | Int | Ja | Antalet licenser för en licensbaserad prenumeration. |
partnerIdSomRegistrerad | sträng | 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 PartnerID för den indirekta återförsäljaren endast (aldrig ID för den indirekta leverantören). Detta säkerställer korrekt redovisning av incitament. Om du inte anger partner-ID:n för återförsäljaren misslyckas inte ordern. Återförsäljaren registreras dock inte och därför kanske inte incitamentberäkningar inkluderar försäljningen. |
Attribut | objekt | Nej | Innehåller "ObjectType":"OrderLineItem". |
Exempel på begäran
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: aaaa0000-bb11-2222-33cc-444444dddddd
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-svar
Om det lyckas innehåller svarstexten den ifyllda resursen Order.
Svarsframgång och felkoder
Varje svar levereras med en HTTP-statuskod som anger lyckad eller misslyckad och ytterligare felsökningsinformation. Använd ett verktyg för nätverksspårning för att läsa den här koden, feltypen och ytterligare parametrar. För en fullständig lista, se Partner Center-felkoder.
Svarsexempel
HTTP/1.1 201 Created
Content-Length: 831
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
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": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"friendlyName": "New offer purchase.",
"quantity": 5,
"partnerIdOnRecord": "4847383",
"links": {
"subscription": {
"uri": "/customers/c501c3c4-d776-40ef-9ecf-9cefb59442c1/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"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"
}
}