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


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

Заметка

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

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

Необходимые условия

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

  • Идентификатор клиента (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. Используйте свойство для получения интерфейса доступных операций с преобразованиями, а затем вызовите метод Get или GetAsync, чтобы получить коллекцию доступных предложений преобразования. Вы должны выбрать один. В следующем примере по умолчанию доступно первое преобразование.

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

  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

Параметр URI

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

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

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

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

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

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

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

POST https://api.partnercenter.microsoft.com/v1/customers/0c39d6d5-c70d-4c55-bc02-f620844f3fd1/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/conversions HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: bd0cde7f-ba87-4010-8a73-1190b641f2a4
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
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: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: bd0cde7f-ba87-4010-8a73-1190b641f2a4
MS-CV: kW4GzmhvHEqCq1ls.0
MS-ServerId: 030020643
Date: Thu, 15 Jun 2017 23:10:40 GMT

 {
    "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
    "offerId": "C0BD2E08-11AC-4836-BDC7-3712E744922F",
    "targetOfferId": "031C9E47-4802-4248-838E-778FB1D2CC05",
    "attributes": {
        "objectType": "ConversionResult"
    }
}