Назначение модуля
Модуль предназначен для работы с мобильным приложением на 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