Перенос подписки в новой коммерческой модели

Область применения: Центр партнеров | Центр партнеров, управляемый 21Vianet | Центр партнеров для Microsoft Cloud для государственных организаций США

Соответствующие роли

  • Глобальный администратор
  • Агент по администрированию

Эти методы поддерживают как традиционные, так и новые исходные подписки.

Примечание.

Новые коммерческие возможности для служб на основе лицензий включают множество новых возможностей и доступны для всех поставщик облачных решений (ПОСТАВЩИКОВ услуг). Дополнительные сведения см . в обзоре новых коммерческих возможностей.

Используется для обновления новой коммерческой подписки клиента до целевой подписки или преобразования пробной версии NCE в платную подписку. Чтобы перейти к подписке, необходимо выполнить два запроса API. Для получения номеров SKU, доступных для обновления, сначала получите подходящие переходы GET. Затем post переход для выполнения перехода.

Получение прав на переход

Возвращает список подходящих переходов для данного клиента, подписки и запрошенного типа. Также возвращает право на обновление целевой подписки. Условия перехода могут включать предложения, которые находятся в состоянии EndofSaleWithConversions.

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

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

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

  • Идентификатор подписки для начальной подписки.

Роли GDAP

Вам потребуется по крайней мере одна из следующих ролей GDAP:

  • Читатель каталога
  • Глобальный читатель

Примечание.

Хотя этот API доступен для устаревших версий и NCE, GDAP требуется только для устаревших версий.

Запрос REST

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

Способ URI запроса
GET {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id}/transitionEligibilities?identityyType={immediate, scheduled} HTTP/1.1

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

Используйте следующие параметры запроса для возврата подходящих переходов.

Имя. Type Обязательно Описание
customer-tenant-id guid Y GUID, соответствующий клиенту клиента.
subscription-id guid Y GUID, соответствующий начальной подписке.
entityyType string N Описывает, когда переход должен выполняться; может быть немедленно или запланировано. По умолчанию — Immediate.

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

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

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

нет

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

GET https://api.partnercenter.microsoft.com/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id}/transitionEligibilities?eligibilityType=immediate HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
MS-CorrelationId: 81b08ffe-4cf8-49cd-82db-5c2fb0a8e132
X-Locale: en-US

Ответ REST

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

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

Каждый ответ поставляется с кодом состояния HTTP, который указывает на успешность или сбой и дополнительные сведения об отладке. Используйте средство трассировки сети для чтения этого кода, типа ошибки и других параметров. См. полный список кодов ошибок.

Ошибки доступности

Описания ошибок и значение.

Описание ошибки Значение
Подписка не может быть перенесена. Исходная подписка не активна. Исходное состояние подзапустки неактивно
Подписка не может быть перенесена. Исходная подписка еще не подготовлена. Исходная подзаполнения не выполнена успешно
Тип перехода не совместим. Требуется сопоставление подписок AzureAD. Ошибка LegacyCannotConvertSubscriptionId при вызове GetSubscriptionUpgradeConflicts
Тип перехода несовместим. Конфликтующие подписки для передачи лицензий существуют. Если у любой службы Microsoft Entra есть идентификаторы подписок из другой подписки, добавьте ее в список конфликтов (включая покупки, сделанные с устаревшим или современным потоком покупки).

Ошибки, связанные с доступностью подписки

Если целевая подписка не может быть обновлена, будет возвращена одна из следующих причин.

Пустые списки будут возвращены, если исходная подписка является пробной версией или указана в качестве расписания. Вы можете перейти только в существующую подписку с немедленным переходом (также известным как "midterm"), а не запланированным изменением.

Описание ошибки Код ошибки
Подписка не активна. SubscriptionNotActive = 1
Подписка находится в окне отмены. SubscriptionInCancellationWindow = 2
Длительность срока подписки короче, чем длительность срока действия исходной подписки. SubscriptionTermDurationShorterThanSourceTermDuration = 3
Дата окончания срока подписки до даты окончания срока действия исходной подписки. Дата окончания срока подписки до даты окончания срока действия исходной подписки. =4

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

HTTP/1.1 200 OK
Content-Length: 138
Content-Type: application/json
MS-CorrelationId: 81b08ffe-4cf8-49cd-82db-5c2fb0a8e132
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
Date: Fri, 26 Feb 2021 20:42:26 GMT

