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


Изменение подписки клиента период выставления счетов

Область применения: Центр партнеров | Центр партнеров, управляемый 21Vianet | Центр партнеров для Microsoft Cloud for US Government

Совет

Этот API позволяет изменять частоту выставления счетов только для устаревших подписок.

Чтобы изменить частоту выставления счетов для подписок New Commerce Experience (NCE) и устаревших подписок, можно использовать обновление подписки по идентификатору — разработчик приложений-партнеров | API Microsoft Learn.

Обновляет заказ от ежемесячного до ежегодного выставления счетов или от ежегодного до ежемесячного выставления счетов.

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

Вне области этой статьи:

  • Изменение период выставления счетов для пробных версий
  • Изменение период выставления счетов для любых нелетних предложений (ежемесячных, шестилетних) и подписок Azure
  • Изменение период выставления счетов для неактивных подписок
  • Изменение период выставления счетов для подписок на основе лицензий веб-службы Майкрософт

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

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

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

  • Идентификатор заказа.

C#

Чтобы изменить частоту период выставления счетов, обновите свойство Order.BillingCycle.

// IAggregatePartner partnerOperations;
// string customerId;
// string offerId;
// string orderId;

var order = new Order()
{
    ReferenceCustomerId = customerId,
    BillingCycle = BillingCycleType.Annual,
    LineItems = new List<OrderLineItem>()
    {
        new OrderLineItem()
        {
            LineItemNumber = 0,
            OfferId = offerId,
            SubscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
            Quantity = 1
        }
    }
};

var createdOrder = partnerOperations.Customers.ById(customerId).Orders.ById(orderId).Patch(order);

Запрос REST

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

Способ URI запроса
PATCH {baseURL}/v1/customers/{customer-tenant-id}/orders/{order-id} HTTP/1.1

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

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

Имя. Type Обязательно Описание
customer-tenant-id GUID Y Идентификатор GUID, отформатированный клиентом-клиентом , определяющий клиента
order-id GUID Y Идентификатор заказа

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

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

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

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

Порядок

Свойство Тип Обязательно Описание
Артикул строка N Идентификатор заказа, предоставленный при успешном создании заказа
ReferenceCustomerId строка Y Идентификатор клиента
BillingCycle строка Y Указывает частоту выставления счетов партнером за этот заказ. Поддерживаемые значения: имена участников в BillingCycleType.
LineItems массив объектов Y Массив ресурсов OrderLineItem
CreationDate datetime N Дата создания заказа в формате даты и времени
Атрибуты Object N Содержит ObjectType: OrderLineItem

OrderLineItem

Свойство Тип Обязательно Описание
LineItemNumber number Y Номер элемента строки, начиная с 0
OfferId строка Y Идентификатор предложения
SubscriptionId строка Y Идентификатор подписки
Понятное имя строка N Понятное имя подписки, определенной партнером, чтобы помочь диамбигуат
Количество number Y Количество лицензий или экземпляров
PartnerIdOnRecord строка N PartnerID партнера записи
Атрибуты Object N Содержит ObjectType: OrderLineItem

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

Обновление до ежегодного выставления счетов

PATCH https://api.partnercenter.microsoft.com/v1/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/orders/CF3B0E37-BE0B-4CDD-B584-D1A97D98A922 HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 17a2658e-d2cc-439b-a2f0-2aefd9344fbc
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 414
Expect: 100-continue

{
    "Id": null,
    "ReferenceCustomerId": "4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04",
    "BillingCycle" : "Annual",
    "LineItems": [{
            "LineItemNumber": 0,
            "OfferId": "2828BE95-46BA-4F91-B2FD-0BEF192ECF60",
            "SubscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
            "FriendlyName": "Some friendly name",
            "Quantity": 2,
            "PartnerIdOnRecord": null,
            "Attributes": {
                "ObjectType": "OrderLineItem"
            }
        }
    ],
    "CreationDate": null,
    "Attributes": {
        "ObjectType": "Order"
    }
}

Ответ REST

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

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

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

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

HTTP/1.1 200 OK
Content-Length: 1135
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 17a2658e-d2cc-439b-a2f0-2aefd9344fbc
MS-CV: WtFy3zI8V0u2lnT9.0
MS-ServerId: 020021921
Date: Wed, 25 Jan 2017 23:01:08 GMT

{
    "id": "cf3b0e37-be0b-4cdd-b584-d1a97d98a922",
    "referenceCustomerId": "4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04",
    "billingCycle": "Annual",
    "lineItems": [{
            "lineItemNumber": 0,
            "offerId": "195416C1-3447-423A-B37B-EE59A99A19C4",
            "subscriptionId": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
            "friendlyName": "new offer purchase",
            "quantity": 5,
            "links": {
                "subscription": {
                    "uri": "/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
                    "method": "GET",
                    "headers": []
                }
            }
        },
        {
            "lineItemNumber": 1,
            "offerId": "2828BE95-46BA-4F91-B2FD-0BEF192ECF60",
            "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
            "friendlyName": "Some friendly name",
            "quantity": 2,
            "links": {
                "subscription": {
                    "uri": "/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
                    "method": "GET",
                    "headers": []
                }
            }
        }
    ],
    "creationDate": "2017-01-25T14:53:12.093-08:00",
    "links": {
        "self": {
            "uri": "/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/orders/cf3b0e37-be0b-4cdd-b584-d1a97d98a922",
            "method": "GET",
            "headers": []
        }
    },
    "attributes": {
        "etag": "eyJpZCI6ImNmM2IwZTM3LWJlMGItNGNkZC1iNTg0LWQxYTk3ZDk4YTkyMiIsInZlcnNpb24iOjJ9",
        "objectType": "Order"
    }
}