Отмена коммерческой платформы или новой коммерческой подписки с помощью API Центра партнеров
Область применения: Центр партнеров
В этой статье описывается, как использовать API Центра партнеров для отмены коммерческой платформы или нового ресурса подписки, соответствующего идентификатору клиента и подписки.
Примечание.
Новые возможности коммерческой торговли для служб на основе лицензий включают множество новых возможностей и доступны для всех поставщик облачных решений (ПОСТАВЩИКОВ УСЛУГ). Дополнительные сведения см . в обзоре новых коммерческих возможностей.
Новые коммерческие подписки могут быть отменены в течение 7 дней, за исключением случаев, когда в противном случае требуется закон, покупка или продление. После прохождения этого окна подписки больше не могут быть отменены, и API вызовет ошибку.
Необходимые компоненты
Учетные данные, описанные в статье о проверке подлинности в Центре партнеров. Этот сценарий поддерживает проверку подлинности с помощью автономных учетных данных приложения и приложения и пользователя.
Идентификатор клиента (
customer-tenant-id
). Если вы не знаете идентификатор клиента, его можно найти в Центре партнеров в рабочей области "Клиенты". Выберите клиента в списке клиентов и щелкните Учетная запись. На странице "Учетная запись клиента" найдите идентификатор Майкрософт в разделе "Сведения о учетной записи клиента". Идентификатор Майкрософт совпадает с идентификатором клиента (customer-tenant-id
).Идентификатор подписки.
Метод Центра партнеров
Чтобы отменить подписку коммерческой платформы в Центре партнеров, выполните следующее:
Выберите подписку, которую вы хотите отменить.
Выберите параметр "Отмена подписки", а затем нажмите кнопку "Отправить".
C#
Чтобы отменить подписку клиента, выполните следующее:
Получение подписки по идентификатору.
Измените свойство status подписки. Сведения о кодах состояния см. в перечислении SubscriptionStatus.
После внесения изменений используйте
IAggregatePartner.Customers
коллекцию и вызовите метод ById().Вызовите свойство Subscriptions, за которым следует метод ById().
Вызовите метод Patch().
// IAggregatePartner partnerOperations;
// var selectedCustomerId as string;
// Subscription selectedSubscription;
selectedSubscription.Status = SubscriptionStatus.Deleted;
var updatedSubscription = partnerOperations.Customers.ById(selectedCustomerId).Subscriptions.ById(selectedSubscription.Id).Patch(selectedSubscription);
Пример тестового приложения консоли
Пример: тестовое приложение консоли. Проект: класс PartnerSDK.FeatureSample: UpdateSubscription.cs
Запрос REST
Синтаксис запроса
Способ | URI запроса |
---|---|
PATCH | {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id} HTTP/1.1 |
Параметр универсального кода ресурса
В этой таблице перечислены необходимые параметры запроса для приостановки подписки.
Имя. | Type | Обязательно | Описание |
---|---|---|---|
customer-tenant-id | guid | Y | GUID, соответствующий клиенту. |
subscription-id | guid | Y | GUID, соответствующий подписке. |
Заголовки запросов
Дополнительные сведения см. в статье о заголовках REST Центра партнеров.
Текст запроса
В тексте запроса нужно указать полный ресурс Subscription. Чтобы отменить подписку, убедитесь, что свойство Status было обновлено до значения deleted
.
Поле | Тип | Обязательно | Описание |
---|---|---|---|
состояние | string | Y | Состояние подписок. Параметры могут быть : active , suspended deleted |
Пример запроса
PATCH https://api.partnercenter.microsoft.com/v1/customers/<customer-tenant-id>/subscriptions/<subscription-id> HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: ca7c39f7-1a80-43bc-90d8-ee7d1cad3831
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
If-Match: <etag>
Content-Type: application/json
Content-Length: 1029
Expect: 100-continue
Connection: Keep-Alive
{
"id": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"offerId": "DZH318Z0BXWC:0001:DZH318Z0BMJX",
"offerName": "offer Name",
"friendlyName": "friendly Name",
"quantity": 1,
"unitType": "License(s)",
"hasPurchasableAddons": false,
"creationDate": "2019-01-04T01:00:12.6647304Z",
"effectiveStartDate": "2019-01-09T00:21:45.9263727+00:00",
"commitmentEndDate": "2019-02-08T00:21:45.9263727+00:00",
"status": "deleted",
"autoRenewEnabled": false,
"isTrial": false,
"billingType": "license",
"billingCycle": "monthly",
"termDuration": "P1M",
"refundOptions": [{
"type": "Full",
"expiresAt": "2019-01-10T00:21:45.9263727+00:00"
}],
"isMicrosoftProduct": false,
"partnerId": "",
"contractType": "subscription",
"publisherName": "publisher Name",
"orderId": "ImxjLNL4_fOc-2KoyOxGTZcrlIquzls11",
"attributes": {"objectType": "Subscription"},
}
Ответ REST
Если запрос выполнен успешно, этот метод возвращает свойства ресурса удаленной подписки в тексте ответа.
Коды успешного выполнения и ошибок в ответе
Каждый ответ сопровождается кодом состояния HTTP, обозначающим успешное или неудачное выполнение, и дополнительными сведениями для отладки. Используйте средство трассировки сети, чтобы просматривать этот код, тип ошибки и дополнительные параметры. См. полный список кодов ошибок.
Пример ответа
HTTP/1.1 200 OK
Content-Length: 1322
Content-Type: application/json; charset=utf-8
MS-RequestId: ca7c39f7-1a80-43bc-90d8-ee7d1cad3831
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
{
"id": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"offerId": "DZH318Z0BXWC:0001:DZH318Z0BMJX",
"offerName": "offer Name",
"friendlyName": "friendly Name",
"quantity": 1,
"unitType": "License(s)",
"hasPurchasableAddons": false,
"creationDate": "2019-01-04T01:00:12.6647304Z",
"effectiveStartDate": "2019-01-09T00:21:45.9263727+00:00",
"commitmentEndDate": "2019-02-08T00:21:45.9263727+00:00",
"status": "deleted",
"autoRenewEnabled": false,
"isTrial": false,
"billingType": "license",
"billingCycle": "monthly",
"termDuration": "P1M",
"refundOptions": [
{
"type": "Full",
"expiresAt": "2019-01-10T00:21:45.9263727+00:00"
}
],
"isMicrosoftProduct": false,
"partnerId": "",
"contractType": "subscription",
"links": {
"product": {
"uri": "/products/DZH318Z0BXWC?country=US",
"method": "GET",
"headers": []
},
"sku": {
"uri": "/products/DZH318Z0BXWC/skus/0001?country=US",
"method": "GET",
"headers": []
},
"availability": {
"uri": "/products/DZH318Z0BXWC/skus/0001/availabilities/DZH318Z0BMJX?country=US",
"method": "GET",
"headers": []
},
"self": {
"uri": "/customers/5921f00a-32c0-4457-aaa1-e8018c650895/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"method": "GET",
"headers": []
}
},
"publisherName": "publisher Name",
"orderId": "ImxjLNL4_fOc-2KoyOxGTZcrlIquzls11",
"attributes": {
"etag": "",
"objectType": "Subscription"
}
}