Поделиться через


Удаление связи торгового посредника с клиентом

Область применения: Центр партнеров | Центр партнеров, управляемый 21Vianet | Центр партнеров для Microsoft Cloud for US Government

Удалите связь торгового посредника с клиентом, с которым у вас больше нет транзакций.

Необходимые компоненты

  • Учетные данные, описанные в статье о проверке подлинности в Центре партнеров. Этот сценарий поддерживает только проверку подлинности с использованием учетных данных приложений и пользователей.

  • Идентификатор клиента (customer-tenant-id). Если вы не знаете идентификатор клиента, его можно найти в Центре партнеров. Выберите рабочую область "Клиенты" на домашней странице Центра партнеров. Выберите клиента из списка клиентов и выберите учетную запись. На странице "Учетная запись клиента" найдите идентификатор Майкрософт в разделе сведений о учетной записи клиента. Идентификатор Майкрософт совпадает с идентификатором клиента (customer-tenant-id).

  • Перед удалением связи торгового посредника необходимо отменить все заказы на зарезервированные экземпляры виртуальных машин Azure. Вызовите поддержка Azure для отмены всех открытых заказов на зарезервированные экземпляры виртуальных машин Azure.

C#

Чтобы удалить связь торгового посредника для клиента, сначала убедитесь, что все активные экземпляры зарезервированных виртуальных машин Azure для этого клиента отменены. Затем убедитесь, что все активные подписки для этого клиента приостановлены. Для этого определите идентификатор клиента, для которого вы хотите удалить отношения торгового посредника. В следующем примере кода пользователю будет предложено указать идентификатор клиента.

Чтобы определить, нужно ли отменить любые зарезервированные экземпляры виртуальных машин Azure для клиента, получите коллекцию прав, вызвав метод IAggregatePartner.Customers.ById с помощью идентификатора клиента и свойства "Права ", чтобы получить интерфейс для операций сбора прав. Вызовите метод Get или GetAsync, чтобы получить коллекцию прав. Отфильтруйте коллекцию для любых прав со значением EntitlementType.VirtualMachineReservedInstance и, если есть какие-либо, отмените их, вызвав поддержку перед продолжением.

Затем получите коллекцию подписок клиента, вызвав метод IAggregatePartner.Customers.ById с помощью идентификатора клиента, а также свойство Subscriptions для получения интерфейса для операций сбора подписок. Наконец, вызовите метод Get или GetAsync , чтобы получить коллекцию подписок клиента. Просматривайте коллекцию подписок и убедитесь, что ни одна из подписок не имеет значения свойства Subscriptions.Status для SubscriptionStatus.Active. Если подписка по-прежнему активна, см . сведения о приостановке подписки .

Убедившись, что все активные экземпляры зарезервированных виртуальных машин Azure для этого клиента отменены и все активные подписки приостановлены, вы можете удалить связь торгового посредника для клиента. Сначала создайте новый объект Customer со свойством relationshiptopartner, заданным для CustomerPartnerRelationship.None. Затем вызовите метод IAggregatePartner.Customers.ById, используя идентификатор клиента, чтобы указать клиента, и вызвать метод Patch, передав новый объект клиента.

Чтобы повторно установить связь, повторите процесс запроса отношения торгового посредника.

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

Пример: тестовое приложение консоли. Проект: класс PartnerSDK.FeatureSample: DeletePartnerCustomerRelationship.cs

Запрос REST

Синтаксис запроса

Способ URI запроса
PATCH {baseURL}/v1/customers/{customer-tenant-id}/ HTTP/1.1

Параметр универсального кода ресурса

В этой таблице перечислены необходимые параметры запроса для удаления отношения торгового посредника.

Имя. Type Обязательно Описание
customer-tenant-id guid Y Это значение — идентификатор GUID, отформатированный клиентом-клиентом , который определяет клиента.

Заголовки запросов

Дополнительные сведения см. в статье о заголовках REST Центра партнеров.

Текст запроса

Ресурс клиента требуется в тексте запроса. Убедитесь, что свойство RelationshipToPartner не задано.

Пример запроса

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

Ответ REST

В случае успешного выполнения этот метод удаляет связь торгового посредника для указанного клиента.

Коды успешного выполнения и ошибок в ответе

Каждый ответ сопровождается кодом состояния HTTP, обозначающим успешное или неудачное выполнение, и дополнительными сведениями для отладки. Используйте средство трассировки сети, чтобы просматривать этот код, тип ошибки и дополнительные параметры. Полный список ответов есть в статье Коды ошибок REST в Центре партнеров.

Пример ответа

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