====== MONT eKey & CSP API ====== :!: **Внимание!** Документация была немного переработана. Ознакомиться с новой версией можно по [[ru:apiv2:start|ссылке]] ---- Данный API необходимо использовать при интеграции по двум направлениям: * MONT eKey - интеграция по направлению ESD - реселлер получает возможность покупки электронных ключей для конечных пользователей. * MONT CSP - интеграция по направления CSP - реселлер получает возможность создавать [[ru:terms:subscription|подписки]] для конечного пользователя([[ru:terms:subscriber|подписчика]]), а также осуществлять управление ими - изменять срок окончания действия, запускать, изменять параметры. ====== Сценарии работы ====== Несмотря на достаточно большую смысловую разницу между этими двумя направлениями, частично они опираются на одни и те-же методы(например, метод [[ru:b2bv2:methods:getpricechanges|]]), поэтому они объединены в один сервис. Но сценарии работы с ними различны, и каждый из них описан в разных разделах. ===== Сценарии работы для продажи электронных ключей ===== В Данном разделе описаны сценарии работы с сервисами MONT при интеграции по направлению ESD. В общем случае, их можно описать следующей схемой: {{:b2bv2:4222.png?800|}} Первые три пункта относятся к построению витрины, и частично выполняются с помощью методов сервиса MONT Content. Подробно эти пункты расписаны в разделе "[[ru::createShop|Построение витрины]]". Рассмотрим ситуацию непосредственно оформления заказа пользователем, на примере стандартного интернет-магазина. Когда пользователь выбрал товары для покупки, и начинает оформлять заказ, необходимо сделать следующие действия: * Заполнение лицензионной формы. Для оформления заказа на некоторые товары конечному пользователю необходимо указать информацию о себе(например, ФИО или название компании). Принципы заполнения лицензионной формы описаны в разделе [[ru:b2bv2:information:licforms|]] * Оформление заказа и размещение его в систему MONT. Рекомендуется выполнять это действие только после оплаты пользователем заказа. Рекомендации по размещению заказа описаны в разделе [[ru:b2bv2:information:AddOrder|Размещение заказа]] * Получение результатов заказа. Большинство заказов в системе MONT обрабатывается асинхронно, поэтому необходимо получать их результат отдельным действием. Подробно процесс получения результатов описан в разделе [[ru:b2bv2:information:GetOrder|Получение заказа]] ===== Сценарии работы для продажи подписок ===== ==== Создание подписки ==== Создание новой подписки всегда производится через создание заказа. При успешно созданном заказе будет создана и активирована новая подписка. Некоторые подписки (в зависимости от вендора) требуют заполнения лиц. формы. Одним из полей этой лиц. формы может стать согласие с дополнительными условиями поставки, использования и пр. (доп. соглашение) Когда заказывается подписка на нового пользователя, необходимо сперва получить поля активационной формы для заполнения. Реселлер на своей стороне создает уникальный идентификатор подписчика и посылает запрос на создание подписчика с этим идентификатором со всеми заполненными полями. Если метод не вернул ошибку, следовательно, подписчик создан и активрован на стороне вендора. ==== Редактирование подписок ==== {{page>terms:subscription}} Ниже представлен граф изменения статусов подписки. Из этого рисунка видно, что при остановке подписки из состояния активна или при запуске подписки из состояния остановлена, она не перейдет сразу в требуемое состояние. Ее статус изменится в определенный промежуточный статус. Система реселлера должна уметь периодически синхронизировать состояния изменившихся подписок. Для этого необходимо использовать методы [[ru:b2bv2:methods:getsubscription|]] и [[ru:b2bv2:methods:getsubscriptionsid|]]. Получив в первый раз все подписки (прислав запрос на получение подписок для 0 версии изменений), вместе с подписками следует сохранить пришедшую в ответе последнюю версию изменений. После этого периодически (например, раз в 10 минут) получайте изменившиеся подписки для вашей версии и перезаписывайте ее пришедшей последней версией изменений. {{:files:images:subscr_status.png?700|}} ==== Синхронизация цен ==== Для синхронизации цен в системе реселлера используйте метод [[ru:b2bv2:methods:getpricechanges|GetPriceChanges]] ==== Управление подписчиками ==== Перед созданием подписки необходимо получить, заполнить и передать правильно заполненную активационную форму с данными о подписчике. Информация о подписчике будет передана соответствующему вендору, и подписчик будет создан и активирован на стороне вендора. После этого можно размещать заказ, который будет содержать в себе подписку и активированного подписчика. В случае когда производится покупка на существующего пользователя (есть идентификатор подписчика, и он уже что-то ранее заказывал) необходимо "понять" нужно ли активировать подписчика у вендора. Для этого сначала вызывается метод [[ru:b2bv2:methods:issubscriberactivated|IsSubscriberActivated]]. Если метод вернул значение false вызывается метод получения активационной формы, а затем метод активации пользователя. ==== Синхронизация подписчиков ==== В API (аналогично синхронизации подписок) существуют 2 метода для синхронизации подписчиков. Если подписчики будут создаваться не только через API, но и через другие сторонние системы (например, через Edmont), может возникнуть необходимость в синхронизации списка подписчиков на стороне реселлера. ====== Точки доступа ====== В данном разделе приведен список точек доступа к данному API. |Тест/Бой|Протокол|Адрес| |Тестовый|XML over HTTP|https://sandbox.mont.ru/version2/Service/B2BServiceV2Xml.svc| |Тестовый|SOAP|https://sandbox.mont.ru/version2/Service/B2BServiceV2.svc| |Боевой|XML over HTTP|https://webstore.mont.ru/version2/Service/B2BServiceV2Xml.svc| |Боевой|SOAP|https://webstore.mont.ru/version2/Service/B2BServiceV2.svc| {{page>b2bv2:methods:start}} ====== Тестовый пример ====== Вы можете скачать тестовый пример из [[https://|гит-репозитория]].