从集成沙盒中删除客户帐户

适用于:合作伙伴中心 | 由世纪互联运营的合作伙伴中心 | Microsoft Cloud for US Government 合作伙伴中心

本文介绍如何打破合作伙伴与客户帐户之间的关系,并重新获得在生产 (提示) 集成沙盒中测试的配额。

重要

删除客户帐户时,将清除与该客户租户关联的所有资源。

必备条件

  • 合作伙伴中心身份验证中所述的凭据。 此方案支持使用独立应用和应用+用户凭据进行身份验证。

  • 客户 ID (customer-tenant-id)。 如果不知道客户的 ID,可以通过选择“客户”工作区、客户列表中的“客户”和“帐户”,在合作伙伴中心中查找该 ID。 在客户的“帐户”页上的“客户帐户信息” 部分查找 Microsoft ID。 Microsoft ID 与客户 ID (customer-tenant-id) 相同。

  • 必须先取消所有 Azure 虚拟机预留实例和软件采购订单,然后才能从 Tip 集成沙盒中删除客户。

C#

若要从 Tip 集成沙盒中删除客户,请执行以下操作:

  1. 将 Tip 帐户凭据传递到 CreatePartnerOperations 方法,以获取 IPartner 接口以执行合作伙伴操作。

  2. 使用合作伙伴操作接口检索权利集合:

    1. 使用客户标识符调用 Customers.ById () 方法以指定客户。

    2. 调用 Entitlements 属性。

    3. 调用 GetGetAsync 方法来检索 Entitlement 集合。

  3. 请确保取消该客户的所有 Azure 虚拟机预留实例和软件采购订单。 对于集合中的每个 权利

    1. 使用 entitlement.ReferenceOrder.Id 从客户的订单集合中获取相应 订单 的本地副本。

    2. Order.Status 属性设置为“Cancelled”。

    3. 使用 Patch () 方法更新顺序。

  4. 取消所有订单。 例如,下面的代码示例使用循环轮询每个订单,直到其状态为“已取消”。

    // IPartnerCredentials tipAccountCredentials;
    // Customer tenant Id to be deleted.
    // string customerTenantId;
    
    IPartner tipAccountPartnerOperations = PartnerService.Instance.CreatePartnerOperations(tipAccountCredentials);
    
    // Get all entitlements whose order must be canceled.
    ResourceCollection<Entitlement> entitlements = tipAccountPartnerOperations.Customers.ById(customerTenantId).Entitlements.Get();
    
    // Cancel all orders
    foreach (var entitlement in entitlements)
    {
        var order = tipAccountPartnerOperations.Customers.ById(customerTenantId).Orders.ById(entitlement.ReferenceOrder.Id).Get();
        order.Status = "Cancelled";
        order = tipAccountPartnerOperations.Customers.ById(customerTenantId).Orders.ById(order.Id).Patch(order);
    }
    
    // Keep polling until the status of all orders is "Cancelled".
    bool proceed = true;
    do
    {
        // Check if all the orders were canceled.
        foreach (var entitlement in entitlements)
        {
            var order = tipAccountPartnerOperations.Customers.ById(customerTenantId).Orders.ById(entitlement.ReferenceOrder.Id).Get();
            if (!order.Status.Equals("Cancelled", StringComparison.OrdinalIgnoreCase))
            {
                proceed = false;
            }
        }
    
        // Wait for a few seconds.
        Thread.Sleep(5000);
    }
    while (proceed == false);
    
    tipAccountPartnerOperations.Customers.ById(customerTenantId).Delete();
    
  5. 确保通过为客户调用 Delete 方法取消所有订单。

示例控制台测试应用项目:合作伙伴中心 PartnerCenterSDK.FeaturesSamples :DeleteCustomerFromTipAccount.cs

REST 请求

请求语法

方法 请求 URI
DELETE {baseURL}/v1/customers/{customer-tenant-id} HTTP/1.1

URI 参数

使用以下查询参数删除客户。

名称 类型 必须 说明
customer-tenant-id GUID Y 该值是 GUID 格式 的 customer-tenant-id ,允许经销商筛选属于经销商的给定客户的结果。

请求标头

有关详细信息,请参阅合作伙伴中心 REST 标头

请求正文

无。

请求示例

DELETE https://api.partnercenter.microsoft.com/v1/customers/<customer-tenant-id> HTTP/1.1
Accept: application/json
MS-RequestId: 655890ba-4d2b-4d09-a95f-4ea1348686a5
MS-CorrelationId: 1438ea3d-b515-45c7-9ec1-27ee0cc8e6bd
Content-Length: 0

REST 响应

如果成功,此方法将返回空响应。

响应的成功和错误代码

每个响应都带有一个 HTTP 状态代码,用于指示成功或失败以及其他调试信息。 请使用网络跟踪工具来读取此代码、错误类型和其他参数。 如需完整列表,请参阅合作伙伴中心 REST 错误代码

响应示例

HTTP/1.1 204 No Content
Content-Length: 0
MS-CorrelationId: 1438ea3d-b515-45c7-9ec1-27ee0cc8e6bd
MS-RequestId: 655890ba-4d2b-4d09-a95f-4ea1348686a5
Date: Wed, 16 Mar 2016 00:43:02 GMT