{
  "totalCount": 2,
  "items": [
    {
      "operationId": "1caf8ec7-62cc-4ab5-b35d-572d2a62974c",
      "catalogItemId": "CFQ7TTC0KZCR:0001:CFQ7TTC0K71H",
      "title": "Microsoft 365 E5 Test Sku Title",
      "description": "Microsoft 365 E5 Test Sku Description",
      "quantity": 1,
      "subscriptionEligibilities": [
        {
          "isEligible": false,
          "subscriptionId": "92301b7d-7598-4938-d6f2-d31e080e9da6",
          "subscriptionFriendlyName": "Microsoft 365 Business Premium",
          "subscriptionTermDuration": "P1M",
          "subscriptionBillingCycle": "monthly",
          "errors": [
            {
              "code": 3,
              "description": "The subscription's term duration is shorter than the source subscription's term duration."
            }
          ]
        },
        {
          "isEligible": true,
          "subscriptionId": "151467a1-4246-4a00-da7b-3405463d9b78",
          "subscriptionFriendlyName": "Microsoft 365 Business Premium",
          "subscriptionTermDuration": "P1Y",
          "subscriptionBillingCycle": "monthly",
          "errors": []
        }
      ],
      "eligibilities": [
        {
          "isEligible": true,
          "transitionType": "transition_only",
          "errors": []
        },
        {
          "isEligible": false,
          "transitionType": "transition_with_license_transfer",
          "errors": [
            {
              "code": 3,
              "description": "Subscription cannot be transitioned because there are conflicting services."
            }
          ]
        }
      ],
      "attributes": {
        "objectType": "TransitionEligibility"
      }
    },
    {
      "operationId": "1caf8ec7-62cc-4ab5-b35d-572d2a62974c",
      "catalogItemId": "CFQ7TTC0L4M3:0001:CFQ7TTC0K78T",
      "title": "Business Premium Test Sku Title",
      "description": "Business Premium Test Sku Description",
      "quantity": 1,
      "eligibilities": [
        {
          "isEligible": false,
          "transitionType": "transition_with_license_transfer",
          "errors": [
            {
              "code": 3,
              "description": "Subscription cannot be transitioned because there are conflicting services."
            }
          ]
        }
      ],
      "attributes": {
        "objectType": "TransitionEligibility"
      }
    }
  ],
  "attributes": {
    "objectType": "Collection"
  }
}

После перехода

Отправляет запрос на переход для данного клиента и подписки. Возвращает переход со своим начальным состоянием.

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

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

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

  • Идентификатор подписки для начальной подписки.

Роли GDAP

Вам потребуется по крайней мере одна из следующих ролей GDAP:

  • Читатель каталогов или глобальный читатель (только для перехода)
  • Запись каталогов (переход с передачей лицензий)

Примечание.

Хотя этот API доступен для устаревших версий и NCE, GDAP требуется только для устаревших версий.

Запрос REST

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

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

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

Используйте следующие параметры запроса для выполнения перехода.

Имя. Type Обязательно Описание
customer-tenant-id guid Y GUID, соответствующий клиенту клиента.
subscription-id guid Y GUID, соответствующий начальной подписке.

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

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

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

В этой таблице описываются свойства перехода в тексте запроса.

Свойство Тип Обязательно Описание
fromCatalogItemId строка Нет Элемент каталога, из который вы переходите.
fromSubscriptionId строка Нет Идентификатор подписки, из который вы переходите.
toCatalogItemId строка Да Элемент каталога, на который вы переходите.
toSubscriptionId строка Нет Идентификатор подписки, на который вы переходите.
quantity integer Да Количество лицензий для перехода.
termDuration строка Нет Указание срока действия подписки.
billingCycle строка Нет Указание период выставления счетов подписки.
transitionType строка Да Тип перехода. Возможные значения — transition_only, transition_with_license_transfer.

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

POST https://api.partnercenter.microsoft.com/v1/customers/{customerId}/subscriptions/{subscriptionId}/transitions HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
MS-CorrelationId: 81b08ffe-4cf8-49cd-82db-5c2fb0a8e132
X-Locale: en-US

{
    "fromCatalogItemId": "CFQ7TTC0LF8Q:0001:CFQ7TTC0K39X",
    "fromSubscriptionId": "e487e8dc-421e-4275-cb42-3c1c8daccf70",
    "toCatalogItemId": "CFQ7TTC0LF8R:0001:CFQ7TTC0KCSV",
    "toSubscriptionId": "0af52192-4a2a-4364-d25b-c8ecab3a5697",
    "quantity": 2,
    "termDuration": "P1M",
    "billingCycle": "Monthly",
    "transitionType": "transition_only"
}

Ответ REST

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

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

Каждый ответ поставляется с кодом состояния HTTP, который указывает на успешность или сбой и дополнительные сведения об отладке. Используйте средство трассировки сети для чтения этого кода, типа ошибки и других параметров. См. полный список кодов ошибок.

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

HTTP/1.1 200 OK
Content-Length: 138
Content-Type: application/json
MS-CorrelationId: 81b08ffe-4cf8-49cd-82db-5c2fb0a8e132
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
Date: Fri, 26 Feb 2021 20:42:26 GMT

{
    "fromCatalogItemId": "CFQ7TTC0LF8Q:0001:CFQ7TTC0K39X",
    "fromSubscriptionId": "e487e8dc-421e-4275-cb42-3c1c8daccf70",
    "toCatalogItemId": "CFQ7TTC0LF8R:0001:CFQ7TTC0KCSV",
    "toSubscriptionId": "0af52192-4a2a-4364-d25b-c8ecab3a5697",
    "quantity": 2,
    "termDuration": "P1M",
    "billingCycle": "Monthly",
    "transitionType": "transition_only"
    "Events": [
        {
            "name": "Conversion",
            "status": "Started ",
            "timestamp": "2021-01-08T18:01:14.7488618Z",
            "attributes":
            {
                "objectType": "TransitionEvent"
            }
        }
    ],
    "attributes":
    {
        "objectType": "Transition" 
    }
}