Compartilhar via


Alterar um ciclo de cobrança de assinatura de cliente

Aplica-se a: Partner Center | Partner Center operado pela 21Vianet | Partner Center para o Microsoft Cloud for US Government

Dica

Essa API permite que você modifique sua frequência de cobrança apenas para assinaturas herdadas.

Para modificar sua frequência de cobrança para assinaturas NCE (New Commerce Experience) e assinaturas herdadas, você pode usar Atualizar uma assinatura por ID - Desenvolvedor de aplicativos de parceiros | API do Microsoft Learn .

Atualiza um pedido de faturamento mensal para anual ou de anual para mensal.

No Partner Center, essa operação pode ser executada navegando até a página de detalhes da assinatura de um cliente. Uma vez lá, você verá uma opção definindo o ciclo de cobrança atual para a assinatura com a capacidade de alterá-la e enviá-la.

Fora do escopo deste artigo:

  • Alterando o ciclo de faturamento para avaliações
  • Alterar os ciclos de faturação de quaisquer ofertas de período não anual (mensal, de seis anos) & Subscrições do Azure
  • Alterando os ciclos de cobrança de assinaturas inativas
  • Alterando os ciclos de cobrança de assinaturas baseadas em licença do Microsoft Online Services

Pré-requisitos

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

  • Uma ID do cliente (customer-tenant-id). Se você não souber a ID do cliente, poderá procurá-la no Partner Center selecionando o espaço de trabalho Clientes, o cliente na lista de clientes e, em seguida, Conta. Na página Conta do cliente, procure a ID da Microsoft na seção Informações da Conta do Cliente. A ID da Microsoft é igual à ID do cliente (customer-tenant-id).

  • Um ID de pedido.

C#

Para alterar a frequência do ciclo de faturamento, atualize a propriedade Order.BillingCycle.

// IAggregatePartner partnerOperations;
// string customerId;
// string offerId;
// string orderId;

var order = new Order()
{
    ReferenceCustomerId = customerId,
    BillingCycle = BillingCycleType.Annual,
    LineItems = new List<OrderLineItem>()
    {
        new OrderLineItem()
        {
            LineItemNumber = 0,
            OfferId = offerId,
            SubscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
            Quantity = 1
        }
    }
};

var createdOrder = partnerOperations.Customers.ById(customerId).Orders.ById(orderId).Patch(order);

Solicitação REST

Sintaxe da solicitação

Método URI da solicitação
PATCH {baseURL}/v1/customers/{customer-tenant-id}/orders/{order-id} HTTP/1.1

Parâmetro do URI

Esta tabela lista o parâmetro de consulta necessário para alterar a quantidade da assinatura.

Nome Digitar Obrigatória Descrição
id de locatário do cliente GUID Y Um ID de locatário de cliente formatado por GUID que identifica o cliente
ID do pedido GUID Y O identificador do pedido

Cabeçalhos da solicitação

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

Corpo da solicitação

As tabelas a seguir descrevem as propriedades no corpo da solicitação.

Pedido

Propriedade Type Obrigatória Descrição
Id string N Um identificador de pedido que é fornecido após a criação bem-sucedida do pedido
ReferenceCustomerId string Y O identificador do cliente
BillingCycle string Y Indica a frequência com que o parceiro é cobrado por este pedido. Os valores suportados são os nomes de membros encontrados em BillingCycleType.
Itens de linha matriz de objetos Y Uma matriz de recursos OrderLineItem
CreationDate datetime N A data em que o pedido foi criado, no formato de data-hora
Atributos Objeto N Contém "ObjectType": "OrderLineItem"

OrderLineItem

Propriedade Type Obrigatória Descrição
LineItemNumber número Y O número do item de linha, começando com 0
OfferId string Y O ID da oferta
SubscriptionId string Y O ID da assinatura
FriendlyName string N O nome amigável para a assinatura definido pelo parceiro para ajudar a desambiguar
Quantidade número Y O número de licenças ou instâncias
PartnerIdOnRecord string N O PartnerID do parceiro de registro
Atributos Objeto N Contém "ObjectType": "OrderLineItem"

Exemplo de solicitação

Atualização para faturamento anual

PATCH https://api.partnercenter.microsoft.com/v1/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/orders/CF3B0E37-BE0B-4CDD-B584-D1A97D98A922 HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 17a2658e-d2cc-439b-a2f0-2aefd9344fbc
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 414
Expect: 100-continue

{
    "Id": null,
    "ReferenceCustomerId": "4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04",
    "BillingCycle" : "Annual",
    "LineItems": [{
            "LineItemNumber": 0,
            "OfferId": "2828BE95-46BA-4F91-B2FD-0BEF192ECF60",
            "SubscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
            "FriendlyName": "Some friendly name",
            "Quantity": 2,
            "PartnerIdOnRecord": null,
            "Attributes": {
                "ObjectType": "OrderLineItem"
            }
        }
    ],
    "CreationDate": null,
    "Attributes": {
        "ObjectType": "Order"
    }
}

Resposta REST

Se bem-sucedido, esse método retorna a ordem de assinatura atualizada no corpo da resposta.

Códigos de êxito e de erro de resposta

Cada resposta vem com um código de status HTTP que indica êxito ou falha e informações de depuração adicionais. Use uma ferramenta de rastreamento de rede para ler esse código, o tipo de erro e os parâmetros adicionais. Para obter a lista completa, confira Códigos de Erro.

Exemplo de resposta

HTTP/1.1 200 OK
Content-Length: 1135
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 17a2658e-d2cc-439b-a2f0-2aefd9344fbc
MS-CV: WtFy3zI8V0u2lnT9.0
MS-ServerId: 020021921
Date: Wed, 25 Jan 2017 23:01:08 GMT

{
    "id": "cf3b0e37-be0b-4cdd-b584-d1a97d98a922",
    "referenceCustomerId": "4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04",
    "billingCycle": "Annual",
    "lineItems": [{
            "lineItemNumber": 0,
            "offerId": "195416C1-3447-423A-B37B-EE59A99A19C4",
            "subscriptionId": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
            "friendlyName": "new offer purchase",
            "quantity": 5,
            "links": {
                "subscription": {
                    "uri": "/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
                    "method": "GET",
                    "headers": []
                }
            }
        },
        {
            "lineItemNumber": 1,
            "offerId": "2828BE95-46BA-4F91-B2FD-0BEF192ECF60",
            "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
            "friendlyName": "Some friendly name",
            "quantity": 2,
            "links": {
                "subscription": {
                    "uri": "/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
                    "method": "GET",
                    "headers": []
                }
            }
        }
    ],
    "creationDate": "2017-01-25T14:53:12.093-08:00",
    "links": {
        "self": {
            "uri": "/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/orders/cf3b0e37-be0b-4cdd-b584-d1a97d98a922",
            "method": "GET",
            "headers": []
        }
    },
    "attributes": {
        "etag": "eyJpZCI6ImNmM2IwZTM3LWJlMGItNGNkZC1iNTg0LWQxYTk3ZDk4YTkyMiIsInZlcnNpb24iOjJ9",
        "objectType": "Order"
    }
}