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


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

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

Совет

Этот 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

Параметр URI

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

Имя Тип Обязательно Описание
идентификатор клиента-арендатора GUID У Идентификатор клиента в формате GUID, который идентифицирует клиента.
идентификатор заказа GUID Y Идентификатор заказа

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

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

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

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

Приказ

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

Элемент строки заказа

Недвижимость Тип Обязательно Описание
НомерЭлементаСтроки число Y Номер элемента строки, начиная с 0
ИдентификаторПредложения струна Y Идентификатор предложения
Идентификатор подписки струна Y Идентификатор подписки
Дружественное имя струна N Удобное имя подписки, заданное партнером, чтобы помочь в устранении неоднозначности
Количество число Y Количество лицензий или экземпляров
PartnerIdOnRecord струна N PartnerID партнера записи
Атрибуты Объект 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"
    }
}