Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Назначение модуля

Модуль предназначен для работы с мобильным приложением на iOS и Android.  

Настройка модуля

Установите модуль на сервер, используя скрипт update.sh, обновите клиент биллинга. Затем создайте экземпляр модуля, назвав его произвольным образом (например, Mobile).

Создайте конфигурацию модуля и установить ее. В конфигурации обязательно должен быть параметр token.signature.key, его значением подписывается токен, его минимальная длина 32 байта, от него будет зависеть какой алгоритм будет использован(HMAC 256/384/512 итд), размерность можете посчитать в любом online калькуляторе(например)

Далее вам нужно будет предоставить приложению доступ до модуля, например из вашей сети он может выглядеть так http://12.34.56.100:8080/bgbilling/mobapi/13 (где 13 код модуля), но так как вы скорее всего находитесь за nginx-ом, то нужно будет настроить путь с наружи( например - https://provider.ru/mobile )

Со всеми параметрами конфигурации и их описанием вы можете ознакомиться в шаблоне модуля, а ниже представлены некоторые параметры с описанием:

Конфигурация
# Ключ для токена. Обязательный параметр. Его изменение приведет к тому, что все ранее выданные токены(предыдущим ключом) станут недействительными, пользователям придется пройти авторизацию вновь.
token.signature.key=d№%취소محب°љ₽©°јў≈°…‘љ°©₽в21м
#
# Максимальное кол-во выданных рефреш токенов, если кол-во превышает заданное число, все текущие токены становятся недействительными( минимум 1, максимум 10, по умолчанию 2 )
token.max.active=2
# Время жизни рефреш токена ( минимум 1 день, максимум 180 дней, по умолчанию 30 )
token.refresh.lifetime.days=30
# Время жизни акцес токена(минут). После, если есть действующий рефреш, выдается новый акцес и рефреш токен.( минимум 10 минут, максимум 1440(2 суток), по умолчанию 60 )
token.access.lifetime.minutes=10
#
# Порядок и состав левого меню в мобильном приложении. В скобках у каждого элемента меню можно задать свое название [title=Название меню].
#menu.items=main; balance[title=Баланс]; tariff; tariff_options; limit; status; helpDesk; notification; help; exit
#
# Учетные данные для обращения к push серверу( выдаются Бителом )
#push.url=
#push.login=
#push.pswd=
#
# Отображать ли субдоговора и позволять управлять ими через учетную запись супер договора( так же позволяет производить распределение средств с супердоговора )
# У субдоговоров модуль Mobile тоже должен быть добавлен, иначе они не будут отображены в списке.
showSubContracts=true
#
# Справочная информация для абонентов в пункте меню help. Позволяет из приложения открыть web страницу, позвонить по номеру телефона, отправить письмо на email.
#about.items=url[value=https://bgbilling.ru/mobile_terms_and_conditions.html, title=U+1F310 Тарифы и услуги] ; email[value=support@test.ru, title=U+1F4E7 Техподдержка, subject=Техническая поддержка:@contractTitle] ; phone[value=+79171234567, title=U+260E Звонок +79171234567] 
# Платежные модули
#payment.modules=yamoney[moduleId=157,title=Яндекс.Касса];sberdeeplink[title=Оплатить в приложении - Сбер Банк];vepay[moduleId=2,title=VePay,minSum=1,maxSum=15000];sberbank[moduleId=23,minSum=1,maxSum=5000,title=Сбер Банк]
################################### Уведомления #################################
# Уведомления на приход договора.
#push.notification.payment=true
# Коды типов приходов, через запятую, которым будут отправлены уведомления
#push.notification.payment.allow.ids=1,2,4,5
# Текст уведомления на приход платежа. Доступные макросы: @contractTitle - номер договора, @sum - сумма, @balance - баланс
#push.notification.payment.text=Баланс договора @contractTitle был пополнен на @sum₽. Текущий баланс: @balance₽.

# Уведомления на расход/возврат договора.
#push.notification.charge=true
# Коды типов расходов/возвратов, через запятую, которым будут отправлены уведомления
#push.notification.charge.allow.ids=1,2,3
# Доступные макросы: @contractTitle - номер договора, @sum - сумма, @balance - баланс
#push.notification.charge.text=Списание с баланса договора @contractTitle в размере @sum₽. Текущий баланс: @balance₽.
#push.notification.payback.text=Произведен возврат на договоре @contractTitle в размере @sum₽. Текущий баланс: @balance₽.

# Уведомления на смену статуса договора.
#push.notification.status.change=true
# Коды статуса договора, через запятую, при наступлении которых будут отправлены уведомления
#push.notification.status.change.allow.codes=1,2,3,4,5,6
# Коды пользователей, через запятую, которые изменили статус. 0 - код системы(например изменения планировщиком, по балансу итд). Значение onlyManagers - только менеджеры(то есть все коды > 0)
#push.notification.status.change.allow.users=0,1,2,3
# Доступные макросы: @contractTitle - номер договора, @balance - баланс, @status - статус.
#push.notification.status.change.text=Договор @contractTitle: был установлен статус - @status.
# Произвольный текст для конкретного кода статуса
#push.notification.status.change.<status_code>.text=

# Можно задать для всех событийных(расход, приход, статус, сообщение HelpDesk) уведомлений разрешенную битовую маску договора(рассчитать можете в Справочники->Другие-> Договор - группы). Если договор входит хоть в одну разрешённую группу, то уведомление будет отправлено
#push.notification.allow.groupMask

Авторизация в мобильном приложении

До версии 8.2110 авторизация доступна только по номеру договора и паролю

С версии 8.2110+ авторизация использует параметр web.auth.modes заданный в конфиге ядра (используются только авторизации относящиеся к ядру, авторизации по модулям игнорируются)

Платежи

Приложение позволяет пополнение баланса договора. Для этого должен быть один из поддерживающих оплату в моб. приложении модуль и настроен параметр payment.modules.

В параметре payment.modules через точку с запятой можно указать несколько способов оплаты и в квадратных скобках параметры для каждого из них, такие как title - название, moduleId - код экземпляра модуля, minSum - минимальная сумма, maxSum - максимальная сумма. Параметры minSum и maxSum не переопределяют соответсвующие параметры в самих модулях, а лишь добавляют дополнительные ограничения при оплате в моб. приложении.

Если договор не имеет экземпляр платежного модуля указанный в payment.modules, то ему не будет предложен вариант такой оплаты.

Доступные способы(модули), в скобках указан их ключ для параметра :

  • Яндекс.Касса(yamoney) - поддерживает оплату банковской картой, кошельком, Apple Pay, Google Pay и сбербанк онлайн.
  • Paymaster(paymaster)
  • Сбербанк(sberbank) - банковской картой, Apple Pay и в приложении Сбербанка.
  • VePay(vepay)
  • Moneta.ru(moneta) с версии 8.2110+
  • Диплинк на приложение сбербанка(sberdeeplink) - позволяет перенаправить абонента на оплату в приложение сбербанка(за диплинком обращайтесь к сбербанку)

Ошибки

"Доступ к мобильному ЛК ограничен, обратитесь к тех. поддержке провайдера":

     - договор не содержит экземпляр модуля mobile. Убедитесь, чтобы все необходимые договора содеражили модуль.

     - не корректно задан код модуля в параметрах nginx. ( Модули → Редактор модулей и услуг → поле Id нашего модуля )

"Не получен код доступа": - возникла исключительная ситуация на сервере, смотрите логи сервера.

      -  если в логах ошибка io.jsonwebtoken.security.WeakKeyException , значит у вас слишком короткий код - token.signature.key


  • Нет меток