Обновление PCIS до версии 3.7

Материал из PayControl Wiki
Версия от 20:05, 11 сентября 2019; A.bursakov (обсуждение | вклад) (Добавление записей для нового приложения)
Перейти к: навигация, поиск

В связи с подготовкой выхода новой версии мобильного приложения PayControl было подготовлено обновление сервера с целью обеспечения:

  • поддержки тем оформления одновременно для нового и классического приложения;
  • поддержки возможности отправки Push-уведомлений в разные приложения, в зависимости от того, какое установлено у пользователя.

Описание

Обновляемые компоненты

Обновление необходимо только для компонентов PCIS Internal и PCIS External. Это компоненты, обеспечивающие взаимодействие с мобильным приложением.

Основной компонент PC Sever (PCS), содержащий информацию о пользователях и выполняющий основные функции PayControl, обновления не требует.

Совместимость

PCIS Internal 3.7 и PCIS External 3.7 совместимы с PCS версий 3.5-3.7.

PCIS Internal

В зависимости от того, какое мобильное приложение пользователь зарегистрировал на сервере – Push-уведомления будут предаваться в соответствуюее. До версии 3.7 для каждой прикладной системы можно было настроить только одно приложение для отправки уведомлений.

PCIS External

После обновления модуля сервера появляется возможность публикации файлов тем для классического и нового мобильного приложения:

  • Для классического приложения, как и раньше, необходимо опубликовать файл оформления в <WILDFLY_PATH>/paycontrol_skins/<SYSTEMID>.zip (если по этому пути уже опубликован файл оформления, то ничего не изменится, он будет публиковаться как и раньше).
  • Для новых версий мобильного приложения необходимо в директорию <WILDFLY_PATH>/pc_themes/<НОМЕР ВЕРСИИ МОБИЛЬНОГО ПРИЛОЖЕНИЯ>/ разместить новый файл оформления с именем в формате "<SYSTEMID>.zip".

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

Процесс обновления

Для обновления необходимо заменить на серверах файлы модулей PCIS Internal и PCIS External в директории deployments сервера приложений Wildfly. Они имеют названия вида:

  • PayControl-interaction-module-3.6.359.ear - PCIS Internal;
  • PayControl-interaction-rest-3.6.360.war - PCIS External.

Файлы сервера предыдущей версии настоятельно рекомендуем сохранить для возможности отката на предыдущую версию.

После замены файлов и развёртывания новых в директории deployments будут созданы файлы с названиями:

  • *.undeployed, где вместо * будет указано название убранного из директории файла модуля сервера. Файлы с расширением undeployed рекомендуется удалить.
  • и с расширением *.deployed, где вместо * будут указаны названия новых модулей.

Изменения в БД PCIS

После отправки первого первого Push-уведомления в БД PCIS будет создана таблица pc_split_pusher_credentials в которую будут скопированы аутентификационные данные APNS и Firebase для отправки Push-уведомлений. Таблица pc_push_credentials в дальнейшем использоваться не будет. В таблице pc_sys_property будет добавлена запись:

setting_id setting_name setting_value
... USE_SPLIT_PUSHER 1/0

Где значение поля setting_id будет установлено автоматически используя значение счётчика записей таблицы, а значение в поле setting_value будет установлено следующим образом:

  • 1 - данные из таблицы pc_push_credentials успешно перенесены в таблицу pc_split_pusher_credentials. Для отправки будут использоваться данные из pc_split_pusher_credentials.
  • 0 - при переносе данных из таблицы pc_push_credentials возникли проблемы. Для отправки будут использоваться данные из pc_push_credentials.

Если такая запись не была создана, значит попытка отправки Push-уведомления не производилась.

Добавление записей для нового приложения

В приведённых ниже запросах необходимо заменить %SYSTEMID% на реальное значение systemid зарегистрированное для Вашей прикладной системы.

PostgreSQL

Android

INSERT INTO pc_split_pusher_credentials (
id,
appid,
credentials,
os,
systemid)
VALUES (
nextval('pc_split_pusher_credentials_id_seq'),
'org.paycontrol.app',
'{"google_api_key":"AAAAoZ7vyz4:APA91bFqLfNegQCs_GfHGFeOmS68PHWWSzWpeZaYKfnLul9iHufIQJiNIAjgAykeWrTxiDDs9qQzullXww3o5XR0VS9tlBEpuhTMlz4CyHdmN2EhntJBBUlSQa-8--Rw_UzDbKBCGCXk"}',
'Android',
'%SYSTEMID%');

iOS

INSERT INTO pc_split_pusher_credentials (
id,
appid,
credentials,
os,
systemid)
VALUES (
nextval('pc_split_pusher_credentials_id_seq'),
'org.paycontrol.app',
'{"apns_key_file":"/opt/wildfly/safetech-apns-JVBQX52N5Z.p8","apns_key_id":"JVBQX52N5Z","apns_team_id":"48HZH4RWJD"}',
'iOS',
'%SYSTEMID%');

MS SQL

Android

INSERT INTO pc_split_pusher_credentials (
id,
appid,
credentials,
os,
systemid)
VALUES (
NEXT VALUE FOR PC_SPLIT_PUSHER_CREDENTIALS_ID_SEQ,
'org.paycontrol.app',
'{"google_api_key":"AAAAoZ7vyz4:APA91bFqLfNegQCs_GfHGFeOmS68PHWWSzWpeZaYKfnLul9iHufIQJiNIAjgAykeWrTxiDDs9qQzullXww3o5XR0VS9tlBEpuhTMlz4CyHdmN2EhntJBBUlSQa-8--Rw_UzDbKBCGCXk"}',
'Android',
'%SYSTEMID%');

iOS

INSERT INTO pc_split_pusher_credentials (
id,
appid,
credentials,
os,
systemid)
VALUES (
NEXT VALUE FOR PC_SPLIT_PUSHER_CREDENTIALS_ID_SEQ,
'org.paycontrol.app',
'{"apns_key_file":"/opt/wildfly/safetech-apns-JVBQX52N5Z.p8","apns_key_id":"JVBQX52N5Z","apns_team_id":"48HZH4RWJD"}',
'iOS',
'%SYSTEMID%');

Описание процесса отката изменений

При возникновении проблем при обновлении необходимо удалить новый файл модуля сервера и заменить его старым файлом. При замене файлов необходимо проверить, что в директории deployments отсутствуют файлы с расширением undeployed.