Remover um relacionamento de revendedor com um clienteRemove a reseller relationship with a customer

Aplica-se aApplies To

  • Partner CenterPartner Center

Remova uma relação de revendedor com um cliente para o qual você não tem mais transações.Remove a reseller relationship with a customer that you no longer have transactions with.

Pré-requisitosPrerequisites

  • Credenciais, conforme descrito em Autenticação do Partner Center.Credentials as described in Partner Center authentication. Este cenário dá suporte somente à autenticação com credenciais de aplicativo + de usuário.This scenario supports authentication with App+User credentials only.

  • 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).

  • Todos os pedidos de instância de VM reservada do Azure devem ser cancelados antes da remoção de uma relação de revendedor.All Azure Reserved VM Instance orders must be canceled before a reseller relationship is removed. Chame o suporte do Azure para cancelar qualquer ordem de instância de VM reservada do Azure aberta.Call Azure support for canceling any open Azure Reserved VM Instance orders.

C#C#

Para remover a relação de revendedor de um cliente, primeiro certifique-se de que todas as instâncias de VM reservadas do Azure ativas para esse cliente sejam canceladas.To remove the reseller relationship for a customer, first ensure that any active Azure Reserved VM Instances for that customer are canceled. Em seguida, verifique se todas as assinaturas ativas para esse cliente estão suspensas.Next, ensure that all active subscriptions for that customer are suspended. Para fazer isso, determine a ID do cliente para quem você deseja excluir a relação de revendedor.To do so, determine the ID of the customer for whom you want to delete the reseller relationship. No exemplo de código a seguir, o usuário é solicitado a fornecer o identificador do cliente.In the following code example, the user is prompted to provide the customer identifier.

Para determinar se qualquer instância de VM reservada do Azure para o cliente deve ser cancelada, recupere a coleção de direitos chamando o método IAggregatePartner. Customers. ById usando o identificador de cliente para especificar o cliente e a propriedade de direitos para recuperar uma interface para operações de coleta de direitos.To determine if any Azure Reserved VM Instances for the customer must be canceled, retrieve the collection of entitlements by calling the IAggregatePartner.Customers.ById method using the customer identifier to specify the customer, and the Entitlements property to retrieve an interface to entitlement collection operations. Chame o método Get ou getasync para recuperar a coleção de direitos.Call the Get or GetAsync method to retrieve the entitlement collection. Filtre a coleção para quaisquer direitos com um valor EntitlementType de EntitlementType. VirtualMachineReservedInstance e, se houver, cancele-os chamando o suporte antes de continuar.Filter the collection for any entitlements with an EntitlementType value of EntitlementType.VirtualMachineReservedInstance and if there are any, cancel them by calling support before proceeding.

Em seguida, recupere uma coleção de assinaturas do cliente chamando o método IAggregatePartner. Customers. ById usando o identificador de cliente para especificar o cliente e a propriedade subscriptions para recuperar uma interface para as operações de coleta de assinatura.Then, retrieve a collection of the customer's subscriptions by calling the IAggregatePartner.Customers.ById method using the customer identifier to specify the customer, and the Subscriptions property to retrieve an interface to subscription collection operations. Por fim, chame o método Get ou getasync para recuperar a coleção de assinaturas do cliente.Finally, call the Get or GetAsync method to retrieve the customer's subscriptions collection. Percorra a coleção de assinaturas e verifique se nenhuma das assinaturas tem um valor da propriedade subscriptions . status de SubscriptionStatus. Active.Traverse the subscription collection and ensure that none of the subscriptions have a Subscriptions.Status property value of SubscriptionStatus.Active. Se uma assinatura ainda estiver ativa, consulte suspender uma assinatura para obter informações sobre como suspendá-la.If a subscription is still active, see Suspend a subscription for information on how to suspend it.

Depois de confirmar que todas as instâncias de VM reservadas do Azure ativas para esse cliente são canceladas e todas as assinaturas ativas são suspensas, você pode remover a relação de revendedor do cliente.After confirming that all active Azure Reserved VM Instances for that customer are canceled and all active subscriptions are suspended, you can remove the reseller relationship for the customer. Primeiro, crie um novo objeto [Customer/dotnet/API/Microsoft. Store. partnercenter. Models. Customers. Customer) com a propriedade [Customer. RelationshipToPartner/dotnet/API/Microsoft. Store. partnercenter. Models. Customers. Customer. RelationshipToPartner) definida como CustomerPartnerRelationship. None.First, create a new [Customer/dotnet/api/microsoft.store.partnercenter.models.customers.customer) object with the [Customer.RelationshipToPartner/dotnet/api/microsoft.store.partnercenter.models.customers.customer.relationshiptopartner) property set to CustomerPartnerRelationship.None. Em seguida, chame o método IAggregatePartner. Customers. ById usando o identificador de cliente para especificar o cliente e chame o método patch , passando o novo objeto Customer.Then call the IAggregatePartner.Customers.ById method using the customer identifier to specify the customer, and call the Patch method, passing in the new customer object.

