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