Содержание

Размещение заказа и получение ключей и ссылок на товары ESD

О заказе

Для размещения заказа в систему MONT необходимо использовать метод AddOrder. Этот метод позволяет размещать заказы на несколько товаров сразу. В качестве входных параметров нужно передавать номер заказа(который должен быть уникален относительно заказов пользователя в системе MONT), и список строк заказа. В каждой строке необходимо указать партномер заказываемой позиции, необходимое количество, и номер строки заказа(который должен быть уникален относительно всех строк заказа пользователя в системе MONT). Мы рекомендуем подходить к формированию номеров заказа следующим образом:

Предположим, к вам в систему размещен заказ на 2 товара - «abc-11111» и «6qr-00006». Ваша система присвоила ему некоторый уникальный для вашей системы номер, например «KEYS-00004280». В таком случае, при размещении заказа в систему MONT номер заказа вы оставляете как у вас в системе(«KEYS-00004280»), а для каждой строки формируете номер по принципу «KEYS-00004280-N», где N - порядковый номер строки заказа.

ВАЖНО!
При проектировании своей системы реселлер должен учитывать, что ключи/ссылки/файлы, заказанные через ESD - невозвратные, и после размещения заказ отменить уже не получится. Поэтому мы рекомендуем размещать заказ в систему MONT только после того, как конечный пользователь совершит оплату. Необходимость следования этой рекомендации определяется бизнес-процессами самого реселлера.

ВАЖНО!(только для CSP)
Если с помощью какой-то строки заказа осуществляется первоначальное оформление подписки, то в ней также необходимо передать идентификатор подписчика, на которого она оформляется

Сценарий работы

  1. Клиент выбирает незаблокированный ( Blocked = false )товар из прайса и указывает необходимое количество лицензий/ключей
  2. Клиент проверяет что сформированный заказ не превышает доступный остаток средств.
  3. Если заказываемый товар требует заполнение лицензии ( LicenseFormRequired = True), то клиент получает форму для заполнения данными о конечном пользователе методом GetUserInfoDescriptionFor. Далее клиент заполняет все необходимые поля контракта EndUserInfoDescriptionContract.
  4. Далее клиент размещает заказ методом AddOrder. Для каждой строки заказа (Тип SendOrderLineContract) необходимо заполнить номер строки заказа (уникальный), количество лицензий/ключей, партномер и заполненную лиц. форму (из предыдущего пункта, если сам товар требует ее заполнения). Крайне рекомендуется перед размещением заказа убедиться в том, что прайс лист не изменился и товар по прежнему доступен.
  5. Результатом вызова метода AddOrder станет контракт (Тип OrderContract), у которого есть поле OrderStatus. Если значение этого поля = 1, то заказ находится в обработке, если статус =2 то выполнение заказа завершено с ошибкой, если статус равен 3 - то заказ успешно выполнен. В случае когда успешно выполнена лишь часть заказа, поля Keys, Links, Files будут содержать ключи, ссылки, ссылки на файлы соответственно только для тех строк заказа (Тип OrderLineContract), которые были полностью успешно выполнены.

Примечание

Стоит обратить внимание, что у вендора Microsoft есть товары, для которых поле FulfillmentType = 1. Для таких товаров вендор ограничил срок действия ссылки 24 часа. Если получателю требуется актуальная ссылка, то ее необходимо запрашивать с помощью того же метода GetOrder. В ответе метода будут содержаться актуальные на момент вызова ссылки.