Share via


Supprimer une relation de revendeur avec un client

S’applique à : Espace partenaires | Espace partenaires géré par 21Vianet | Espace partenaires de Microsoft Cloud for US Government

Supprimez une relation de revendeur avec un client avec lequel vous n’avez plus de transactions.

Prérequis

  • Informations d’identification, comme décrit dans Authentification auprès de l’Espace partenaires. Ce scénario prend en charge l’authentification avec les informations d’identification de l’application et de l’utilisateur uniquement.

  • ID du client (customer-tenant-id). Si vous ne connaissez pas l’ID du client, vous pouvez le rechercher dans l’Espace partenaires. Sélectionnez l’espace de travail Clients dans la page d’accueil de l’Espace partenaires. Sélectionnez le client dans la liste Des clients, puis sélectionnez Compte. Dans la page Compte du client, recherchez l’ID Microsoft dans la section Détails du compte client. L’ID Microsoft est le même que l’ID de client (customer-tenant-id).

  • Toutes les commandes d’instance de machine virtuelle réservée Azure doivent être annulées avant la suppression d’une relation de revendeur. Appelez support Azure pour annuler les commandes d’instance de machine virtuelle réservée Azure ouvertes.

C#

Pour supprimer la relation de revendeur pour un client, vérifiez d’abord que toutes les instances de machine virtuelle réservées Azure actives pour ce client sont annulées. Ensuite, assurez-vous que tous les abonnements actifs pour ce client sont suspendus. Pour ce faire, déterminez l’ID du client pour lequel vous souhaitez supprimer la relation de revendeur. Dans l’exemple de code suivant, l’utilisateur est invité à fournir l’identificateur du client.

Pour déterminer si des instances de machine virtuelle réservées Azure pour le client doivent être annulées, récupérez la collection de droits en appelant la méthode IAggregatePartner.Customers.ById à l’aide de l’identificateur du client pour spécifier le client et la propriété Droits d’utilisation pour récupérer une interface aux opérations de collecte des droits d’utilisation. Appelez la méthode Get ou GetAsync pour récupérer la collection de droits d’utilisation. Filtrez la collection pour les droits avec une valeur EntitlementType de EntitlementType.VirtualMachineReservedInstance et, le cas échéant, annulez-les en appelant le support avant de continuer.

Ensuite, récupérez une collection des abonnements du client en appelant la méthode IAggregatePartner.Customers.ById à l’aide de l’identificateur du client pour spécifier le client et la propriété Subscriptions pour récupérer une interface aux opérations de collecte d’abonnements. Enfin, appelez la méthode Get ou GetAsync pour récupérer la collection d’abonnements du client. Parcourez la collection d’abonnements et vérifiez qu’aucun des abonnements n’a de valeur de propriété Subscription.Status de SubscriptionStatus.Active. Si un abonnement est toujours actif, consultez Suspendre un abonnement pour plus d’informations sur la façon de le suspendre.

Après avoir confirmé que toutes les instances de machine virtuelle réservée Azure actives pour ce client sont annulées et que tous les abonnements actifs sont suspendus, vous pouvez supprimer la relation de revendeur pour le client. Tout d’abord, créez un objet Customer avec la propriété relationshiptopartner définie sur CustomerPartnerRelationship.None. Appelez ensuite la méthode IAggregatePartner.Customers.ById à l’aide de l’identificateur client pour spécifier le client, puis appelez la méthode Patch , en passant le nouvel objet client.

Pour rétablir la relation, répétez le processus de demande d’une relation de revendeur.

// 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");
}

Exemple : Application de test de console. Projet : Classe PartnerSDK.FeatureSample : DeletePartnerCustomerRelationship.cs

Demande REST

Syntaxe de la requête

Méthode URI de demande
PATCH {baseURL}/v1/customers/{customer-tenant-id}/ HTTP/1.1

Paramètre d’URI

Ce tableau répertorie les paramètres de requête requis pour supprimer une relation de revendeur.

Nom Type Requise Description
id-locataire-client guid Y La valeur est un ID client-locataire au format GUID qui identifie le client.

En-têtes de requête

Pour plus d’informations, consultez En-têtes REST de l’Espace Partenaires.

Corps de la demande

Une ressource client est requise dans le corps de la demande. Vérifiez que la propriété RelationshipToPartner a été définie sur aucune.

Exemple de requête

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

Réponse REST

Si elle réussit, cette méthode supprime une relation de revendeur pour le client spécifié.

Codes d’erreur et de réussite de la réponse

Chaque réponse est accompagnée d’un code d’état HTTP qui indique la réussite ou l’échec ainsi que des informations de débogage supplémentaires. Utilisez un outil de trace réseau pour lire ce code, le type d’erreur et des paramètres supplémentaires. Pour obtenir la liste complète, consultez Codes d’erreur REST de l’Espace partenaires.

Exemple de réponse

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