Преобразование пробной подписки в платную с помощью API Центра партнеров

Примечание.

Эти действия не применимы для новых коммерческих продуктов. Переход новой документации по подписке на коммерцию для преобразования пробных версий New Commerce в платные подписки

Вы можете преобразовать пробную подписку в платную.

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

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

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

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

  • Доступное предложение преобразования.

Преобразование пробной подписки в платную подписку с помощью кода

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

Предложения преобразования указывают количество, которое по умолчанию совпадает с количеством лицензий, что и пробная подписка. Вы можете изменить это количество, задав свойству Quantity количество лицензий, которые требуется приобрести.

Примечание.

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

Чтобы преобразовать пробную подписку с помощью кода, выполните следующие действия.

  1. Получите интерфейс для доступных операций подписки. Необходимо определить клиента и указать идентификатор подписки пробной подписки.

    var subscriptionOperations = partnerOperations.Customers.ById(customerId).Subscriptions.ById(subscriptionId);
    
  2. Получите коллекцию доступных предложений преобразования. Дополнительные сведения и сведения о запросе и ответе для этого метода см. в разделе "Получение списка предложений пробного преобразования".

    var conversions = subscriptionOperations.Conversions.Get();
    
  3. Выберите предложение преобразования. Следующий код выбирает первое предложение преобразования в коллекции.

    var selectedConversion = conversions.Items.ToList()[0];
    
  4. При необходимости укажите количество лицензий для покупки. По умолчанию используется количество лицензий в пробной подписке.

    selectedConversion.Quantity = 10;
    
  5. Вызовите метод Create или CreateAsync, чтобы преобразовать пробную подписку в платную.

    var convertResult = subscriptionOperations.Conversions.Create(selectedConversion);
    

C#

Чтобы преобразовать пробную подписку на платную подписку, выполните следующее:

  1. Определите клиента с помощью метода IAggregatePartner.Customers.ById и идентификатора.

  2. Получите интерфейс для операций подписки, вызвав метод Subscriptions.ById с идентификатором пробной подписки. Сохраните ссылку на интерфейс операций подписки в локальной переменной.

  3. Используйте свойство Conversions для получения интерфейса к доступным операциям с преобразованиями, а затем вызовите метод Get или GetAsync, чтобы получить коллекцию доступных предложений преобразования. Требуется выбрать одну модель. В следующем примере по умолчанию доступно первое преобразование.

  4. Используйте ссылку на интерфейс операций подписки, сохраненный в локальной переменной и свойстве Conversions , чтобы получить интерфейс к доступным операциям с преобразованиями.

  5. Передайте выбранный объект предложения преобразования методу Create или CreateAsync, чтобы попытаться преобразовать пробную версию.

Пример C#

// IAggregatePartner partnerOperations;
// string customerId;
// string subscriptionId;

// Get subscription operations for the trial subscription.
var subscriptionOperations = partnerOperations.Customers.ById(customerId).Subscriptions.ById(subscriptionId);

// Get the available conversions.
var conversions = subscriptionOperations.Conversions.Get();

// If there are no conversions available, we're done.
// Otherwise, convert the trial to the first available conversion offer.
if (conversions.TotalCount <= 0)
{
    System.Console.WriteLine("This subscription has no conversions");
}
else
{
    // Default to the first conversion.
    var selectedConversion = conversions.Items.ToList()[0];

    // Convert the trial and return the result.
    var convertResult = subscriptionOperations.Conversions.Create(selectedConversion);
}

Запрос REST

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

Метод URI запроса
POST {baseURL}/v1/customers/{customer-id}/subscriptions/{subscription-id}/conversions HTTP/1.1

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

Используйте следующие параметры пути для идентификации клиента и пробной подписки.

Имя. Type Обязательно Description
customer-id строка Да Отформатированная строка GUID, определяющая клиента.
subscription-id строка Да Отформатированная строка GUID, определяющая пробную подписку.

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

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

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

Заполненный ресурс преобразования должен быть включен в текст запроса.

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

POST https://api.partnercenter.microsoft.com/v1/customers/0c39d6d5-c70d-4c55-bc02-f620844f3fd1/subscriptions/488745B5-2086-4912-802C-6ABB9F7C3638/conversions HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: bd0cde7f-ba87-4010-8a73-1190b641f2a4
MS-CorrelationId: 8daa6d54-72ab-4d6b-9c7d-9266d3734a47
X-Locale: en-US
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 234
Expect: 100-continue

{
    "OfferId": "C0BD2E08-11AC-4836-BDC7-3712E744922F",
    "TargetOfferId": "031C9E47-4802-4248-838E-778FB1D2CC05",
    "OrderId": "D51A052E-043C-4A2A-AA37-2BB938CEF6C1",
    "Quantity": 25,
    "BillingCycle": "monthly",
    "Attributes": {
        "ObjectType": "Conversion"
    }
}

Ответ REST

В случае успешного выполнения текст ответа содержит ресурс ConversionResult .

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

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

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

HTTP/1.1 200 OK
Content-Length: 211
Content-Type: application/json; charset=utf-8
MS-CorrelationId: 8daa6d54-72ab-4d6b-9c7d-9266d3734a47
MS-RequestId: bd0cde7f-ba87-4010-8a73-1190b641f2a4
MS-CV: kW4GzmhvHEqCq1ls.0
MS-ServerId: 030020643
Date: Thu, 15 Jun 2017 23:10:40 GMT

 {
    "subscriptionId": "488745B5-2086-4912-802C-6ABB9F7C3638",
    "offerId": "C0BD2E08-11AC-4836-BDC7-3712E744922F",
    "targetOfferId": "031C9E47-4802-4248-838E-778FB1D2CC05",
    "attributes": {
        "objectType": "ConversionResult"
    }
}