<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <link rel="Stylesheet" type="text/css" href= "../../default.css" /> <meta http-equiv="Content-Type" content= "text/html; charset=utf-8" /> <title>API Активации</title> <style type="text/css"> /*<![CDATA[*/ th {text-align:left;} table {border-collapse:collapse; margin-top: 4px;} td,th {border: 1px solid #B0B0B0; padding-left:10;padding-right:10;} /*]]>*/ </style> </head> <body> <h1>API Активации</h1> <p>API Активации содержит всего 4 функции. Две предназначены для онлайн-активации и две для оффлайн, когда на компьютере отсутствует доступ в Интернет. API Активации предназначено для взаимодействия с Web License Manager, так что разработчику все равно необходимо вызывать API системы лицензирования, чтобы использовать серийные номера, полученные от WebLM.</p><strong id= "VMProtectActivateLicense">VMProtectActivateLicense</strong> <p>Функция передает код активации на сервер и возвращает серийный номер, подходящий для этого конкретного компьютера. В противном случае возвращается <a href="#codes">код ошибки</a>.</p> <pre class="code">int VMProtectActivateLicense(const char *code, char *serial, int size); </pre> <p>Параметр <strong>code</strong> содержит код активации, который получен от Web License Manager в процессе покупки лицензии. Параметр <strong>serial</strong> указывает на блок памяти размера <strong>size</strong>, в который будет помещен сгенерированный WebLM серийный номер.</p><strong id= "VMProtectDeactivateLicense">VMProtectDeactivateLicense</strong> <p>Функция передает серийный номер на сервер для деактивации. Возможные коды возврата перечислены <a href= "#codes">ниже</a>.</p> <pre class="code">int VMProtectDeactivateLicense(const char *serial); </pre> <p>Параметр <strong>serial</strong> содержит серийный номер (не код активации), полученный ранее от WebLM в процессе активации.</p><strong id= "VMProtectGetOfflineActivationString">VMProtectGetOfflineActivationString</strong><br /> <strong id= "VMProtectGetOfflineDeactivationString">VMProtectGetOfflineDeactivationString</strong> <p>Эти две функции работают практически аналогично двум предыдущим с той лишь разницей, что они не пытаются подключиться к серверу WebLM. Вместо этого они возвращают блок текста, который необходимо скопировать на компьютер где есть доступ в Интернет, открыть там форму оффлайн-активации WebLM и вставить туда этот текст.</p> <pre class="code">int VMProtectGetOfflineActivationString(const char *code, char *buf, int size); int VMProtectGetOfflineDeactivationString(const char *serial, char *buf, int size); </pre> <p>Параметры <strong>code</strong> и <strong>serial</strong> аналогичны параметрам онлайн-версий функций, параметр <strong>buf</strong> должен указывать на буфер размером 1000 байт или больше, туда будет скопирован текстовый блок для формы оффлайн-активации. Возможные коды ошибок перечислены <a href= "#codes">ниже</a>.</p> <h3 id="codes">Возможные Коды Ошибок</h3> <table border="1" cellspacing="0" cellpadding="2"> <tr> <th>Код</th> <th>Значение</th> <th>Описание</th> </tr> <tr> <td>ACTIVATION_OK</td> <td>0</td> <td>Активация прошла успешно, переменная <strong>serial</strong> содержит серийный номер.</td> </tr> <tr> <td>ACTIVATION_SMALL_BUFFER</td> <td>1</td> <td>Буфер для серийного номера слишком маленький. Минимальный размер буфера вычисляется по формуле: bits / 8 * 3 / 2 + N, где bits - длина RSA ключа в битах, а N - "константа безопасности" - дополнительное количество байт на случай переносов строк и прочих спец-символов. Рекомендуется использовать как минимум 10.</td> </tr> <tr> <td>ACTIVATION_NO_CONNECTION</td> <td>2</td> <td>Модуль активации не смог подключиться к Web License Manager.</td> </tr> <tr> <td>ACTIVATION_BAD_REPLY</td> <td>3</td> <td>Сервер активации вернул неожиданный результат. Это означает проблемы конфигурации сервера, неправильный url сервера активации или попытку взлома.</td> </tr> <tr> <td>ACTIVATION_BANNED</td> <td>4</td> <td>Этот код активации заблокирован на сервере производителем ПО через интерфейс WebLM (например, из-за утечки кода активации с пиратской копией). Не путать с ACTIVATION_ALREADY_USED.</td> </tr> <tr> <td>ACTIVATION_CORRUPTED</td> <td>5</td> <td>Что-то пошло совсем не так. Ошибка выдается системой самопроверки модуля активации и с высокой вероятностью означает попытку взлома. В случае получения этой ошибки дальнейшие операции с серийными номерами и активацией не могут считаться безопасными.</td> </tr> <tr> <td>ACTIVATION_BAD_CODE</td> <td>6</td> <td>Данный код не найден в базе данных сервера активаций. Возможно пользователь ошибся при вводе кода, так что можно попросить его проверить правильность ввода данных.</td> </tr> <tr> <td>ACTIVATION_ALREADY_USED</td> <td>7</td> <td>Счетчик активаций этого кода дошел до нуля и дальнейшие активации невозможны. Это не обозначает, что код плохой или заблокирован - код хороший. Пользователю нужно связаться с производителем ПО и докупить необходимое количество лицензий или же деинсталлировать программу на других компьютерах, чтобы увеличить значение счетчика в базе данных.</td> </tr> <tr> <td>ACTIVATION_SERIAL_UNKNOWN</td> <td>8</td> <td>Ошибка деактивации. Означает, что данный серийный номер не найден в базе данных сервера. Соответственно, деактивация не может быть проведена успешно.</td> </tr> <tr> <td>ACTIVATION_EXPIRED</td> <td>9</td> <td>Ошибка активации. Означает, что период действия кода активации истек.</td> </tr> <tr> <td>ACTIVATION_NOT_AVAILABLE</td> <td>10</td> <td>Ошибка означает, что активация/деактивация недоступна.</td> </tr> </table> <h3>Маленькие хитрости</h3> <p>API Активации достаточно простое, так что с ним не должно возникнуть сложностей. Не забудьте предоставить пользователям интерфейс для оффлайн-активации, если онлайн-активация завершилась неудачей из-за проблем с доступом в интернет. Также не забывайте, что API Активации не сохраняет полученный серийный номер и не передает его модулю лицензирования - это задача разработчика. Нет необходимости вызывать API Активации при каждом запуске приложения - достаточно вызвать его один раз, получить серийный номер от WebLM, сохранить его в удобном месте и в дальнейшем использовать только его.</p><br /> <br /> <br /> <br /> <br /> <hr noshade="noshade" size="1" /> <div align="center"> © 2006-2015 Copyright VMProtect Software </div> </body> </html>