Finalizar a compra de um pedido de um cliente no carrinho
Aplica-se a: Partner Center | Partner Center operado pela 21Vianet | Partner Center para a Nuvem Microsoft para o Governo dos EUA
Como realizar o check-out de um pedido para um cliente no carrinho.
Esta API é idempotente. Os parceiros podem chamar a API CheckoutCart várias vezes para obter um ID de carrinho. Em um cenário em que um pedido falha devido a um erro, a chamada pode ser feita novamente para tentar finalizar a compra. Se o check-out de um carrinho tiver sido feito com sucesso anteriormente e uma chamada de checkout subsequente for feita para esse mesmo carrinho, a resposta da API reiterará as informações retornadas após o check-out inicial.
Observação
Os carrinhos expiram 7 dias a partir da criação inicial.
Pré-requisitos
Credenciais na autenticação do Partner Center conforme descrito em . Este cenário oferece suporte à autenticação com credenciais autônomas de Aplicativo e Aplicativo+Usuário.
Um ID de cliente (
customer-tenant-id
). Se não souber o ID do cliente, pode procurá-lo no Partner Center selecionando o espaço de trabalho Clientes, depois o cliente da lista de clientes e, em seguida, Conta. Na página Conta do cliente, procure o de ID da Microsoft na seção Informações da Conta do Cliente. A ID da Microsoft é a mesma que a ID do cliente (customer-tenant-id
).Um ID de carrinho para um carrinho existente.
C#
Para finalizar um pedido de um cliente, obtenha uma referência do carrinho usando o carrinho e o identificador do cliente. Por fim, chame as funções Criar ou CreateAsync para completar o pedido.
// IAggregatePartner partnerOperations;
// string customerId;
// string cartId;
var cart = partnerOperations.Customers.ById(customerId).Cart.ById(cartId).Checkout();
Java
O Java SDK do Partner Center pode ser usado para gerenciar recursos do Partner Center. É um projeto de código aberto mantido pela comunidade de parceiros e não suportado oficialmente pela Microsoft. Você pode obter ajuda da comunidade ou reportar um problema no GitHub se tiver dificuldades.
Para fazer check-out de um pedido de um cliente, obtenha uma referência ao carrinho usando o carrinho e o identificador do cliente. Por fim, chame a função criar para completar o pedido.
// IAggregatePartner partnerOperations;
// String customerId;
// String cartId;
Cart cart = partnerOperations.getCustomers().byId(customerId).getCart().byId(cartId).checkout();
PowerShell
O módulo PowerShell do Partner Center pode ser usado para gerenciar recursos do Partner Center. É um projeto de código aberto mantido pela comunidade de parceiros e não suportado oficialmente pela Microsoft. Você pode obter ajuda da comunidade ou reportar um problema no GitHub se tiver um problema.
Para fazer check-out de um pedido de um cliente, execute o Submit-PartnerCustomerCart para concluir o pedido.
# $customerId
# $cartId
Submit-PartnerCustomerCart -CartId $cartId -CustomerId $customerId
Pedido REST
Sintaxe da solicitação
Método | Solicitar URI |
---|---|
POST | {baseURL}/v1/customers/{customer-id}/carts/{cart-id}/checkout HTTP/1.1 |
Parâmetros de URI
Use os seguintes parâmetros de caminho para identificar o cliente e especificar o carrinho a ser verificado.
Nome | Tipo | Necessário | Descrição |
---|---|---|---|
ID do cliente | string | Sim | Um ID de cliente formatado em GUID que identifica o cliente. |
cart-id | string | Sim | Um identificador de carrinho em formato GUID que identifica o carrinho. |
Cabeçalhos de solicitação
Para obter mais informações, consulte cabeçalhos REST do Partner Center.
Corpo do pedido
Nenhuma.
Exemplo de solicitação
POST /v1/customers/d6bf25b7-e0a8-4f2d-a31b-97b55cfc774d/carts/b4c8fdea-cbe4-4d17-9576-13fcacbf9605/checkout 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: 0
Expect: 100-continue
No-Content-Body
Importante
A partir de junho de 2023, a versão 3.4.0 mais recente do SDK do .NET do Partner Center foi arquivada. Você pode baixar a versão do SDK do GitHub, juntamente com um arquivo Leiame que contém informações úteis.
Os parceiros são incentivados a continuar a usar as APIs REST do Partner Center.
Resposta REST
Caso seja bem-sucedida, o corpo da resposta contém o recurso CartCheckoutResult preenchido.
Se o carrinho contiver uma ou mais assinaturas, os respetivos valores de ID de assinatura só aparecerão na resposta REST se as assinaturas correspondentes forem provisionadas no momento da chamada à API. O provisionamento de assinaturas ocorre de forma assíncrona e, portanto, os valores de ID de assinatura nem sempre podem estar visíveis na resposta REST da chamada de Checkout de Carrinho. No entanto, uma vez que as respetivas assinaturas são provisionadas, seus valores de ID de assinatura podem ser acessados por meio de chamadas de API Get Orders e Get Order by ID.
Códigos de sucesso e erro de resposta
Cada resposta vem com um código de status HTTP que indica sucesso ou falha e mais informações de depuração. Use uma ferramenta de rastreamento de rede para ler esse código, tipo de erro e outros parâmetros. Para obter a lista completa, consulte Códigos de erro.
Exemplo de resposta para software, várias reservas, plano do Azure e SKU de produto de terceiros
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
?{
"orders": [
{
"id": "3c6f2530-1e31-4088-8230-dd1c31a18bce",
"alternateId": "3c6f2530-1e31-4088-8230-dd1c31a18bce",
"referenceCustomerId": "28045616-f6b9-462f-9701-0d89b5e65c44",
"billingCycle": "monthly",
"currencyCode": "USD",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "MS-AZR-0145P",
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"termDuration": "P1Y",
"transactionType": "New",
"friendlyName": "Microsoft Azure",
"quantity": 1,
"links": {...}
}
],
"creationDate": "2019-01-16T00:48:44.76+00:00",
"status": "completed",
"transactionType": "UserPurchase",
"links": {...},
...
},
{
"id": "311qiN8iFwkv-XARWMvXRYAwYKMACVqv1",
"alternateId": "0a3624c6e47d",
"referenceCustomerId": "28045616-f6b9-462f-9701-0d89b5e65c44",
"billingCycle": "one_time",
"currencyCode": "USD",
"currencySymbol": "$",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "DZH318Z0BQ36:004G:DZH318Z08C0S",
"termDuration": "P1Y",
"transactionType": "New",
"friendlyName": "Reserved VM Instance, Standard_NV12, US East 2, 1 Year",
"quantity": 1,
"links": {...}
},
{
"lineItemNumber": 1,
"offerId": "DZH318Z0BQ36:004J:DZH318Z08B8X",
"termDuration": "P3Y",
"transactionType": "New",
"friendlyName": "Reserved VM Instance, Standard_NV12, US East 2, 3 Years",
"quantity": 1,
"links": {...}
},
{
"lineItemNumber": 2,
"offerId": "DG7GMGF0DWM3:0002:DG7GMGF0DT1M",
"transactionType": "New",
"friendlyName": "BizTalk Server 2016 Branch",
"quantity": 1,
"links": {...}
}
],
"creationDate": "2019-01-16T00:48:51.6578126Z",
"status": "pending",
"transactionType": "UserPurchase",
"links": {...},
...
},
{
"id": "HVu_cO8Ea7fNRQP4ia1QTpZap-kg_7P71",
"alternateId": "55a4e6854d54",
"referenceCustomerId": "28045616-f6b9-462f-9701-0d89b5e65c44",
"billingCycle": "monthly",
"currencyCode": "USD",
"currencySymbol": "$",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "DZH318Z0BXWC:0002:DZH318Z0BMRV",
"termDuration": "P1M",
"transactionType": "New",
"friendlyName": "Barracuda WaaS - Medium Plan",
"quantity": 1,
"links": {...}
}
],
"creationDate": "2019-01-16T00:48:44.4514129Z",
"status": "pending",
"transactionType": "UserPurchase",
"links": {...},
...
}
],
...
}
Exemplo de resposta para uma assinatura baseada em uma nova licença de comércio
{
"id": "a68736758d9c",
"alternateId": "a68736758d9c",
"referenceCustomerId": "94cd6638-11b6-4323-8c9f-6ae3088adc59",
"billingCycle": "monthly",
"currencyCode": "USD"
"currencySymbol": "US$",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "CFQ7TTC0LF8S:0001:CFQ7TTC0N81H",
"subscriptionId": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
"termDuration": "P1M",
"transactionType": "New",
"friendlyName": "Office 365 E5 without Audio Conferencing",
"quantity": 1,
"pricing": {
"listPrice": 36.48,
"discountedPrice": 36.48,
"proratedPrice": 36.48,
"price": 36.48,
"extendedPrice": 36.48
},
"links": {
"product": {
"uri": "/products/CFQ7TTC0LF8S?country=US",
"method": "GET",
"headers": []
},
"sku": {
"uri": "/products/CFQ7TTC0LF8S/skus/0001?country=US",
"method": "GET",
"headers": []
},
"availability": {
"uri": "/products/CFQ7TTC0LF8S/skus/0001/availabilities/CFQ7TTC0N81H?country=US",
"method": "GET",
"headers": []
}
}
}
],
"creationDate": "2023-04-18T22:03:45.4505136Z",
"status": "pending",
"transactionType": "UserPurchase",
"links": {
"self": {
"uri": "/customers/94cd6638-11b6-4323-8c9f-6ae3088adc59/orders/a68736758d9c",
"method": "GET",
"headers": []
},
"provisioningStatus": {
"uri": "/customers/94cd6638-11b6-4323-8c9f-6ae3088adc59/orders/a68736758d9c/provisioningstatus",
"method": "GET",
"headers": []
},
"patchOperation": {
"uri": "/customers/94cd6638-11b6-4323-8c9f-6ae3088adc59/orders/a68736758d9c",
"method": "PATCH",
"headers": []
}
},
"totalPrice": 36.48,
"client": {},
"attributes": {
"objectType": "Order"
}
}