Общие сведения
HTTP-cервис менеджера сервиса ПромоРегистрация предназначен для регистрации пользователя в облачном сервисе Фреш и выполняет следующие операции:
- Создание нового абонента
- Создание нового пользователя абонента
- Создание приложения нового абонента и оформление подписки на тариф
- Оповещение пользователя о регистрации в сервисе и создании приложения.
Пример настройки сервиса для использования программной регистрации
Общие параметры, используемые в запросах к сервису
Имя | Описание | Пример |
---|---|---|
server | Адрес сервера сервиса. |
https://1cfresh.com
|
reg | Адрес сервиса регистрации. |
a/adm/hs/promo_reg
|
authorization | Данные авторизации |
Логин:Пароль в base64
|
Обычно HTTP-cервис менеджера сервиса ПромоРегистрация публикуется во внешней публикации менеджера сервиса. Корневое имя HTTP-cервиса
promo_reg.
Общие параметры ответов всех методов
Параметр | Тип | Описание |
---|---|---|
error | Булево | Указывает, что во время выполнения метода возникла ошибка. |
response | Число | Код возврата. У каждого метода свой набор кодов возврата. |
message | Строка | Комментарий к выполненной операции (например, описание ошибки). |
Пользователю менеджера сервиса, от имени которого вызывается какой-либо метод сервиса, должны быть назначены роли:
УдаленныйДоступБыстраяРегистрация
УдаленныйДоступВнешняяРегистрация
Также в информационной базе менеджера сервиса должны быть штатным образом настроены разрешения внешней регистрации.
Методы сервиса ПромоРегистрация
Сервис ПромоРегистрация поддерживает следующие методы:
Метод | Назначение |
---|---|
check_user | Проверяет существование в сервисе пользователя с указанным логином. |
check_available_app | Получает список доступных видов приложений для тарифа. |
sign_up | Инициирует регистрацию абонента в сервисе и создание нового приложения (тип приложения определяется настройками внутри сервиса). |
get_user_id | Возвращает идентификатор пользователя сервиса по его логину. |
get_app_url | Возвращает URL созданного приложения по указанному логину пользователя. |
send_notification | Отправляет пользователю оповещение о результатах регистрации. |
authorization_code | Запрос кода авторизации стороннего приложения для нового зарегистрированного пользователя. |
send_verification | Отправка письма верификации пользователю сервиса для авторизации стороннего приложения. |
Метод check_user
Проверяет существование в сервисе пользователя с указанной электронной почтой.
Параметры запроса
Параметр | Тип | Обязательный | Значение |
---|---|---|---|
email
| Строка (50) | Да | Адрес электронной почты пользователя |
validate_email | Булево | Нет | Если Истина, то проверяет адрес электронной почты на соответствие требованиям RFC 5321, RFC 5322, RFC 5335, RFC 5336 и RFC 3696. По умолчанию = Ложь. |
Параметры ответа
Параметр | Тип | Значение |
---|---|---|
url | Строка | URL приложения, созданного при регистрации (если приложение уже подготовлено). |
account | Число | Код абонента, созданного при регистрации. |
tenant | Число | Номер области, адрес которой приведен в параметре url . |
Возможные коды ответа
Код | Значение |
---|---|
10200 | Пользователь существует, доступна информация по абоненту. |
10400 | Обязательные параметры либо не указаны, либо некорректны. |
10403 | Пользователь существует, информация по абоненту недоступна. |
10404 | Пользователь с указанным логином не найден. |
10500 | Внутренняя ошибка. |
10509 | Не удалось однозначно определить абонента пользователя. |
Параметры ответа url , account и tenant метода check_user заполняются только в том случае, когда запрашивается информация о пользователях, которые были ранее зарегистрированы методом sign_up от имени той же обслуживающей организации.
Если запрашивается информация о пользователе, который был зарегистрирован в сервисе каким-то другим способом (или от имени другой обслуживающей организации), параметры url , account и tenant не заполняются.
Метод check_available_app
Получить список доступных видов приложений для тарифа
Параметры запроса
Параметр | Тип | Обязательный | Значение |
---|---|---|---|
tariff | Строка (9) | Да | Код тарифа, для которого надо получить список доступных видов приложений |
Параметры ответа
Параметр | Тип | Значение |
---|---|---|
applications | Массив | Массив структур вида:
|
Возможные коды ответа
Код | Значение |
---|---|
10200 | Успешное выполнение |
10400 | Не указан код тарифа |
10404 | Не найден тариф с указанным кодом или для тарифа нет доступных видов приложений |
Метод sign_up
Инициирует регистрацию абонента в сервисе и, опционально, создание нового приложения. Тип и количество создаваемых приложений определяется настройками внешней регистрации менеджера сервиса или переданными параметрами запроса.
Параметры запроса
Параметр | Тип | Обязательный | Значение |
---|---|---|---|
name | Строка(64) | Да | Отображаемое имя пользователя, не логин. |
email | Строка(50) | Да | Адрес электронной почты. Также является логином пользователя в сервисе. |
phone | Строка | Контактный телефон пользователя (не обязательный). | |
public_id | Строка(36) | Публичный идентификатор. Может использоваться для заполнения свойств абонента. Например, для автоматического заполнения свойств организации по ИНН. | |
fast_completion | Булево | При значении параметра Истина подтверждение регистрации пользователем не выполняется. При значении параметра Ложь после выполнения запроса необходимо подтверждение регистрации пользователем. Ссылка на страницу подтверждения регистрации может быть получена в ответе на запрос get_app_url, или ее можно сформировать самостоятельно, используя значение поля ответа registration_code. Значение параметра по умолчанию берется из параметра настройки регистрации Пропустить подтверждение регистрации пользователем. | |
send_notification | Булево | Указывает, что необходимо отправить уведомление на почту пользователя сразу же после регистрации (по умолчанию = Истина). | |
force_create_subscriber | Булево | Принудительное создание абонента для существующего пользователя:
Если не указан, используется значение - | |
sso_user_id | Строка(256) | Идентификатор пользователя провайдера аутентификации. | |
user_info | Структура | Информация о пользователе, аналогичная выдаваемой провайдером аутентификации. Используется для заполнения свойств абонента. | |
promocode
| Строка | Промокод. | |
subid | Строка | Дополнительная информация о промокоде (например, метод его распространения). | |
site_id | Число | Код сайта внешней регистрации. Влияет на выбор шаблона письма о регистрации в сервисе, отправляемого пользователю. | |
timezone | Строка | Часовой пояс. В качестве значения указывается "TZ identifier" из IANA Time Zone Database, например – Также корректное значение часового пояса компьютера клиента можно получить в браузере с помощью JavaScript: Intl.DateTimeFormat().resolvedOptions().timeZone; Кроме того, возможно задание часовых поясов смещением от универсального времени (часовые пояса GMT) в формате: GMT{+/-}h[h][:mm] где hh=0:23, mm=0:59. Если часовой пояс не указан, то используется часовой пояс менеджера сервиса. | |
app | Список (0..*) | Массив с данными о создаваемых приложениях | |
– id | Строка | Имя вида приложения | |
– count | Число | Количество создаваемых приложений указанного вида | |
tariffs | Список (0..*) | Массив с данными о подписках, на которые нужно подписать абонента. Если параметр не задан или его значение это пустой массив, будет использован тариф, заданный в настройках системы по умолчанию. | |
– id | Строка | Код тарифа провайдера | |
– servant_tariff_id | Строка | Код тарифа обслуживающей организации (если тарифы обслуживающей организации используются) | |
– period | Строка | Код периода действия (указывается, если тариф периодический) | |
– days | Число | Длительность действия подписки на тариф в днях (указывается, если тариф непериодический) | |
– parent | Число | Номер строки основной подписки (указывается для тарифов расширений) | |
fields | Список (0..*) | Дополнительные реквизиты | |
| Строка | Имя реквизита | |
– value | Строка, Число, Булево, Дата | Значение реквизита | |
properties | Список (0..*) | Дополнительные сведения | |
| Строка | Имя дополнительного сведения | |
– value | Строка, Число, Булево, Дата | Значение дополнительного сведения |
Если в настройках внешней регистрации для пользователя, от имени которого вызывается метод сервиса, указан провайдер аутентификации, то:
- если в запросе передан идентификатор пользователя этого провайдера (параметр sso_user_id ), то после регистрации становится доступен вход в приложения этого пользователя через указанного провайдера аутентификации;
- если в запросе указан параметр user_info , то при регистрации будет выполнено заполнение свойств созданного абонента согласно правилу трансляции, заданному в свойствах указанного провайдера аутентификации в менеджере сервиса.
Если в настройках внешней регистрации для пользователя, от имени которого вызывается метод сервиса, не указан провайдер аутентификации, то указание параметра sso_user_id приводит к ошибке.
sign_up
указаны тарифы и промокод, который содержит тарифы, заменяющие тарифы регистрации, то все указанные в запросе тарифы будут заменены на тарифы, указанные в промоакции.Параметры ответа
Параметр | Тип | Значение |
---|---|---|
registration_code | Строка(36) | Уникальный регистрационный код приглашения. Для дальнейших действий в рамках сервиса проморегистрации этот код не используется. GET {baseURL}/a/fastreg/hs/FastExternalRegistration/ComleteRegistration/{registration_code} Подробнее см. Интерактивная регистрация – сервис FastExternalRegistration |
state | Строка | Состояние приглашения:
|
account | Число | Код абонента или 0, если при вызове метода sign_up проморегистрации абонент не был создан (при значении Ложь параметра fast_completion ) |
Регистрация для существующих пользователей
Если пользователь сервиса не имеет абонента – создается новый абонент.
Если у пользователя есть абонент и пользователь не является владельцем абонента – создается новый абонент.
Если у пользователя есть абонент и пользователь является владельцем абонента – регистрация добавляется к существующему абоненту.
Возможные коды ответа
Код | Значение |
---|---|
10202 | Запрос на регистрацию успешно принят к обработке, регистрационный код возвращен в параметре registration_code |
10242 | Запрос на регистрацию успешно принят к обработке, однако параметры запроса были скорректированы. Регистрационный код возвращен в параметре registration_code |
10400 | Обязательные параметры либо не указаны, либо некорректны (например, указан код тарифа обслуживающей организации, не соответствующий тарифу провайдера) |
10400 | Идентификатор пользователя не может быть привязан |
10404 | Не найден тариф или тариф обслуживающей организации с указанным кодом |
10404 | Вид приложения с указанным кодом недоступен для использования |
10406 | Некорректное значение количества приложений. Ожидается положительное число |
10406 | Некорректно указаны периоды действия, подробности в сообщении |
10406 | Указанный идентификатор пользователя уже используется |
10412 | Количество приложений превышает доступный лимит по тарифу |
10409 | Указанный адрес электронной почты уже используется в сервисе |
10422 | Длина адреса электронной почты превышает допустимое значение. Допустимо не более 50 символов. |
10452 | Промокод не найден или исчерпано количество активаций промокода |
10453 | Промокод заблокирован |
10454 | Срок активации промокода истек |
10500 | Внутренняя ошибка |
Сообщение "Идентификатор пользователя не может быть привязан" выводится, если не указан сторонний провайдер аутентификации или не разрешена регистрация для указанного провайдера.
Сообщение "Указанный идентификатор пользователя уже используется" выводится, если параметр sso_user_id передан и уже используется для текущего провайдера.
Сообщение "Не найден провайдер сторонней аутентификации" выводится, если в запросе указан параметр sso_user_id , но в настройках внешней регистрации для пользователя, от имени которого вызывается метод сервиса, провайдер аутентификации не задан.
Метод get_user_id
Возвращает идентификатор пользователя сервиса по его логину.
Параметры запроса
Параметр | Тип | Обязательный | Значение |
---|---|---|---|
login | Строка (50) | Да | Логин пользователя в сервисе (адрес электронной почты). |
Параметры ответа
Параметр | Тип | Значение |
---|---|---|
userid | Строка (36) | Идентификатор пользователя сервиса (UID). |
Метод get_app_url
Возвращает URL созданного приложения по указанному логину пользователя.
Параметры запроса
Параметр | Тип | Обязательный | Значение |
---|---|---|---|
login | Строка (50) | Да | Логин пользователя в сервисе (адрес электронной почты). |
send_notification | Булево | Нет | Указывает, что необходимо отправить уведомление на почту пользователя сразу же после подготовки приложения. |
Параметры ответа
Параметр | Тип | Значение |
---|---|---|
url | Строка, Массив | Адрес перехода после регистрации:
|
sso_url | Массив | Массив адресов для перехода в приложение через сторонний провайдер аутентификации. Массив заполняется если:
|
account | Число | Код абонента, созданного при регистрации |
app | Строка | Имя приложения (код вида приложения) |
tenant | Число, Массив | Номер области, адрес которой приведен в параметре url . Если запрашивалось создание нескольких приложений, то возвращается массив |
permanent_url | Строка, Массив | Постоянный адрес приложения (возвращается в любом случае, даже пока приложение не готово к использованию). Если запрашивалось создание нескольких приложений, то возвращается массив |
subscription_id | Строка (9) | Номер подписки созданной по приглашению для регистрации |
subscription_completion | Дата | Дата окончания подписки созданной по приглашению для регистрации |
applications | Массив | Массив со сведениями о созданных приложениях. Параметр возвращается, если при промо-регистрации было создано несколько приложений разных типов |
fast_completion = false
), то в ответе возвращается ссылка на страницу завершения регистрации. В этом случае письмо о создании приглашения пользователю не отправляется, обслуживающая организация контролирует и самостоятельно выполняет передачу ссылки на завершение регистрации пользователю.fast_completion = true
, то по ссылке, выдаваемой методом get_app_url,
производится переход по адресу из настройки витрины – ВнешнийАдресЭтогоПриложения
. Аутентификация выполняется аналогично аутентификации в приложении – если используется провайдер аутентификации, то через него, а если провайдер не используется, то через параметр адресной строки N=ИмяПользователя&P=Пароль
.Возможные коды ответа
Код | Значение |
---|---|
10201 | Приложение успешно создано, адрес возвращен в параметре url . |
10102 | Приложение в процессе создания, необходимо обратиться позже |
10302 | Выполнена переадресация на страницу завершения регистрации |
10400 | Обязательные параметры либо не указаны, либо некорректны |
10408 | Истекло допустимое время быстрой регистрации |
10409 | Пользователь был зарегистрирован в сервисе другим партнером |
10500 | Внутренняя ошибка |
Метод send_notification
Отправляет пользователю оповещение о результатах регистрации.
Параметры запроса
Параметр | Тип | Обязательный | Значение |
---|---|---|---|
login | Строка (50) | Да | Логин пользователя в сервисе (адрес электронной почты) |
Возможные коды ответа
Код | Значение |
---|---|
10200 | Оповещение успешно отправлено. |
10403 | У текущего пользователя нет доступа на отправку оповещения этому пользователю. |
Метод authorization_code
Запрос кода авторизации стороннего приложения.
Параметры запроса
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
login | Строка | Да | Логин пользователя сервиса. |
| Строка | Да | Идентификатор клиента стороннего приложения. |
client_secret | Строка | Да | Секрет клиента стороннего приложения. |
Параметры ответа
Параметр | Тип | Значение |
---|---|---|
code | Строка | Код авторизации стороннего приложения. |
expires_in | Число | Срок жизни кода авторизации. |
redirect_uri | Массив из Строка | Адреса возвратов. |
Метод может быть вызван только для тех пользователей, у которых в качестве первичной регистрации была обслуживающая организация, отправляющая запрос.
Для других случаев нужно использовать метод send_verification
или использовать OAuth2 способ аутентификации пользователя с дальнейшей передачей кода доступа и обмена его на токен.
Полученный код авторизации может использоваться для предоставления доступа приложению к данным пользователя и получения токенов доступа и обновления, при обращению к методу {server}/a/openid/e1cib/oid2op/token
.
Возможные коды ответа
Код | Значение |
---|---|
10200 | Код авторизации успешно получен. |
10404 | Пользователь с логином ''%1'' не найден. |
10403 | Получение кода авторизации доступно только для первичных регистраций. |
10400 | Не найдено стороннее приложение по %1 = %2' Некорректный секрет клиента %1 = %2 |
Метод send_verification
Отправка письма верификации пользователю сервиса для авторизации стороннего приложения.
Параметры запроса
Параметр | Тип | Обязательный | Значение |
---|---|---|---|
email | Строка | Да | Почта пользователя сервиса. |
client_id | Строка | Да | Идентификатор клиента стороннего приложения. |
client_secret | Строка | Да | Секрет клиента стороннего приложения. |
redirect_uri | Строка | Да | Подтвержденный адрес перенаправления в стороннее приложение. |
state | Строка | Да | Возвращаемый статус стороннего приложения. |
В результате вызова метода пользователю отправляется письмо с code
и с ссылкой переходом на callback
стороннего сервиса.
После перехода по ссылке из почты стороннее приложение получит код авторизации.
Полученный код авторизации может использоваться для предоставления доступа приложению к данным пользователя и получения токенов доступа и обновления, при обращению к методу {server}/a/openid/e1cib/oid2op/token
.
Возможные коды ответа
Код | Значение |
---|---|
10200 | Письмо верификации успешно отправлено. |
10404 | Пользователь с адресом электронной почты ''%1'' не найден. |
10400 | Не найдено стороннее приложение по %1 = %2' Некорректный секрет клиента %1 = %2 Адрес перенаправления ''%1'' недоступен. |