API программной регистрации в сервисе использует настройки страниц внешней регистрации и все, что с этим связано, в том числе работу обслуживающих организаций и тарификацию.
Подробнее о настройке страниц внешней регистрации написано в документации на ИТС - https://its.1c.ru/db/freshpub#content:232:hdoc
Рассмотрим пример настройки от первоначально развернутой виртуальной машины на Linux для использования API программной регистрации.
Откроем настройки Главное → Сервис → Настройки конфигурации.
Установим признак Отображать обслуживающие организации на вкладке Возможности
Установим признак Использовать приглашения для регистрации на вкладке Регистрация абонентов.
Здесь же установим признак Использовать сервис внешней регистрации абонентов
А также адрес быстрой активации (в нашем случае стенд развернут по адресу https://popma.1c709.ru) = https://popma.1c709.ru/a/httpextreg/hs/FastExternalRegistration/CompleteRegistration/{id}"
На вкладке Тарификация установим признак Использовать контроль тарификации.
Нажимаем на форме кнопку Записать и закрыть.
Добавим новый тариф: Управление тарифами → Тарифы.
В тарифе укажем для примера использование конфигурации "Библиотека технологии сервиса".
На первой странице укажем
- Наименование = Тестовый
- Признак Показывать пользователям абонентов
- Признак Разрешено использовать для страниц внешней регистрации
В списке услуг укажем:
- Количество активных сеансов = 1
- Количество прав пользователей на запуск приложений = 1
- Количество приложений = 1
Укажем конфигурацию "Библиотека технологии сервиса" на вкладке Конфигурации:
Добавим нового абонента: Обслуживание → Абоненты
Заполним в абоненте информацию:
- Наименование = Обслуживающая организация
- Идентификатор = 00000
- Флаг Разрешено подписывать на тарифы
- Предоставляемые взаимоотношения: Обслуживающая организация - Абонент
Запишем и закроем элемент.
Добавим нового пользователя сервиса: Обслуживание → Пользователи сервиса.
Этого пользователя будем использовать для регистрации абонентов по созданной обслуживающей организации.
Заполним у пользователя:
- Полное имя = reg
- Имя (логин) = reg
- Флаг Вход в программу разрешен
- Флаг Аутентификация 1С:Предприятия
- Установить пароль = 123Qwer
- Флаг Аутентификация по протоколу OpenID
- Разрешенные действия (роли):
- Базовые права
- Использование вариантов отчетов
- Пользователь сервиса
- Удаленный доступ (Быстрая регистрация)
- Удаленный доступ (Внешняя регистрация)
Создадим еще одного пользователя, которого будем использовать для доступа к API приложения для его начального заполнения после создания.
Добавим пользователя, и заполним у него реквизиты:
- Полное имя = api
- Имя (логин) = api
- Флаг Вход в программу разрешен
- Флаг Аутентификация 1С:Предприятия
- Установить пароль = 123Qwer
- Флаг Аутентификация по протоколу OpenID
- Разрешенные действия (роли):
- Базовые права
- Использование вариантов отчетов
- Пользователь сервиса
Откроем ранее созданного абонента, перейдем по гиперссылке Пользователи абонента
Добавим созданных пользователей абонента к абоненту.
Пользователь 1:
- Абонент = Обслуживающая организация
- Пользователь сервиса = reg
- Роли пользователя = Владелец абонента (управление абонентом)
Пользователь 2:
- Абонент = Обслуживающая организация
- Пользователь сервиса = api
- Роли пользователя = Пользователь абонента (запуск приложений)
В результате у абонента должно получиться 2 пользователя - reg и api.
Теперь настроим страницу регистрации для использования API (Обслуживание → Сервис внешней регистрации абонентов → Страницы для регистрации абонентов):
Создадим и заполним страницу для регистрации абонентов:
- Наименование = Основная
- Пользователь для внешней регистрации = reg
- Обслуживающая организация = Обслуживающая организация
- Тариф по умолчанию = Тестовый
- Период действия тарифа по умолчанию = (Число) 30
- Флаг Быстрая регистрация приложения по конфигурации
- Приложение = Библиотека технологии сервиса, редакция 1.2
- Флаг Установить доступ к API приложения пользователю
- Пользователь API = api
На этом настройки завершены
Попробуем зарегистрировать абонента с добавлением ему нужного приложения, тарифа и с доступом к API у обслуживающей организации для возможности заполнения приложения начальными данными абонента.
POST https://popma.1c709.ru/a/adm/hs/promo_reg/sign_up Authorization: Basic reg 123Qwer { "email":"user@mail.com", "name": "User", "fast_completion": true, "send_notification": false, }
Должны получить ответ:
HTTP/1.1 200 OK Server: nginx Date: Wed, 19 Jun 2019 12:17:54 GMT Content-Type: application/json;charset=utf-8 Content-Length: 113 Connection: close Cache-Control: no-cache Accept-Charset: utf-8 { "error": false, "response": 10202, "message": "", "registration_code": "434ea0dc-928c-11e9-1c8a-0242ac130004" }
Далее выполняем запрос получения адреса приложения:
POST https://popma.1c709.ru/a/adm/hs/promo_reg/get_app_url Authorization: Basic reg 123Qwer { "login":"user@mail.com", "send_notification": false, }
Должны получить ответ:
HTTP/1.1 200 OK Server: nginx Date: Wed, 19 Jun 2019 12:22:22 GMT Content-Type: application/json;charset=utf-8 Content-Length: 278 Connection: close Cache-Control: no-cache Accept-Charset: utf-8 { "error": false, "response": 10102, "message": "", "url": "https://popma.1c709.ru/a/httpextreg/hs/FastExternalRegistration/CompleteRegistration/434ea0dc-928c-11e9-1c8a-0242ac130004", "tenant": 1, "account": 3, "app": "smtl", "permanent_url": "https://popma.1c709.ru/a/smtl/1" }
Пока приложение готовится, ответ в URL будет на страницу быстрой регистрации и код ответа 102.
Когда приложение подготовится, ответ будет такой:
HTTP/1.1 200 OK Server: nginx Date: Wed, 19 Jun 2019 12:28:39 GMT Content-Type: application/json;charset=utf-8 Content-Length: 188 Connection: close Cache-Control: no-cache Accept-Charset: utf-8 { "error": false, "response": 10201, "message": "", "url": "https://popma.1c709.ru/a/smtl/1", "tenant": 1, "account": 3, "app": "smtl", "permanent_url": "https://popma.1c709.ru/a/smtl/1" }
Код ответа 201 и в url будет адрес приложения, а не адрес завершения регистрации.
Было создано приглашение для регистрации (Обслуживание → Приглашения для регистрации):
И подписка на нужный тариф от обслуживающей организации (Управление тарифами → Подписки):
В списке приложений должно быть создано приложение с соответствующим доступом (Главное → Приложения):
Видим, что у пользователя api есть доступ к этому приложению:
Возможные проблемы
Если приложение долго не создается, нужно проверить, не заблокирован ли шлюз приложений (Администрирование → Структура сервиса → Шлюзы приложений)
Нужно открыть шлюз приложений и проверить его состояние. Если состояние Заблокирован, нужно обновить настройки подключения.
После этого нужно попробовать зарегистрировать пользователя еще раз, но уже по другому email.