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


Ознакомьтесь с заказом для клиента в корзине

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

Как оформить заказ клиента в корзине.

Этот API является идемпотентным. Партнеры могут вызывать API CheckoutCart несколько раз для одного идентификатора корзины. В ситуации, когда заказ не проходит из-за ошибки, можно повторно попытаться оформить заказ. Если корзина была успешно оформлена ранее, и последующий запрос оформления выполнен для той же корзины, ответ API повторит информацию, возвращенную после первоначального оформления.

Заметка

Срок действия корзины истекает через 7 дней после первоначального создания.

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

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

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

  • Идентификатор для существующей корзины.

C#

Чтобы оформить заказ для клиента, получите ссылку на корзину при помощи идентификатора корзины и клиента. Наконец, вызовите функции Create или CreateAsync, чтобы завершить заказ.

// IAggregatePartner partnerOperations;
// string customerId;
// string cartId;

var cart = partnerOperations.Customers.ById(customerId).Cart.ById(cartId).Checkout();

Ява

Пакет SDK Java для Центра партнеров можно использовать для управления их ресурсами. Это проект с открытым исходным кодом, поддерживаемый сообществом партнеров и официально не поддерживаемый корпорацией Майкрософт. Вы можете получить помощь от сообщества или открыть проблему на сайте GitHub, если возникла проблема.

Чтобы оформить заказ для клиента, получите доступ к корзине, используя идентификатор корзины и клиента. Наконец, вызовите функцию , чтобы завершить заказ.

// IAggregatePartner partnerOperations;
// String customerId;
// String cartId;

Cart cart = partnerOperations.getCustomers().byId(customerId).getCart().byId(cartId).checkout();

PowerShell

Модуль PowerShell для Центра партнеров можно использовать для управления его ресурсами. Это проект с открытым исходным кодом, поддерживаемый сообществом партнеров и официально не поддерживаемый корпорацией Майкрософт. Вы можете получить помощь от сообщества или открыть проблему на сайте GitHub, если возникла проблема.

Чтобы проверить заказ для клиента, выполните submit-PartnerCustomerCart, чтобы завершить заказ.

# $customerId
# $cartId

Submit-PartnerCustomerCart -CartId $cartId -CustomerId $customerId

Запрос REST

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

Метод URI запроса
ЗАПИСЬ {baseURL}/v1/customers/{customer-id}/carts/{cart-id}/checkout HTTP/1.1

Параметры URI

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

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

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

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

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

Нет.

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

POST /v1/customers/d6bf25b7-e0a8-4f2d-a31b-97b55cfc774d/carts/b4c8fdea-cbe4-4d17-9576-13fcacbf9605/checkout HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 4fa6dad6-a89f-4875-8247-8294a10ae1cf
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
MS-PartnerCenter-Client: Partner Center .NET SDK
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 0
Expect: 100-continue

No-Content-Body

Важный

По состоянию на июнь 2023 г. последняя версия пакета SDK для .NET для Центра партнеров 3.4.0 теперь архивируется. Вы можете скачать релиз SDK из GitHubвместе с файлом README, который содержит полезные сведения.

Партнерам рекомендуется продолжать использовать REST API центра партнеров.

Ответ REST

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

Если корзина содержит одну или несколько подписок, соответствующие значения идентификатора подписки отображаются только в ответе REST, если соответствующие подписки подготавливаются во время вызова API. Настройка подписок выполняется асинхронно, поэтому значения идентификатора подписки могут не всегда отображаться в ответе вызова REST оформления корзины. Однако после обеспечения необходимых подписок их значения идентификаторов подписки можно получить с помощью вызовов API Get Orders и Get Order by ID.

Коды успешных и ошибочных ответов

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

Пример ответа для программного обеспечения, нескольких резервирований, плана Azure и продуктовых SKU сторонних производителей.

