Пример настройки сервиса для использования API программной регистрации (promo_reg)

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.