Благодаря EMS Web Service API можно встроить механизм активации новых лицензий напрямую в свой программный продукт. Благодаря этому процесс доставки лицензии может стать полностью автоматизированным. Это возможно при соблюдении двух условий:
a. Сервер Sentinel EMS настроен на работу через интернет и он доступен по сети;
b. Защищенное приложение, из которого выполняется запрос на активацию, имеет доступ в интернет.
Пример реализации:
В защищаемую программу добавляем окно для ввода ключа активации и кнопку “Активировать лицензию”. В обработчик нажатия на кнопку “Активировать лицензию” добавляем код, логика
которого подразумевает выполнение следующих действий:
1) Выполнение сбора данных (C2V с Fingerprint) с устройства клиента, требуемых для генерации клиенту программного Sentinel SL ключа (функция Hasp.GetInfo из Sentinel Licensing API)
Пример кода вызова функции:
//
string scope =
"<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" +
"<haspscope>" +
" <license_manager hostname=\"localhost\" />" +
"</haspscope>";
string format =
"<haspformat format=\"host_fingerprint\"/>";
string vendorCode = “Ваш_Vendor_Code”;
string info = null;
HaspStatus status = Hasp.GetInfo(scope, format, vendorCode, ref info);
if (HaspStatus.StatusOk != status)
{
//handle error
}
//
2) Выполнение логина по ключу активации на сервер Sentinel EMS (POST запрос loginByProductKey.ws из EMS Web Service API):
В качестве параметра в запрос необходимо передать Product Key (ключ активации).
3) !ОПЦИОНАЛЬНО!: Если при генерации ключа активации была включена обязательная или опциональная регистрация клиента по ключу активации (MANDATORY или DESIRED), то может потребоваться реализация такой регистрации. Для этого необходимо предусмотреть дополнительное окно регистрации с требующимися полями: ФИО клиента, его e-mail адрес, физический адрес и т.д..
Заполненные клиентом данные необходимо будет отправить на сервер Sentinel EMS посредством PUT запроса customer.ws из EMS Web Service API
Разумеется, если клиент уже регистрировался ранее, ему должна быть доступна опция “Входа для уже зарегистрированного пользователя”, при этом задача сводится к двум действиям:
- поиску клиента в базе Sentinel EMS по адресу его почты, посредством GET запроса contact.ws?contactEmailId={contactEmailId} из EMS Web Service API
- получив данные о клиенте по его почте, убеждаемся тем самым что клиент действительно зарегистрирован в Sentinel EMS, после чего можно добавить (ассоциировать) клиента с его Product Key посредством добавления адреса почты клиента в его Product Key, делается это с помощью POST запроса productKey/{productKeyId}.ws из EMS Web Service API:
4) !ОПЦИОНАЛЬНО!: После регистрации/входа по ключу активации, можно вывести клиенту информацию по данному ключу: количество доступных активаций, список продуктов, активируемых по ключу активации и т.д. Делается это с помощью GET запроса productKey/{productKeyId}.ws из EMS Web Service API
5) Выполнение запроса на активацию, для чего потребуется выполнить POST запрос productKey/{productKeyId}/activation.ws из EMS Web Service API
В качестве параметра в запрос необходимо передать Product Key (ключ активации) и C2V с Fingerprint, полученный в результате выполнения функции Hasp.GetInfo из Sentinel Licensing API.
6) Полученный в результате ответ будет содержать XML структуру с V2C массивом данных (по сути файл лицензии), который необходимо будет из ответа извлечь и применить к устройству посредством функции Hasp.Update из Sentinel Licensing API
Пример кода вызова функции:
//
string update_data = “V2C_массив_данных”;
string ack_data = null;
HaspStatus status = Hasp.Update(update_data, ref ack_data);
if (HaspStatus.StatusOk != status)
{
//handle error
}
//