Alterar a quantidade de uma assinaturaChange the quantity of a subscription

Aplica-se a:Applies to:

  • Partner CenterPartner Center
  • Partner Center operado pela 21VianetPartner Center operated by 21Vianet
  • Partner Center do Microsoft Cloud GermanyPartner Center for Microsoft Cloud Germany
  • Partner Center do Microsoft Cloud for US GovernmentPartner Center for Microsoft Cloud for US Government

Atualiza uma assinatura para aumentar ou diminuir a quantidade de licenças.Updates a subscription to increase or decrease the quantity of licenses.

No painel do Partner Center, essa operação pode ser executada pela primeira vez que um cliente é selecionado.In the Partner Center dashboard, this operation can be performed by first selecting a customer. Em seguida, selecione a assinatura em questão que você deseja renomear.Then, select the subscription in question that you wish to rename. Para concluir, altere o valor no campo quantidade e selecione Enviar.To finish, change the value in the Quantity field, then select Submit.

Pré-requisitosPrerequisites

  • Credenciais, conforme descrito em Autenticação do Partner Center.Credentials as described in Partner Center authentication. Esse cenário dá suporte à autenticação com aplicativos autônomos e aplicativos + credenciais de usuário.This scenario supports authentication with both standalone App and App+User credentials.

  • Uma ID do cliente (customer-tenant-id).A customer ID (customer-tenant-id). Se você não souber a ID do cliente, poderá procurar no painel do Partner Center.If you don't know the customer's ID, you can look it up in the Partner Center dashboard. Selecione CSP no menu do Partner Center e, em seguida, Clientes.Select CSP from the Partner Center menu, followed by Customers. Selecione o cliente na lista de clientes e selecione Conta.Select the customer from the customer list, then select Account. Na página Conta do cliente, procure a ID da Microsoft na seção Informações da Conta do Cliente.On the customer’s Account page, look for the Microsoft ID in the Customer Account Info section. A ID da Microsoft é igual à ID do cliente (customer-tenant-id).The Microsoft ID is the same as the customer ID (customer-tenant-id).

  • Uma ID de assinatura.A subscription ID.

C#C#

Para alterar a quantidade da assinatura de um cliente, primeiro obtenha a assinaturae, em seguida, altere a propriedade Quantity da assinatura.To change the quantity of a customer's subscription, first get the subscription, then change the subscription's Quantity property. Depois que a alteração for feita, use a coleção IAggregatePartner. Customers e chame o método ById () .Once the change is made, use your IAggregatePartner.Customers collection and call the ById() method. Em seguida, chame a propriedade subscriptions , seguida pelo método ById () .Then call the Subscriptions property, followed by the ById() method. Em seguida, conclua chamando o método patch () .Then, finish by calling the Patch() method.

// IAggregatePartner partnerOperations;
// var customerId;
// var subscriptionId;

//retrieving the subscription, for the purpose of the sample
ResourceCollection<Subscription> customerSubscriptions = partnerOperations.Customers.ById(selectedCustomerId).Subscriptions.Get();
Subscription selectedSubscription = customerSubscriptions.Items.FirstOrDefault(sub => sub.Status == SubscriptionStatus.Active);

//update selected subscription,
selectedSubscription.Quantity++;

var updatedSubscription = partnerOperations.Customers.ById(selectedCustomerId).Subscriptions.ById(selectedSubscription.Id).Patch(selectedSubscription);

Exemplo: aplicativo de teste do console.Sample: Console test app. Projeto: classePartnerSDK. FeatureSample: UpdateSubscription.csProject: PartnerSDK.FeatureSample Class: UpdateSubscription.cs

Solicitação RESTREST request

Sintaxe da solicitaçãoRequest syntax

