Выполнение некоторых операций (например, регистрация файла электронного документа – метод SubmitFileRegistrationTask или регистрация веб-страницы – метод SubmitUrlRegistrationTask) может занимать значительное время на обработку на сервере регистрации. Для таких операций web-служба может (опционально) вызвать URL-обработчик на стороне внешней системы, передавая результаты операции в теле сообще-ния. Адреса URL-обработчиков должны быть переданы технической службе COPYTRUST при подключении внешней системы.
Для инициации длительной операции внешняя система передает запрос на выполнение операции вызовом соответствующего метода web-службы сервиса, передавая необходимые входные данные.
После успешного приема запроса и сохранения данных, веб-служба возвращает уникаль-ный идентификатор задания – TaskID (строку в формате GUID).
В результате выполнения задания на сервере регистрации web-служба вызывает URL-обработчик на стороне внешней системы, передавая идентификатор выполненного задания
TaskID, уникальный идентификатор зарегистрированных данных - RID и другие данные.
Если такой вариант уведомления внешней системы по каким-то причинам неудобен, то присутствует возможность запросить у web-службы результат выполнения операции путем вызова соответствующего метода GetTaskInfo.
В случае успешного выполнения задания внешняя система может запросить сведения о зарегистрированных данных с помощью метода GetRegistrationInfo.
В целях повышения скорости обработки операций по обработке данных рекомендуется перед передачей данных файла для регистрации (с помощью метода SubmitFileRegistrationTask) предварительно проверить, не были ли эти данные зарегистри-рованы ранее, рассчитав SHA-1 хеш-код на стороне внешней системы и проанализировать результат вызова метода CheckRegistrationByDataHash.
При вызове внешней системой функции регистрации данных она передает web-службе шины доступа e-mail пользователя (UserEMail) и UserID (строка, уникально идентифицирующая пользователя внешней площадки). Для этого пользователя создается учетная запись в системе COPYTRUST по следующему алгоритму:
- Проверяется, существует ли уже пользователь с переданным UserID;
- Если пользователь c таким UserID есть - данные регистрируются в его аккаунт, а в качестве e-mail в данных регистрации будет указан переданный UserEMail;
- Если аккаунта пользователя c таким UserID еще нет - он создается на сайте систе-мы COPYTRUST (www.copytrust.ru), его логином является переданный UserEMail, пароль генерируется автоматически и отсылается пользователю письмом. Может возникнуть ситуация, когда аккаунт с таким UserEmail уже есть (например, он был создан ранее в результате самостоятельной регистрации пользователя на www.copytrust.ru). Тогда он повторно не создается, но в любом случае для данного пользователя запоминается его идентификатор во внешней системе UserID. В качестве UserID удобно использовать уникальный ID пользователя внешней системы в ее внутренней БД.
См. также документ с описанием API.