Partilhar via


Alterar um ciclo de faturação da subscrição de um cliente

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

Gorjeta

Esta API permite-lhe modificar a frequência de faturação apenas para subscrições herdadas.

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

Atualiza uma Encomenda de faturação mensal para anual ou de faturação 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 que define o ciclo de faturamento atual da assinatura com a capacidade de alterá-la e enviá-la.

Fora do âmbito deste artigo:

  • Alterar o ciclo de faturação das versões experimentais
  • Alterar os ciclos de faturação de quaisquer ofertas de prazo não anual (mensal, de seis anos) ou subscrições do Azure
  • Alterar os ciclos de faturação de subscrições inativas
  • Alterar os ciclos de faturação das subscrições baseadas em licenças dos serviços online da Microsoft

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.

  • Um ID de cliente (customer-tenant-id). Se não souber o ID do cliente, pode procurá-lo no Partner Center selecionando a área de trabalho Clientes e, em seguida, 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 é a mesma que a ID do cliente (customer-tenant-id).

  • Um ID de encomenda.

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 = "69829602-C219-40FD-A3D5-4150FCA41A19",
            Quantity = 1
        }
    }
};

var createdOrder = partnerOperations.Customers.ById(customerId).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âmetro URI

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

Nome Type Obrigatório Description
ID do cliente-locatário GUID Y Um ID de cliente-locatário formatado com GUID que identifica o cliente
ID da encomenda GUID Y O identificador de ordem

Cabeçalhos do pedido

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

Corpo do pedido

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

Ordenar

Propriedade Type Obrigatório 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 a ordem foi criada, no formato data-hora
Atributos Object N Contém "ObjectType": "OrderLineItem"

OrderLineItem

Propriedade Type Obrigatório Description
LineItemNumber Número Y O número do item de linha, começando com 0
OfferId string Y O ID da oferta
SubscriptionId cadeia Y O ID da subscrição
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 registo
Atributos Object 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: 60efdd24-17ef-4080-9b02-4fc315f916ff
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": "69829602-C219-40FD-A3D5-4150FCA41A19",
            "FriendlyName": "Some friendly name",
            "Quantity": 2,
            "PartnerIdOnRecord": null,
            "Attributes": {
                "ObjectType": "OrderLineItem"
            }
        }
    ],
    "CreationDate": null,
    "Attributes": {
        "ObjectType": "Order"
    }
}

Resposta do REST

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

Códigos de sucesso e erro de resposta

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

Exemplo de resposta

HTTP/1.1 200 OK
Content-Length: 1135
Content-Type: application/json; charset=utf-8
MS-CorrelationId: 60efdd24-17ef-4080-9b02-4fc315f916ff
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": "1C2B75C1-74A5-472A-A729-7F8CEFC477F9",
            "friendlyName": "new offer purchase",
            "quantity": 5,
            "links": {
                "subscription": {
                    "uri": "/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/subscriptions/1C2B75C1-74A5-472A-A729-7F8CEFC477F9",
                    "method": "GET",
                    "headers": []
                }
            }
        },
        {
            "lineItemNumber": 1,
            "offerId": "2828BE95-46BA-4F91-B2FD-0BEF192ECF60",
            "subscriptionId": "69829602-C219-40FD-A3D5-4150FCA41A19",
            "friendlyName": "Some friendly name",
            "quantity": 2,
            "links": {
                "subscription": {
                    "uri": "/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/subscriptions/69829602-C219-40FD-A3D5-4150FCA41A19",
                    "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"
    }
}