Crie um pedidoCreate an order

Aplica-se a:Applies to:

  • Partner CenterPartner Center
  • Partner Center operado pela 21VianetPartner Center operated by 21Vianet
  • Partner Center do Microsoft Cloud for US GovernmentPartner Center for Microsoft Cloud for US Government

A criação de um pedido para produtos de instância de VM reservada do Azure aplica-se somente a:Creating an order for Azure reserved VM instance products applies only to:

  • Partner CenterPartner Center

Para obter informações sobre o que está disponível atualmente para venda, consulte ofertas de parceiros no programa de provedor de soluções na nuvem.For information about what is currently available to sell, see Partner offers in the Cloud Solution Provider program.

Pré-requisitosPrerequisites

  • Credenciais, conforme descrito em Autenticação do Partner Center.Credentials as described in Partner Center authentication. Esse cenário dá suporte à autenticação com aplicativos autônomos e aplicativos + credenciais de usuário.This scenario supports authentication with both standalone App and App+User credentials.

  • Uma ID do cliente (customer-tenant-id).A customer ID (customer-tenant-id). Se você não souber a ID do cliente, poderá procurar no painel do Partner Center.If you don't know the customer's ID, you can look it up in the Partner Center dashboard. Selecione CSP no menu do Partner Center e, em seguida, Clientes.Select CSP from the Partner Center menu, followed by Customers. Selecione o cliente na lista de clientes e selecione Conta.Select the customer from the customer list, then select Account. Na página Conta do cliente, procure a ID da Microsoft na seção Informações da Conta do Cliente.On the customer’s Account page, look for the Microsoft ID in the Customer Account Info section. A ID da Microsoft é igual à ID do cliente (customer-tenant-id).The Microsoft ID is the same as the customer ID (customer-tenant-id).

  • Um identificador de oferta.An offer identifier.

C#C#

Para criar um pedido para um cliente:To create an order for a customer:

  1. Crie uma instância de um objeto de pedido e defina a propriedade REFERENCECUSTOMERID como a ID do cliente para registrar o cliente.Instantiate an Order object and set the ReferenceCustomerID property to the customer ID to record the customer.

  2. Crie uma lista de objetos OrderLineItem e atribua a lista à propriedade LineItems da ordem.Create a list of OrderLineItem objects, and assign the list to the order's LineItems property. Cada item de linha do pedido contém as informações de compra de uma oferta.Each order line item contains the purchase information for one offer. Você deve ter pelo menos um item de linha de pedido.You must have at least one order line item.

  3. Obtenha uma interface para ordenar operações.Obtain an interface to order operations. Primeiro, chame o método IAggregatePartner. Customers. ById com a ID do cliente para identificar o cliente.First, call the IAggregatePartner.Customers.ById method with the customer ID to identify the customer. Em seguida, recupere a interface da propriedade Orders .Next, retrieve the interface from the Orders property.

  4. Chame o método Create ou createasync e passe o objeto Order .Call the Create or CreateAsync method and pass in the Order object.

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);

Exemplo: aplicativo de teste do console.Sample: Console test app. Projeto: classede exemplos do SDK do Partner Center: CreateOrder.csProject: Partner Center SDK Samples Class: CreateOrder.cs

Solicitação RESTREST request

Sintaxe da solicitaçãoRequest syntax

MétodoMethod URI da solicitaçãoRequest URI
POSTPOST {baseURL}/v1/Customers/{Customer-ID}/Orders http/1.1{baseURL}/v1/customers/{customer-id}/orders HTTP/1.1

Parâmetros do URIURI parameters

Use o seguinte parâmetro de caminho para identificar o cliente.Use the following path parameter to identify the customer.

NomeName TipoType ObrigatórioRequired DescriçãoDescription
id do clientecustomer-id stringstring SimYes Uma ID de cliente formatada pelo GUID que identifica o cliente.A GUID formatted customer-id that identifies the customer.

Cabeçalhos de solicitaçãoRequest headers

Para obter mais informações, confira Cabeçalhos REST do Partner Center.For more information, see Partner Center REST headers.

Corpo da solicitaçãoRequest body

OrderOrder

Esta tabela descreve as propriedades de ordem no corpo da solicitação.This table describes the Order properties in the request body.

PropriedadeProperty TipoType ObrigatórioRequired DescriçãoDescription
idid stringstring NoNo Um identificador de pedido que é fornecido após a criação bem-sucedida do pedido.An order identifier that is supplied upon successful creation of the order.
referenceCustomerIdreferenceCustomerId Cadeia de caracteresstring NoNo O identificador do cliente.The customer identifier.
billingCyclebillingCycle Cadeia de caracteresstring NoNo Indica a frequência com que o parceiro é cobrado por esse pedido.Indicates the frequency with which the partner is billed for this order. Os valores suportados são os nomes de membros encontrados em BillingCycleType.Supported values are the member names found in BillingCycleType. O padrão é "mensal" ou "OneTime" na criação da ordem.The default is "Monthly" or "OneTime" at order creation. Esse campo é aplicado após a criação bem-sucedida do pedido.This field is applied upon successful creation of the order.
itens de linhalineItems matriz de recursos de OrderLineItemarray of OrderLineItem resources SimYes Uma lista discriminada das ofertas que o cliente está comprando, incluindo a quantidade.An itemized list of the offers the customer is purchasing including the quantity.
currencyCodecurrencyCode Cadeia de caracteresstring NoNo Somente leitura.Read-only. A moeda usada ao colocar o pedido.The currency used when placing the order. Aplicado após a criação bem-sucedida do pedido.Applied upon successful creation of the order.
creationDatecreationDate DATETIMEdatetime NoNo Somente leitura.Read-only. A data em que o pedido foi criado, no formato de data e hora.The date the order was created, in date-time format. Aplicado após a criação bem-sucedida do pedido.Applied upon successful creation of the order.
statusstatus stringstring NoNo Somente leitura.Read-only. O status do pedido.The status of the order. Os valores com suporte são os nomes de membro encontrados em OrderStatus.Supported values are the member names found in OrderStatus.
linkslinks OrderLinksOrderLinks NoNo Os links de recursos correspondentes ao pedido.The resource links corresponding to the Order.
Atributosattributes ResourcegroupResourceAttributes NoNo Os atributos de metadados correspondentes ao pedido.The metadata attributes corresponding to the Order.

