Partilhar via


Remover uma relação de revendedor com um cliente

Aplica-se a: Partner Center | Partner Center operado pela 21Vianet | Partner Center for 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 na autenticação do Partner Center. Este cenário suporta autenticação apenas com credenciais App+User.

  • Um ID de cliente (customer-tenant-id). Se não souber o ID do cliente, pode procurá-lo 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 é a mesma que a ID do cliente (customer-tenant-id).

  • Todas as ordens de Instância de VM Reservada do Azure devem ser canceladas antes que um relacionamento de revendedor seja removido. Chame o suporte do Azure para cancelar quaisquer ordens de Instância de VM Reservada do Azure abertas.

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 o 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 quaisquer Instâncias de VM Reservadas do Azure para o cliente devem ser canceladas, 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. Por fim, 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.Ative. 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 suspensas, você poderá 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 a relação, repita o processo de solicitação de uma relação 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

Pedido REST

Sintaxe da solicitação

Método URI do pedido
REMENDO {baseURL}/v1/customers/{customer-tenant-id}/ HTTP/1.1

Parâmetro URI

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

Nome Type Obrigatório Description
ID do cliente-locatário GUID Y O valor é um ID de cliente-locatário formatado com GUID que identifica o cliente.

Cabeçalhos do pedido

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

Corpo do pedido

Um recurso do 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 do REST

Se for bem-sucedido, esse método remove um relacionamento de revendedor para o cliente especificado.

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