Partilhar via


Cancelar compras de software

Você pode usar as APIs do Partner Center para cancelar assinaturas de software e compras perpétuas de software (desde que essas compras tenham sido feitas dentro da janela de cancelamento a partir da data de compra). Você não precisa criar um tíquete de suporte para fazer esses cancelamentos e pode usar os seguintes métodos de autoatendimento.

Também pode cancelar subscrições de software (não incluindo software perpétuo) utilizando a API Atualizar uma subscrição por ID .

Pré-requisitos

  • Credenciais conforme descrito na autenticação do Partner Center. Este cenário oferece suporte à autenticação com credenciais autônomas de Aplicativo e Aplicativo+Usuário.

C#

Para cancelar uma encomenda de software,

  1. Passe as credenciais da sua conta para o método CreatePartnerOperations para obter uma interface IPartner para obter operações de parceiros.

  2. Selecione uma Encomenda específica que pretende cancelar. Chame o método Customers.ById() com o identificador do cliente, seguido por Orders.ById() com o identificador do pedido.

  3. Chame o método Get ou GetAsync para recuperar o pedido.

  4. Defina a propriedade Order.Status como cancelled.

  5. (Opcional) Se desejar especificar determinados itens de linha para cancelamento, defina Order.LineItems como uma lista de itens de linha que você deseja cancelar.

  6. Use o método Patch() para atualizar a ordem.

// IPartnerCredentials accountCredentials;
// string customerTenantId;

IPartner accountPartnerOperations = PartnerService.Instance.CreatePartnerOperations(accountCredentials);

// Cancel order
var order = accountPartnerOperations.Customers.ById(customerTenantId).Orders.ById(orderId).Get();
order.Status = "cancelled";
order.LineItems = new List<OrderLineItem> {
    order.LineItems.First()
};
order = accountPartnerOperations.Customers.ById(customerTenantId).Orders.ById(orderId).Patch(order);

Pedido REST

Sintaxe da solicitação

Método URI do pedido
REMENDO {baseURL}/v1/customers/{customer-tenant-id}/orders/{order-id} HTTP/1.1

Parâmetros de URI

Use os seguintes parâmetros de consulta para cancelar um pedido de software.

Name Tipo Obrigatório Description
ID do cliente-locatário GUID Y O valor é um identificador de locatário do cliente formatado em GUID que permite ao revendedor filtrar os resultados de um determinado cliente que pertence ao revendedor.
ID da encomenda string Y O valor é uma cadeia de caracteres que indica o identificador da ordem que você deseja cancelar.

Cabeçalhos do pedido

Para obter mais informações, consulte Cabeçalhos REST do Partner Center.

Corpo do pedido

{
    "id": "c403d91b21d2",
    status": "cancelled",
    "lineItems": [
        {
            "lineItemNumber": 0,
            "offerId": "DG7GMGF0FKZV:0003:DG7GMGF0DWMS"
        }
    ]
}

Exemplo de solicitação

PATCH https://api.partnercenter.microsoft.com/v1/customers/<customer-tenant-id>/orders/<order-id> HTTP/1.1
Accept: application/json
MS-RequestId: 655890ba-4d2b-4d09-a95f-4ea1348686a5
MS-CorrelationId: 1438ea3d-b515-45c7-9ec1-27ee0cc8e6bd

{
    "id": "c403d91b21d2",
    "status": "cancelled",
    "lineItems": [
        {
            "lineItemNumber": 0,
            "offerId": "DG7GMGF0FKZV:0003:DG7GMGF0DWMS"
        }
    ]
}

Resposta do REST

Se for bem-sucedido, esse método retornará o pedido com itens de linha cancelados.

O status do pedido será marcado como cancelado se todos os itens de linha no pedido forem cancelados ou concluído se nem todos os itens de linha no pedido forem cancelados.

Códigos de sucesso e erro de resposta

Cada resposta vem com um código de status HTTP que indica sucesso ou falha e outras informações de depuração. Use uma ferramenta de rastreamento de rede para ler esse código, tipo de erro e parâmetros. Para obter a lista completa, consulte Códigos de erro REST do Partner Center.

Exemplo de resposta

Na resposta de exemplo a seguir, você pode ver que a quantidade de item de linha se tornou zero (0). Essa alteração significa que o item de linha que foi marcado para cancelamento foi cancelado com êxito. A ordem de exemplo contém outros itens de linha que não foram cancelados, o que significa que o status da ordem geral será marcado como concluído, não cancelado.

HTTP/1.1 200 OK
Content-Length: 866
MS-CorrelationId: 1438ea3d-b515-45c7-9ec1-27ee0cc8e6bd
MS-RequestId: 655890ba-4d2b-4d09-a95f-4ea1348686a5

{
    "id": "c403d91b21d2",
    "alternateId": "c403d91b21d2",
    "referenceCustomerId": "45411344-b09d-47e7-9653-542006bf9766",
    "billingCycle": "one_time",
    "currencyCode": "USD",
    "currencySymbol": "$",
    "lineItems": [
        {
            "lineItemNumber": 0,
            "offerId": "DG7GMGF0FKZV:0003:DG7GMGF0DWMS",
            "termDuration": "P3Y",
            "transactionType": "New",
            "friendlyName": "SQL Server Enterprise - 2 Core License Pack - 3 year",
            "quantity": 0,
            "links": {
                "product": {
                    "uri": "/products/DG7GMGF0FKZV?country=US",
                    "method": "GET",
                    "headers": []
                },
                "sku": {
                    "uri": "/products/DG7GMGF0FKZV/skus/0003?country=US",
                    "method": "GET",
                    "headers": []
                },
                "availability": {
                    "uri": "/products/DG7GMGF0FKZV/skus/0003/availabilities/DG7GMGF0DWMS?country=US",
                    "method": "GET",
                    "headers": []
                }
            }
        },
        {
            "lineItemNumber": 1,
            "offerId": "DG7GMGF0DVT7:000C:DG7GMGF0FVZM",
            "termDuration": "P3Y",
            "transactionType": "New",
            "friendlyName": "Windows Server CAL - 1 Device CAL - 3 year",
            "quantity": 1,
            "links": {
                "product": {
                    "uri": "/products/DG7GMGF0DVT7?country=US",
                    "method": "GET",
                    "headers": []
                },
                "sku": {
                    "uri": "/products/DG7GMGF0DVT7/skus/000C?country=US",
                    "method": "GET",
                    "headers": []
                },
                "availability": {
                    "uri": "/products/DG7GMGF0DVT7/skus/000C/availabilities/DG7GMGF0FVZM?country=US",
                    "method": "GET",
                    "headers": []
                }
            }
        }
    ],
    "creationDate": "2019-12-12T17:33:56.1306495Z",
    "status": "completed",
    "transactionType": "UserPurchase",
    "links": {
        "self": {
            "uri": "/customers/45411344-b09d-47e7-9653-542006bf9766/orders/c403d91b21d2",
            "method": "GET",
            "headers": []
        },
        "provisioningStatus": {
            "uri": "/customers/45411344-b09d-47e7-9653-542006bf9766/orders/c403d91b21d2/provisioningstatus",
            "method": "GET",
            "headers": []
        },
        "patchOperation": {
            "uri": "/customers/45411344-b09d-47e7-9653-542006bf9766/orders/c403d91b21d2",
            "method": "PATCH",
            "headers": []
        }
    },
    "client": {
        "marketplaceCountry": "US",
        "deviceFamily": "UniversalStore-PartnerCenter",
        "name": "Partner Center API"
    },
    "attributes": {
        "objectType": "Order"
    }
}