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