HTTP/1.1 201 Created
Content-Length: 764
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 4fa6dad6-a89f-4875-8247-8294a10ae1cf
X-Locale: en-US,en-US
MS-CV: sF/wRa2ih0CzbABc.0
MS-ServerId: 000001
Date: Thu, 15 Mar 2018 17:15:01 GMT
?{
  "orders": [
    {
      "id": "3c6f2530-1e31-4088-8230-dd1c31a18bce",
      "alternateId": "3c6f2530-1e31-4088-8230-dd1c31a18bce",
      "referenceCustomerId": "28045616-f6b9-462f-9701-0d89b5e65c44",
      "billingCycle": "monthly",
      "currencyCode": "USD",
      "lineItems": [
        {
          "lineItemNumber": 0,
          "offerId": "MS-AZR-0145P",
          "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
          "termDuration": "P1Y",
          "transactionType": "New",
          "friendlyName": "Microsoft Azure",
          "quantity": 1,
          "links": {...}
        }
      ],
      "creationDate": "2019-01-16T00:48:44.76+00:00",
      "status": "completed",
      "transactionType": "UserPurchase",
      "links": {...},
      ...
    },
    {
      "id": "311qiN8iFwkv-XARWMvXRYAwYKMACVqv1",
      "alternateId": "0a3624c6e47d",
      "referenceCustomerId": "28045616-f6b9-462f-9701-0d89b5e65c44",
      "billingCycle": "one_time",
      "currencyCode": "USD",
      "currencySymbol": "$",
      "lineItems": [
        {
          "lineItemNumber": 0,
          "offerId": "DZH318Z0BQ36:004G:DZH318Z08C0S",
          "termDuration": "P1Y",
          "transactionType": "New",
          "friendlyName": "Reserved VM Instance, Standard_NV12, US East 2, 1 Year",
          "quantity": 1,
          "links": {...}
        },
        {
          "lineItemNumber": 1,
          "offerId": "DZH318Z0BQ36:004J:DZH318Z08B8X",
          "termDuration": "P3Y",
          "transactionType": "New",
          "friendlyName": "Reserved VM Instance, Standard_NV12, US East 2, 3 Years",
          "quantity": 1,
          "links": {...}
        },
        {
          "lineItemNumber": 2,
          "offerId": "DG7GMGF0DWM3:0002:DG7GMGF0DT1M",
          "transactionType": "New",
          "friendlyName": "BizTalk Server 2016 Branch",
          "quantity": 1,
          "links": {...}
        }
      ],
      "creationDate": "2019-01-16T00:48:51.6578126Z",
      "status": "pending",
      "transactionType": "UserPurchase",
      "links": {...},
      ...
    },
    {
      "id": "HVu_cO8Ea7fNRQP4ia1QTpZap-kg_7P71",
      "alternateId": "55a4e6854d54",
      "referenceCustomerId": "28045616-f6b9-462f-9701-0d89b5e65c44",
      "billingCycle": "monthly",
      "currencyCode": "USD",
      "currencySymbol": "$",
      "lineItems": [
        {
          "lineItemNumber": 0,
          "offerId": "DZH318Z0BXWC:0002:DZH318Z0BMRV",
          "termDuration": "P1M",
          "transactionType": "New",
          "friendlyName": "Barracuda WaaS - Medium Plan",
          "quantity": 1,
          "links": {...}
        }
      ],
      "creationDate": "2019-01-16T00:48:44.4514129Z",
      "status": "pending",
      "transactionType": "UserPurchase",
      "links": {...},
      ...
    }
  ],
  ...
}

Пример ответа для новой подписки на основе коммерческой лицензии

  {
    "id": "a68736758d9c",
    "alternateId": "a68736758d9c",
    "referenceCustomerId": "94cd6638-11b6-4323-8c9f-6ae3088adc59",
    "billingCycle": "monthly",
    "currencyCode": "USD"
    "currencySymbol": "US$",
    "lineItems": [
        {
            "lineItemNumber": 0,
            "offerId": "CFQ7TTC0LF8S:0001:CFQ7TTC0N81H",
            "subscriptionId": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
            "termDuration": "P1M",
            "transactionType": "New",
            "friendlyName": "Office 365 E5 without Audio Conferencing",
            "quantity": 1,
            "pricing": {
                "listPrice": 36.48,
                "discountedPrice": 36.48,
                "proratedPrice": 36.48,
                "price": 36.48,
                "extendedPrice": 36.48
            },
            "links": {
                "product": {
                    "uri": "/products/CFQ7TTC0LF8S?country=US",
                    "method": "GET",
                    "headers": []
                },
                "sku": {
                    "uri": "/products/CFQ7TTC0LF8S/skus/0001?country=US",
                    "method": "GET",
                    "headers": []
                },
                "availability": {
                    "uri": "/products/CFQ7TTC0LF8S/skus/0001/availabilities/CFQ7TTC0N81H?country=US",
                    "method": "GET",
                    "headers": []
                }
            }
        }
    ],
    "creationDate": "2023-04-18T22:03:45.4505136Z",
    "status": "pending",
    "transactionType": "UserPurchase",
    "links": {
        "self": {
            "uri": "/customers/94cd6638-11b6-4323-8c9f-6ae3088adc59/orders/a68736758d9c",
            "method": "GET",
            "headers": []
        },
        "provisioningStatus": {
            "uri": "/customers/94cd6638-11b6-4323-8c9f-6ae3088adc59/orders/a68736758d9c/provisioningstatus",
            "method": "GET",
            "headers": []
        },
        "patchOperation": {
            "uri": "/customers/94cd6638-11b6-4323-8c9f-6ae3088adc59/orders/a68736758d9c",
            "method": "PATCH",
            "headers": []
        }
    },
    "totalPrice": 36.48,
    "client": {},
    "attributes": {
        "objectType": "Order"
    }
}