OrderLineItemOrderLineItem

Esta tabela descreve as propriedades OrderLineItem no corpo da solicitação.This table describes the OrderLineItem properties in the request body.

Observação

O partnerIdOnRecord só deve ser fornecido quando um provedor indireto coloca um pedido em nome de um revendedor indireto.The partnerIdOnRecord should only be provided when an indirect provider places an order on behalf of an indirect reseller. Ele é usado para armazenar a ID de Microsoft Partner Network do revendedor indireto apenas (nunca a ID do provedor indireto).It's used to store the Microsoft Partner Network ID of the indirect reseller only (never the ID of the indirect provider).

NomeName TipoType ObrigatórioRequired DescriçãoDescription
lineItemNumberlineItemNumber INTint SimYes Cada item de linha na coleção recebe um número de linha exclusivo, contando de 0 para count-1.Each line item in the collection gets a unique line number, counting up from 0 to count-1.
offerIdofferId stringstring SimYes O identificador da oferta.The offer identifier.
subscriptionIdsubscriptionId Cadeia de caracteresstring NoNo O identificador da assinatura.The subscription identifier.
parentSubscriptionIdparentSubscriptionId Cadeia de caracteresstring NoNo Opcional.Optional. O ID da assinatura pai em uma oferta complementar.The ID of the parent subscription in an add-on offer. Aplica-se somente ao PATCH.Applies to PATCH only.
friendlyNamefriendlyName Cadeia de caracteresstring NoNo Opcional.Optional. O nome amigável da assinatura definida pelo parceiro para ajudar a ambiguidade.The friendly name for the subscription defined by the partner to help disambiguate.
quantidadequantity INTint SimYes O número de licenças para uma assinatura com base em licença.The number of licenses for a license-based subscription.
partnerIdOnRecordpartnerIdOnRecord Cadeia de caracteresstring NoNo Quando um provedor indireto coloca um pedido em nome de um revendedor indireto, preencha esse campo com a ID MPN do revendedor indireto apenas (nunca a ID do provedor indireto).When an indirect provider places an order on behalf of an indirect reseller, populate this field with the MPN ID of the indirect reseller only (never the ID of the indirect provider). Isso garante a contabilidade adequada para incentivos.This ensures proper accounting for incentives.
provisioningContextprovisioningContext <de cadeia de caracteres de dicionário, Cadeia de caracteres>Dictionary<string, string> NoNo Informações necessárias para o provisionamento de alguns itens no catálogo.Information required for provisioning for some items in the catalog. A propriedade provisioningVariables em uma SKU indica quais propriedades são necessárias para itens específicos no catálogo.The provisioningVariables property in a SKU indicates which properties are required for specific items in the catalog.
linkslinks OrderLineItemLinksOrderLineItemLinks NoNo Somente leitura.Read-only. Os links de recurso correspondentes ao item de linha de ordem.The resource links corresponding to the Order line item.
Atributosattributes ResourcegroupResourceAttributes NoNo Os atributos de metadados correspondentes ao OrderLineItem.The metadata attributes corresponding to the OrderLineItem.
renovarrenewsTo Matriz de objetosArray of objects NoNo Uma matriz de recursos de renovações .An array of RenewsTo resources.
RenovarRenewsTo

Esta tabela descreve as propriedades renotíciato no corpo da solicitação.This table describes the RenewsTo properties in the request body.

PropriedadeProperty TipoType ObrigatórioRequired DescriçãoDescription
termDurationtermDuration Cadeia de caracteresstring NoNo Uma representação ISO 8601 da duração do termo de renovação.An ISO 8601 representation of the renewal term's duration. Os valores atuais com suporte são P1M (1 mês) e P1Y (1 ano).The current supported values are P1M (1 month) and P1Y (1 year).

Exemplo de solicitaçãoRequest example

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 RESTREST response

Se for bem-sucedido, o método retornará um recurso de pedido no corpo da resposta.If successful, the method returns an Order resource in the response body.

Códigos de êxito e de erro de respostaResponse success and error codes

Cada resposta vem com um código de status HTTP que indica êxito ou falha e informações de depuração adicionais.Each response comes with an HTTP status code that indicates success or failure and additional debugging information. Use uma ferramenta de rastreamento de rede para ler esse código, o tipo de erro e os parâmetros adicionais.Use a network trace tool to read this code, error type, and additional parameters. Para obter a lista completa, consulte códigos de erro do Partner Center.For the full list, see Partner Center error codes.

Exemplo de respostaResponse example

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"
    }
}