다음을 통해 공유


고객과 재판매인의 관계 제거

적용 대상: 파트너 센터 | 21Vianet에서 운영되는 파트너 센터 | Microsoft Cloud for US Government 파트너 센터

더 이상 트랜잭션이 없는 고객과 재판매인 관계를 제거합니다.

필수 조건

  • 자격 증명(파트너 센터 인증에서 설명). 이 시나리오는 앱 + 사용자 자격 증명을 사용한 인증만 지원합니다.

  • 고객 ID (customer-tenant-id). 고객의 ID를 모르는 경우 파트너 센터에서 찾아볼 수 있습니다. 파트너 센터 홈페이지에서 고객 작업 영역을 선택합니다. 고객 목록에서 고객을 선택한 다음, 계정을 선택합니다. 고객 계정 페이지의 고객 계정 세부 정보 섹션에서 Microsoft ID를 찾습니다. Microsoft ID는 고객 ID(customer-tenant-id)와 동일합니다.

  • 재판매인 관계가 제거되기 전에 모든 Azure Reserved VM 인스턴스 주문을 취소해야 합니다. 열려 있는 Azure Reserved VM 인스턴스 주문을 취소하려면 Azure 지원 호출합니다.

C#

고객에 대한 재판매인 관계를 제거하려면 먼저 해당 고객에 대한 활성 Azure Reserved VM 인스턴스가 취소되었는지 확인합니다. 다음으로, 해당 고객의 모든 활성 구독이 일시 중단되었는지 확인합니다. 이렇게 하려면 재판매인 관계를 삭제하려는 고객의 ID를 확인합니다. 다음 코드 예제에서는 사용자에게 고객 식별자를 제공하라는 메시지가 표시됩니다.

고객에 대한 Azure Reserved VM 인스턴스를 취소해야 하는지 확인하려면 고객 식별자를 사용하여 IAggregatePartner.Customers.ById 메서드를 호출하여 자격 컬렉션을 검색하고 Entitlements 속성을 사용하여 자격 컬렉션 작업에 대한 인터페이스를 검색합니다. Get 또는 GetAsync 메서드를 호출하여 자격 컬렉션을 검색합니다. EntitlementType.VirtualMachineReservedInstance의 EntitlementType 값을 사용하여 모든 자격대한 컬렉션을 필터링하고 있는 경우 계속하기 전에 지원을 호출하여 취소합니다.

그런 다음 고객 식별자를 사용하여 IAggregatePartner.Customers.ById 메서드를 호출하여 고객의 구독 컬렉션을 검색하고 구독 컬렉션 작업에 대한 인터페이스를 검색하는 Subscriptions 속성을 검색합니다. 마지막으로 Get 또는 GetAsync 메서드를 호출하여 고객의 구독 컬렉션을 검색합니다. 구독 컬렉션을 트래버스하고 구독에 SubscriptionStatus.Active의 Subscriptions.Status 속성 값이 없는지 확인합니다. 구독이 여전히 활성 상태인 경우 구독을 일시 중단하는 방법에 대한 자세한 내용은 구독 일시 중단을 참조하세요.

해당 고객에 대한 모든 활성 Azure Reserved VM 인스턴스가 취소되고 모든 활성 구독이 일시 중단되었음을 확인한 후 고객의 재판매인 관계를 제거할 수 있습니다. 먼저 relationshiptopartner 속성이 CustomerPartnerRelationship.None으로 설정된 새 Customer 개체를 만듭니다. 그런 다음 고객 식별자를 사용하여 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
패치 {baseURL}/v1/customers/{customer-tenant-id}/ HTTP/1.1

URI 매개 변수

이 표에는 재판매인 관계를 제거하는 데 필요한 쿼리 매개 변수가 나열됩니다.

속성 Type 필수 설명
customer-tenant-id guid Y 값은 고객을 식별하는 GUID 형식 의 customer-tenant-id 입니다.

요청 헤더

자세한 내용은 파트너 센터 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"
    }
}