Para restabelecer a relação, repita o processo de [solicitando uma relação de revendedor/parceiro-centro/desenvolvimento/solicitação-revendedor-relacionamento).To re-establish the relationship, repeat the process of [requesting a reseller relationship/partner-center/develop/request-reseller-relationship).

// IAggregatePartner partnerOperations;

// Prompt the user the enter the customer ID.
var customerIdToDeleteRelationshipOf = this.Context.ConsoleHelper.ReadNonEmptyString("Please enter the ID of the customer you want to delete the relationship with", "The customer ID can't be empty");

// Determine if there are any active Azure Reserved VM Instances for this customer.
ResourceCollection<Entitlement> entitlements = partnerOperations.Customers.ById(customerIdToDeleteRelationshipOf).Entitlements.Get();

If (entitlements.Items.Where(x => x.EntitlementType == EntitlementType.VirtualMachineReservedInstance).Any())
{
    this.Context.ConsoleHelper.Warning("Please cancel Azure Reserved Virtual Machine Instance orders through support and try again. Aborting the delete customer relationship operation");
               return;
}

// Verify that there are no active subscriptions.
ResourceCollection<Subscription> customerSubscriptions = partnerOperations.Customers.ById(customerIdToDeleteRelationshipOf).Subscriptions.Get();
IList<Subscription> subscriptions = new List<Subscription>(customerSubscriptions.Items);

foreach (Subscription customerSubscription in subscriptions)
{
    if (customerSubscription.Status == SubscriptionStatus.Active)
    {
        this.Context.ConsoleHelper.Warning(String.Format("Subscription with ID :{0}  OfferName: {1} cannot be in active state, ", customerSubscription.Id, customerSubscription.OfferName));
        this.Context.ConsoleHelper.Warning("Please Suspend all the Subscriptions and try again. Aborting the delete customer relationship operation");
               return;
    }
}

// Delete the customer's relationship to the partner.
Customer customer = new Customer();
customer.RelationshipToPartner = CustomerPartnerRelationship.None;
customer = partnerOperations.Customers.ById(customerIdToDeleteRelationshipOf).Patch(customer);

if (customer.RelationshipToPartner == CustomerPartnerRelationship.None)
{
    this.Context.ConsoleHelper.Success("Customer Partner Relationship successfully deleted");
}

Exemplo: aplicativo de teste do console.Sample: Console test app. Projeto: classePartnerSDK. FeatureSample: DeletePartnerCustomerRelationship.csProject: PartnerSDK.FeatureSample Class: DeletePartnerCustomerRelationship.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}/http/1.1{baseURL}/v1/customers/{customer-tenant-id}/ HTTP/1.1

Parâmetro do URIURI parameter

Esta tabela lista os parâmetros de consulta necessários para remover uma relação de revendedor.This table lists the required query parameters to remove a reseller relationship.

NomeName TipoType ObrigatórioRequired DescriçãoDescription
customer-tenant-idcustomer-tenant-id guidguid SY O valor é um GUID formatado Customer-Tenant-ID que identifica o cliente.The value is a GUID formatted customer-tenant-id that identifies the customer.

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 do cliente é necessário no corpo da solicitação.A Customer resource is required in the request body. Verifique se a propriedade RelationshipToPartner foi definida como None.Ensure the RelationshipToPartner property has been set to none.

Exemplo de solicitaçãoRequest example

PATCH https://api.partnercenter.microsoft.com/v1/customers/<customer-tenant-id> HTTP/1.1
Authorization: Bearer <token>
Content-Length: 74
Content-Type: application/json; charset=utf-8
MS-CorrelationId: 9b4bf2ca-f374-4d51-9113-781ca87b8380
MS-RequestId: 9fef8b23-6e3e-45d2-8678-e9fe89c35af5
Date: Fri, 12 Jan 2018 00:31:55 GMT

{
    "relationshipToPartner":"none",
    "attributes":{
        "objectType":"Customer"
    }
}

Resposta RESTREST response

Se for bem-sucedido, esse método removerá uma relação de revendedor para o cliente especificado.If successful, this method removes a reseller relationship for the specified customer.

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

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

Exemplo de respostaResponse example

HTTP/1.1 200 OK
MS-RequestId: 7988dde4-b516-472c-b226-6d53fb18f04e
MS-CorrelationId: 9b4bf2ca-f374-4d51-9113-781ca87b8380
X-Locale: en-US
Content-Type: application/json
Content-Length: 242
Expect: 100-continue

{
    "Id":null,
    "CommerceId":null,
    "CompanyProfile":null,
    "BillingProfile":null,
    "RelationshipToPartner":"none",
    "AllowDelegatedAccess":null,
    "UserCredentials":null,
    "CustomDomains":null,
    "AssociatedPartnerId":null,
    "Attributes":{
        "ObjectType":"Customer"
    }
}