MétodoMethod URI da solicitaçãoRequest URI
DISTRIBUÍDOPATCH {baseURL}/v1/Customers/{Customer-Tenant-ID}/subscriptions/{ID-for-Subscription} http/1.1{baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{id-for-subscription} HTTP/1.1

Parâmetro do URIURI parameter

Esta tabela lista o parâmetro de consulta necessário para alterar a quantidade da assinatura.This table lists the required query parameter to change the quantity of the subscription.

NomeName TipoType ObrigatórioRequired DescriçãoDescription
customer-tenant-idcustomer-tenant-id guidguid YY Um GUID correspondente ao cliente.A GUID corresponding to the customer.
ID de assinaturaid-for-subscription guidguid YY Um GUID correspondente à assinatura.A GUID corresponding to the subscription.

Cabeçalhos de solicitaçãoRequest headers

Para obter mais informações, confira Cabeçalhos REST do Partner Center.For more information, see Partner Center REST headers.

Corpo da solicitaçãoRequest body

Um recurso de inscrição completa é necessário no corpo da solicitação.A full Subscription resource is required in the request body. Verifique se a propriedade Quantity foi atualizada.Ensure that the Quantity property has been updated.

Exemplo de solicitaçãoRequest example

PATCH https://api.partnercenter.microsoft.com/v1/customers/<customer-tenant-id>/subscriptions/<id-for-subscription> HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: ca7c39f7-1a80-43bc-90d8-ee7d1cad3831
MS-CorrelationId: ec8f62e5-1d92-47e9-8d5d-1924af105f2c
Content-Type: application/json
Content-Length: 1029
Expect: 100-continue
Connection: Keep-Alive

{
    "Id": "83ef9d05-4169-4ef9-9657-0e86b1eab1de",
    "FriendlyName": "nickname",
    "Quantity": 2,
    "UnitType": "none",
    "ParentSubscriptionId": null,
    "CreationDate": "2015-11-25T06:41:12Z",
    "EffectiveStartDate": "2015-11-24T08:00:00Z",
    "CommitmentEndDate": "2016-12-12T08:00:00Z",
    "Status": "active",
    "AutoRenewEnabled": false,
    "BillingType": "none",
    "PartnerId": null,
    "ContractType": "subscription",
    "OrderId": "6183db3d-6318-4e52-877e-25806e4971be",
    "Attributes": {
        "Etag": "<etag>",
        "ObjectType": "Subscription"
    }
}

Resposta RESTREST response

Se for bem-sucedido, esse método retornará um código de status http status 200 e propriedades de recurso de assinatura atualizadas no corpo da resposta.If successful, this method returns an HTTP status 200 status code and updated subscription resource properties in the response body.

Códigos de êxito e de erro de respostaResponse success and error codes

Cada resposta retorna um código de status HTTP que indica êxito ou falha e informações adicionais de depuração.Each response returns an HTTP status code that indicates success or failure and additional debugging information. Use uma ferramenta de rastreamento de rede para ler o código de status, o tipo de erro e os parâmetros adicionais.Use a network trace tool to read the status code, error type, and additional parameters. Para obter a lista completa, confira Códigos de Erro.For the full list, see Error Codes.

Quando a operação do patch demorar mais do que o tempo esperado, o Partner Center enviará um código de status http status 202 e um cabeçalho de local que aponta para onde recuperar a assinatura.When the patch operation takes longer than the expected time, the Partner Center sends an HTTP status 202 status code and a location header that points to where to retrieve the subscription. Você pode consultar a assinatura periodicamente para monitorar as alterações de status e quantidade.You can query the subscription periodically to monitor the status and quantity changes.

Exemplos de respostaResponse examples

Exemplo de resposta 1Response example 1

Solicitação bem-sucedida com um código de status http status 200 :Successful request with an HTTP status 200 status code:

PATCH https://api.partnercenter.microsoft.com/v1/customers/<customer-tenant-id>/subscriptions/<subscriptionID> HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-Contract-Version: v1
MS-RequestId: ca7c39f7-1a80-43bc-90d8-ee7d1cad3831
MS-CorrelationId: ec8f62e5-1d92-47e9-8d5d-1924af105f2c
Content-Type: application/json
Content-Length: 1029
Expect: 100-continue
Connection: Keep-Alive

{
    "Id": "83ef9d05-4169-4ef9-9657-0e86b1eab1de",
    "FriendlyName": "nickname",
    "Quantity": 2,
    "UnitType": "none",
    "ParentSubscriptionId": null,
    "CreationDate": "2015-11-25T06:41:12Z",
    "EffectiveStartDate": "2015-11-24T08:00:00Z",
    "CommitmentEndDate": "2016-12-12T08:00:00Z",
    "Status": "active",
    "AutoRenewEnabled": false,
    "BillingType": "none",
    "PartnerId": null,
    "ContractType": "subscription",
    "Links": {
        "Offer": {
            "Uri": "/v1/offers/0CCA44D6-68E9-4762-94EE-31ECE98783B9",
            "Method": "GET",
            "Headers": []
        },
        "Entitlement": {
            "Uri": "/entitlements?key=<key>",
            "Method": "GET",
            "Headers": []
        },
        "Self": {
            "Uri": "/subscriptions?key=<key>",
            "Method": "GET",
            "Headers": []
        }
    },
    "OrderId": "6183db3d-6318-4e52-877e-25806e4971be",
    "Attributes": {
        "Etag": "<etag>",
        "ObjectType": "Subscription"
    }
}

Exemplo de resposta 2Response example 2

Solicitação bem-sucedida com um código de status http status 202 :Successful request with an HTTP status 202 status code:

PATCH https://api.partnercenter.microsoft.com/v1/customers/<customer-tenant-id>/subscriptions/<subscriptionID> HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 01880c1b-1966-40f0-d470-501a66d9948b
MS-CorrelationId: 2c5827c1-d5f9-4835-cc6d-f1918b782c79
Content-Type: application/json
Content-Length: 1432
Connection: Keep-Alive
Location: /customers/<customer-tenant-id>/subscriptions/<subscriptionID>