Compartilhar via


Remover um relacionamento de revendedor com um cliente

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

Remova um relacionamento de revendedor com um cliente com o qual você não tem mais transações.

Pré-requisitos

  • Credenciais, conforme descrito em Autenticação do Partner Center. Este cenário dá suporte somente à autenticação com credenciais de aplicativo + de usuário.

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

  • Todos os pedidos de Instância de VM Reservada do Azure devem ser cancelados antes que uma relação de revendedor seja removida. Chame o suporte do Azure para cancelar quaisquer pedidos de Instância de VM Reservada do Azure abertos.

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. Em seguida, verifique se todas as assinaturas ativas desse cliente estão suspensas. Para fazer isso, determine a ID do cliente para o qual você deseja excluir o relacionamento de revendedor. No exemplo de código a seguir, o usuário é solicitado a fornecer o identificador do cliente.

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 do cliente para especificar o cliente e a propriedade Entitlements para recuperar uma interface para operações de coleta de direitos. Chame o método Get ou GetAsync para recuperar a coleção de direitos. 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.

Em seguida, recupere uma coleção de assinaturas do cliente chamando o método IAggregatePartner.Customers.ById usando o identificador do cliente para especificar o cliente e a propriedade Subscriptions para recuperar uma interface para operações de coleta de assinaturas. Finalmente, chame o método Get ou GetAsync para recuperar a coleção de assinaturas do cliente. Percorra a coleção de assinaturas e verifique se nenhuma das assinaturas tem um valor de propriedade Subscriptions.Status de SubscriptionStatus.Active. Se uma assinatura ainda estiver ativa, consulte Suspender uma assinatura para obter informações sobre como suspendê-la.

Depois de confirmar que todas as Instâncias de VM Reservadas do Azure ativas para esse cliente foram canceladas e todas as assinaturas ativas foram suspensas, você pode remover o relacionamento de revendedor do cliente. Primeiro, crie um novo objeto Customer com a propriedade relationshiptopartner definida como CustomerPartnerRelationship.None. Em seguida, chame o método IAggregatePartner.Customers.ById usando o identificador do cliente para especificar o cliente e chame o método Patch , passando o novo objeto do cliente.

Para restabelecer o relacionamento, repita o processo de solicitação de um relacionamento de revendedor.

// 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 de console. Projeto: PartnerSDK.FeatureSample Classe: DeletePartnerCustomerRelationship.cs

Solicitação REST

Sintaxe da solicitação

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

Parâmetro do URI

Esta tabela lista os parâmetros de consulta necessários para remover uma relação de revendedor.

Nome Digitar Obrigatória Descrição
id de locatário do cliente guid Y O valor é um ID de cliente-locatário formatado por GUID que identifica o cliente.

Cabeçalhos da solicitação

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

Corpo da solicitação

Um recurso Cliente é necessário no corpo da solicitação. Verifique se a propriedade RelationshipToPartner foi definida como nenhuma.

Exemplo de solicitação

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: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 9fef8b23-6e3e-45d2-8678-e9fe89c35af5
Date: Fri, 12 Jan 2018 00:31:55 GMT

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

Resposta REST

Se bem-sucedido, esse método remove uma relação de revendedor para o cliente especificado.

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 REST do Partner Center.

Exemplo de resposta

HTTP/1.1 200 OK
MS-RequestId: 7988dde4-b516-472c-b226-6d53fb18f04e
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
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"
    }
}