Criar uma encomenda para um cliente que utilize APIs do Partner Center
Aplica-se a: Partner Center | Partner Center operado pela 21Vianet | Centro de Parceiros para Microsoft Cloud para governo dos EUA
A criação de uma encomenda de produtos de instância VM reservados da Azure aplica-se apenas a:
- Partner Center
Para obter informações sobre o que está atualmente disponível para vender, consulte as ofertas do Partner no programa Cloud Solution Provider.
Pré-requisitos
Credenciais descritas na autenticação do Partner Center. Este cenário suporta a autenticação com as credenciais de App autónoma e App+User.
Uma ID do cliente (
customer-tenant-id). Se não souber a identificação do cliente, pode procurar no painel do Centro de Parceiros. Selecione CSP no menu Partner Center, seguido por Clientes. Selecione o cliente da lista de clientes e, em seguida, selecione Conta. Na página conta do cliente, procure o ID da Microsoft na secção Informação da Conta do Cliente . O ID da Microsoft é o mesmo que o ID do cliente (customer-tenant-id).Um identificador de oferta.
C#
Para criar uma encomenda para um cliente:
Instantiar um objeto de Encomenda e definir a propriedade ReferenceCustomerID para o ID do cliente para gravar o cliente.
Crie uma lista de objetos OrderLineItem e atribua a lista à propriedade LineItems da encomenda. Cada item da linha de encomenda contém a informação de compra para uma oferta. Deve ter pelo menos um item de linha de encomenda.
Obtenha uma interface para encomendar operações. Em primeiro lugar, ligue para o método IAggregatePartner.Customers.ById com o ID do cliente para identificar o cliente. Em seguida, recupere a interface da propriedade Encomendas .
Ligue para o método Criar ou Criar Aync e passe no objeto Encomenda .
Para completar o atestado e incluir revendedores adicionais, consulte as seguintes amostras de pedido e resposta:
Exemplo de pedido
{
"PartnerOnRecordAttestationAccepted":true,
"lineItems": [
{
"offerId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
"quantity": 1,
"lineItemNumber": 0,
"PartnerIdOnRecord": "873452",
"AdditionalPartnerIdsOnRecord":["4847383","873452"]
}
],
"billingCycle": "monthly"
}
Exemplo de resposta
{
"id": "5cf72f146967",
"alternateId": "5cf72f146967",
"referenceCustomerId": "f81d98dd-c2f4-499e-a194-5619e260344e",
"billingCycle": "monthly",
"currencyCode": "USD",
"currencySymbol": "$",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
"subscriptionId": "fcddfa52-1da8-4529-d347-50ea51e1e7be",
"termDuration": "P1M",
"transactionType": "New",
"friendlyName": "AI Builder Capacity add-on",
"quantity": 1,
"partnerIdOnRecord": "873452",
"additionalPartnerIdsOnRecord": [
"4847383",
"873452"
],
"links": {
"product": {
"uri": "/products/CFQ7TTC0LH0Z?country=US",
"method": "GET",
"headers": []
},
"sku": {
"uri": "/products/CFQ7TTC0LH0Z/skus/0001?country=US",
"method": "GET",
"headers": []
},
"availability": {
"uri": "/products/CFQ7TTC0LH0Z/skus/0001/availabilities/CFQ7TTC0K18P?country=US",
"method": "GET",
"headers": []
}
}
}
],
"creationDate": "2021-08-17T18:13:11.3122226Z",
"status": "pending",
"transactionType": "UserPurchase",
"links": {
"self": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/5cf72f146967",
"method": "GET",
"headers": []
},
"provisioningStatus": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/5cf72f146967/provisioningstatus",
"method": "GET",
"headers": []
},
"patchOperation": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/5cf72f146967",
"method": "PATCH",
"headers": []
}
},
"client": {},
"attributes": {
"objectType": "Order"
}
}
IAggregatePartner partnerOperations;
string customerId;
string offerId;
var order = new Order()
{
ReferenceCustomerId = customerId,
LineItems = new List<OrderLineItem>()
{
new OrderLineItem()
{
OfferId = offerId,
FriendlyName = "new offer purchase",
Quantity = 1,
ProvisioningContext = new Dictionary<string, string>
{
{ "subscriptionId", "5198C069-3DAA-403A-8660-5BE11BFD12EE" },
{ "scope", "shared" },
{ "duration", "3Years" }
}
}
}
};
var createdOrder = partnerOperations.Customers.ById(customerId).Orders.Create(order);
Amostra: App de teste de consola. Projeto: Partner Center SDK Samples Class: CreateOrder.cs
Pedido de DESCANSO
Solicitar sintaxe
| Método | URI do pedido |
|---|---|
| PUBLICAR | {baseURL}/v1/clientes/{customer-id}/encomendas HTTP/1.1 |
Parâmetros URI
Utilize o seguinte parâmetro de percurso para identificar o cliente.
| Nome | Tipo | Necessário | Descrição |
|---|---|---|---|
| id cliente | string | Yes | Um id de cliente formatado GUID que identifica o cliente. |
Cabeçalhos do pedido
Para obter mais informações, consulte os cabeçalhos Partner Center REST.
Corpo do pedido
Encomenda
Esta tabela descreve as propriedades da Ordem no organismo de pedido.
| Propriedade | Tipo | Necessário | Descrição |
|---|---|---|---|
| ID | string | No | Um identificador de ordem que é fornecido após a criação bem sucedida da ordem. |
| referênciaScustomerId | cadeia (de carateres) | No | O identificador de clientes. |
| billingCycle | cadeia (de carateres) | No | Indica a frequência com que o parceiro é faturado para esta encomenda. Os valores suportados são os nomes dos membros encontrados no BillingCycleType. O padrão é "Mensal" ou "OneTime" na criação da ordem. Este campo é aplicado após a criação bem sucedida da ordem. |
| lineitems | matriz de recursos OrderLineItem | Yes | Uma lista itemada das ofertas que o cliente está a comprar, incluindo a quantidade. |
| currencyCode | cadeia (de carateres) | No | Só para ler. A moeda utilizada na eção da encomenda. Aplicada após a criação bem sucedida da ordem. |
| criaçãoDate | datetime | No | Só para ler. A data em que a encomenda foi criada, em formato de data-hora. Aplicada após a criação bem sucedida da ordem. |
| status | cadeia (de carateres) | No | Só para ler. O estado da ordem. Os valores suportados são os nomes dos membros encontrados no OrderStatus. |
| ligações | Pedidos | No | Os links de recursos correspondentes à Ordem. |
| atributos | RecursosTributos | No | Os metadados atribuem correspondentes à Ordem. |
| PartnerOnRecordAttestationAccepted | Booleano | Yes | Confirma a conclusão do Attestation |
OrderLineItem
Esta tabela descreve as propriedades orderLineItem no organismo de pedido.
Nota
O parceiroIdOnRecord só deve ser fornecido quando um fornecedor indireto faz uma encomenda em nome de um revendedor indireto. É utilizado para armazenar o ID da Rede de Parceiros microsoft apenas do revendedor indireto (nunca o ID do fornecedor indireto).
| Nome | Tipo | Necessário | Descrição |
|---|---|---|---|
| lineItemNumber | int | Yes | Cada item de linha da coleção obtém um número de linha único, contando de 0 a 1. |
| offerId | string | Yes | O identificador da oferta. |
| subscriptionId | cadeia (de carateres) | No | O identificador de assinatura. |
| parentSubscriptionId | cadeia (de carateres) | No | Opcional. A identificação da subscrição dos pais numa oferta adicionada. Aplica-se apenas ao PATCH. |
| nome amigável | cadeia (de carateres) | No | Opcional. O nome amigável para a subscrição definida pelo parceiro para ajudar a desambiguar. |
| quantidade | int | Yes | O número de licenças para uma subscrição baseada em licença. |
| customTermEndDate | DateTime | No | A data final do primeiro prazo de faturação da nova subscrição. |
| partnerIdOnRecord | cadeia (de carateres) | No | Quando um fornecedor indireto estoende uma encomenda em nome de um revendedor indireto, povoe este campo apenas com o ID MPN do revendedor indireto (nunca o ID do fornecedor indireto). Isto garante uma contabilização adequada dos incentivos. |
| provisionamentoContexto | Cadeia de dicionário<, corda> | No | Informação necessária para o provisionamento de alguns itens no catálogo. A propriedade de ProvisioningVariables num SKU indica quais propriedades são necessárias para itens específicos no catálogo. |
| ligações | OrderLineItemLinks | No | Só para ler. As ligações de recursos correspondentes ao item da linha Encomenda. |
| atributos | RecursosTributos | No | Os metadados atribuem correspondentes ao OrderLineItem. |
| renovaTo | Matriz de objetos | No | Uma variedade de recursos Renovados. |
| AttestationAccepted | bool | No | Indica acordo para oferecer ou sku condições. Requerido apenas para ofertas ou skus onde a SkuAttestationProperties ou OfferAttestationProperties aplicam Attestation é Verdadeira. |
| PartnerIdsOnRecord adicional | String | No | Quando um fornecedor indireto estoende uma encomenda em nome de um revendedor indireto, povoe este campo apenas com o ID MPN do revendedor indireto adicional ( nunca o ID do fornecedor indireto). Não são aplicáveis incentivos a estes revendedores adicionais. Só podem ser introduzidos um máximo de 5 Revendedores Indiretos. Estes são apenas os parceiros aplicáveis que transacionam dentro dos países da UE/EFTA. |
RenovarTo
Esta tabela descreve as propriedades Renovações No corpo de pedido.
| Propriedade | Tipo | Necessário | Descrição |
|---|---|---|---|
| termoDuração | cadeia (de carateres) | No | Uma representação ISO 8601 da duração do período de renovação. Os valores suportados atuais são P1M (1 mês) e P1Y (1 ano). |
Exemplo de pedido
POST https://api.partnercenter.microsoft.com/v1/customers/b0d70a69-4c42-4b27-b17b-91a835d8686a/orders HTTP/1.1
Authorization: Bearer <token>
Host: api.partnercenter.microsoft.com
Content-Length: 691
Content-Type: application/json
{
"BillingCycle": "one_time",
"CurrencyCode": "USD",
"LineItems": [
{
"LineItemNumber": 0,
"ProvisioningContext": {
"subscriptionId": "3D5ECED6-1151-44C7-AEE6-70A4BB725666",
"scope": "shared",
"duration": "1Year"
},
"OfferId": "DZH318Z0BQ4B:0047:DZH318Z0DSM8",
"FriendlyName": "A_sample_Azure_RI",
"Quantity": 1
}
]
}
Resposta do REST
Se for bem sucedido, o método devolve um recurso da Ordem no organismo de resposta.
Se a encomenda contiver uma ou mais subscrições, os respetivos valores de ID de subscrição só aparecerão na resposta REST se as correspondentes assinaturas tiverem sido a provisionadas no momento da chamada da API. O fornecimento de subscrições ocorre de forma assíncronea e, portanto, os valores de ID de subscrição podem nem sempre ser visíveis na resposta REST da chamada Create Order. No entanto, uma vez previstas as respetivas subscrições, os seus valores de ID de subscrição podem ser acedidos através de Encomendas e Obter Encomendas por chamadas ID API.
Códigos de sucesso e erro de resposta
Cada resposta vem com um código de estado HTTP que indica sucesso ou falha e informações adicionais de depuragem. Utilize uma ferramenta de rastreio de rede para ler este código, tipo de erro e parâmetros adicionais. Para obter a lista completa, consulte os códigos de erro do Partner Center.
Exemplo de resposta
HTTP/1.1 201 Created
Content-Length: 788
Content-Type: application/json; charset=utf-8
MS-CorrelationId: b593cbb7-b358-4b31-81fc-e60b9c277a7f
MS-RequestId: 025f4c19-217f-49d6-a056-391902c62fb3
Date: Thu, 15 Mar 2018 22:30:02 GMT
{
"id": "Cs_jyTxubLpvdJXdo8xcQZN6I2RsLrgZ1",
"referenceCustomerId": "b0d70a69-4c42-4b27-b17b-91a835d8686a",
"billingCycle": "one_time",
"currencyCode": "USD",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "84A03D81-6B37-4D66-8D4A-FAEA24541538",
"friendlyName": "A_sample_Azure_RI",
"quantity": 1,
"links": {
"sku": {
"uri": "/products/DZH318Z0BQ4B/skus/0047?country=US",
"method": "GET",
"headers": []
}
}
} ],
"creationDate": "2018-03-15T22:30:02.085152Z",
"status": "pending",
"links": {
"provisioningStatus": {
"uri": "/customers/b0d70a69-4c42-4b27-b17b-91a835d8686a/orders/Cs_jyTxubLpvdJXdo8xcQZN6I2RsLrgZ1/provisioningstatus",
"method": "GET",
"headers": []
},
"self": {
"uri": "/customers/b0d70a69-4c42-4b27-b17b-91a835d8686a/orders/Cs_jyTxubLpvdJXdo8xcQZN6I2RsLrgZ1",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Order"
}
}