Обновление PCIS до версии 3.7 — различия между версиями

Материал из PayControl Wiki
Перейти к: навигация, поиск
(Добавление записей для нового приложения)
 
(не показана 21 промежуточная версия 2 участников)
Строка 14: Строка 14:
 
==PCIS Internal==
 
==PCIS Internal==
 
В зависимости от того, какое мобильное приложение пользователь зарегистрировал на сервере – Push-уведомления будут предаваться в соответствуюее. До версии 3.7 для каждой прикладной системы можно было настроить только одно приложение для отправки уведомлений.
 
В зависимости от того, какое мобильное приложение пользователь зарегистрировал на сервере – Push-уведомления будут предаваться в соответствуюее. До версии 3.7 для каждой прикладной системы можно было настроить только одно приложение для отправки уведомлений.
 +
 +
С версии <code>3.7.390</code> модуль поддерживает отправку push-уведомлений на iOS 13.
 +
 
==PCIS External==
 
==PCIS External==
 
После обновления модуля сервера появляется возможность публикации файлов тем для классического и нового мобильного приложения:
 
После обновления модуля сервера появляется возможность публикации файлов тем для классического и нового мобильного приложения:
Строка 20: Строка 23:
 
Кроме того, для новых версий приложения появился механизм обновления оформления, даже в случае, если файл оформления уже был скачан на мобильное устройство - приложение будет делать это автоматически при размещении на сервере обновлённого файла темы оформления.
 
Кроме того, для новых версий приложения появился механизм обновления оформления, даже в случае, если файл оформления уже был скачан на мобильное устройство - приложение будет делать это автоматически при размещении на сервере обновлённого файла темы оформления.
 
= Процесс обновления =
 
= Процесс обновления =
 +
== Для версий 3.5, 3.6 и 3.7 ==
 
Для обновления необходимо заменить на серверах файлы модулей PCIS Internal и PCIS External в директории ''deployments'' сервера приложений [[Wildfly]]. Они имеют названия вида:
 
Для обновления необходимо заменить на серверах файлы модулей PCIS Internal и PCIS External в директории ''deployments'' сервера приложений [[Wildfly]]. Они имеют названия вида:
 
* PayControl-interaction-module-3.6.359.ear - PCIS Internal;
 
* PayControl-interaction-module-3.6.359.ear - PCIS Internal;
Строка 28: Строка 32:
 
* *.undeployed, где вместо * будет указано название убранного из директории файла модуля сервера. Файлы с расширением undeployed рекомендуется удалить.
 
* *.undeployed, где вместо * будет указано название убранного из директории файла модуля сервера. Файлы с расширением undeployed рекомендуется удалить.
 
* и с расширением *.deployed, где вместо * будут указаны названия новых модулей.
 
* и с расширением *.deployed, где вместо * будут указаны названия новых модулей.
При появлении файлов с расширением *.failed, необходимо [[Руководство_администратора_PayControl#Запуск и остановка служб сервера PayControl|перезапустить Wildfly]].
+
При появлении файлов с расширением *.failed, необходимо [[Руководство_администратора_PayControl_v3#Запуск и остановка служб сервера PayControl|перезапустить Wildfly]].
  
== Изменения в БД PCIS ==
+
== Дополнительно, только для версий 3.5 и 3.6 ==
 +
=== Изменения в БД PCIS ===
 
После отправки первого первого Push-уведомления в БД PCIS будет создана таблица ''pc_split_pusher_credentials'' в которую будут скопированы аутентификационные данные APNS и Firebase для отправки Push-уведомлений. Таблица ''pc_push_credentials'' в дальнейшем использоваться не будет.
 
После отправки первого первого Push-уведомления в БД PCIS будет создана таблица ''pc_split_pusher_credentials'' в которую будут скопированы аутентификационные данные APNS и Firebase для отправки Push-уведомлений. Таблица ''pc_push_credentials'' в дальнейшем использоваться не будет.
 
В таблице pc_sys_property будет добавлена запись:
 
В таблице pc_sys_property будет добавлена запись:
Строка 44: Строка 49:
 
* 0 - при переносе данных из таблицы ''pc_push_credentials'' возникли проблемы. Для отправки будут использоваться данные из ''pc_push_credentials''. В этом случае можно добавить аутентификационные данные для отправки в новую таблицу [[#Перенос данных в новую таблицу вручную|вручную]].
 
* 0 - при переносе данных из таблицы ''pc_push_credentials'' возникли проблемы. Для отправки будут использоваться данные из ''pc_push_credentials''. В этом случае можно добавить аутентификационные данные для отправки в новую таблицу [[#Перенос данных в новую таблицу вручную|вручную]].
 
Если такая запись не была создана, значит попытка отправки Push-уведомления не производилась.
 
Если такая запись не была создана, значит попытка отправки Push-уведомления не производилась.
== Добавление записей для нового приложения ==
+
=== Добавление записей для нового приложения ===
 
В приведённых ниже запросах необходимо:
 
В приведённых ниже запросах необходимо:
* заменить <code>%SYSTEMID%</code> на реальное значение systemid зарегистрированное для Вашей прикладной системы;
+
* заменить <code>%SYSTEMID%</code> на реальное значение systemid зарегистрированное для Вашей прикладной системы. Обратите внимание, что знаки процента '''нужно удалить''';
 
* проверить, и при необходимости скорректировать путь к файлу-ключу для аутентификации на серверах APNS для отправки Push-уведомлений на iOS.
 
* проверить, и при необходимости скорректировать путь к файлу-ключу для аутентификации на серверах APNS для отправки Push-уведомлений на iOS.
После выполнения запросов необходимо [[Руководство_администратора_PayControl#Запуск и остановка служб сервера PayControl|перезапустить Wildfly]] сервера PCIS Internal.
+
После выполнения запросов необходимо [[Руководство_администратора_PayControl_v3#Запуск и остановка служб сервера PayControl|перезапустить Wildfly]] сервера PCIS Internal.
 
* PostgreSQL <syntaxhighlight lang="sql">
 
* PostgreSQL <syntaxhighlight lang="sql">
 
INSERT INTO pc_split_pusher_credentials (
 
INSERT INTO pc_split_pusher_credentials (
Строка 57: Строка 62:
 
systemid)
 
systemid)
 
VALUES (
 
VALUES (
nextval('pc_split_pusher_credentials_id_seq'),
+
nextval('pc_split_pusher_creds_seq'),
 
'org.paycontrol.app',
 
'org.paycontrol.app',
 
'{"google_api_key":"AAAAoZ7vyz4:APA91bFqLfNegQCs_GfHGFeOmS68PHWWSzWpeZaYKfnLul9iHufIQJiNIAjgAykeWrTxiDDs9qQzullXww3o5XR0VS9tlBEpuhTMlz4CyHdmN2EhntJBBUlSQa-8--Rw_UzDbKBCGCXk"}',
 
'{"google_api_key":"AAAAoZ7vyz4:APA91bFqLfNegQCs_GfHGFeOmS68PHWWSzWpeZaYKfnLul9iHufIQJiNIAjgAykeWrTxiDDs9qQzullXww3o5XR0VS9tlBEpuhTMlz4CyHdmN2EhntJBBUlSQa-8--Rw_UzDbKBCGCXk"}',
Строка 70: Строка 75:
 
systemid)
 
systemid)
 
VALUES (
 
VALUES (
nextval('pc_split_pusher_credentials_id_seq'),
+
nextval('pc_split_pusher_creds_seq'),
 
'org.paycontrol.app',
 
'org.paycontrol.app',
 
'{"apns_key_file":"/opt/wildfly/safetech-apns-JVBQX52N5Z.p8","apns_key_id":"JVBQX52N5Z","apns_team_id":"48HZH4RWJD"}',
 
'{"apns_key_file":"/opt/wildfly/safetech-apns-JVBQX52N5Z.p8","apns_key_id":"JVBQX52N5Z","apns_team_id":"48HZH4RWJD"}',
Строка 78: Строка 83:
 
* MS SQL <syntaxhighlight lang="sql">
 
* MS SQL <syntaxhighlight lang="sql">
 
INSERT INTO pc_split_pusher_credentials (
 
INSERT INTO pc_split_pusher_credentials (
 +
id,
 
appid,
 
appid,
 
credentials,
 
credentials,
Строка 83: Строка 89:
 
systemid)
 
systemid)
 
VALUES (
 
VALUES (
 +
NEXT VALUE FOR PC_SPLIT_PUSHER_CREDS_SEQ,
 
'org.paycontrol.app',
 
'org.paycontrol.app',
 
'{"google_api_key":"AAAAoZ7vyz4:APA91bFqLfNegQCs_GfHGFeOmS68PHWWSzWpeZaYKfnLul9iHufIQJiNIAjgAykeWrTxiDDs9qQzullXww3o5XR0VS9tlBEpuhTMlz4CyHdmN2EhntJBBUlSQa-8--Rw_UzDbKBCGCXk"}',
 
'{"google_api_key":"AAAAoZ7vyz4:APA91bFqLfNegQCs_GfHGFeOmS68PHWWSzWpeZaYKfnLul9iHufIQJiNIAjgAykeWrTxiDDs9qQzullXww3o5XR0VS9tlBEpuhTMlz4CyHdmN2EhntJBBUlSQa-8--Rw_UzDbKBCGCXk"}',
Строка 89: Строка 96:
  
 
INSERT INTO pc_split_pusher_credentials (
 
INSERT INTO pc_split_pusher_credentials (
 +
id,
 
appid,
 
appid,
 
credentials,
 
credentials,
Строка 94: Строка 102:
 
systemid)
 
systemid)
 
VALUES (
 
VALUES (
 +
NEXT VALUE FOR PC_SPLIT_PUSHER_CREDS_SEQ,
 
'org.paycontrol.app',
 
'org.paycontrol.app',
 
'{"apns_key_file":"/opt/wildfly/safetech-apns-JVBQX52N5Z.p8","apns_key_id":"JVBQX52N5Z","apns_team_id":"48HZH4RWJD"}',
 
'{"apns_key_file":"/opt/wildfly/safetech-apns-JVBQX52N5Z.p8","apns_key_id":"JVBQX52N5Z","apns_team_id":"48HZH4RWJD"}',
Строка 99: Строка 108:
 
'%SYSTEMID%');
 
'%SYSTEMID%');
 
</syntaxhighlight>
 
</syntaxhighlight>
== Включение поддержки совместимости с PCS 3.5 ==
+
 
{{Предупреждение|Этот пункт следует выполнять только в случае, если основной сервер PCS имеет версию 3.5}}
+
* Oracle <syntaxhighlight lang="sql">
{{Предупреждение|Возможность принудительного включения режима совместимости реализована в модуле PCIS External с версии <code>3.7.388</code>}}
+
INSERT INTO pc_split_pusher_credentials (
Для включения в модуле PCIS External режима совместимости с сервером версии 3.5 необходимо в окружение Java добавить параметр <code>paycontrol.pcsVersion</code> со значением <code>3.5</code>. Это можно сделать следующим образом:
+
id,
* для Linux:
+
appid,
*: в файл /opt/wildfly/bin/standalone.conf добавить <syntaxhighlight lang="bash">JAVA_OPTS="$JAVA_OPTS -Dpaycontrol.pcsVersion=3.5"</syntaxhighlight>
+
credentials,
* для Windows:
+
os,
*: в файл C:\wildfly\bin\standalone.conf.bat добавить <syntaxhighlight lang="bat">set "JAVA_OPTS=%JAVA_OPTS% -Dpaycontrol.pcsVersion=3.5"</syntaxhighlight>
+
systemid)
затем перезапустить службу wildfly.
+
VALUES (
== Перенос данных в новую таблицу вручную ==
+
PC_SPLIT_PUSHER_CREDS_SEQ.NEXTVAL,
 +
'org.paycontrol.app',
 +
'{"google_api_key":"AAAAoZ7vyz4:APA91bFqLfNegQCs_GfHGFeOmS68PHWWSzWpeZaYKfnLul9iHufIQJiNIAjgAykeWrTxiDDs9qQzullXww3o5XR0VS9tlBEpuhTMlz4CyHdmN2EhntJBBUlSQa-8--Rw_UzDbKBCGCXk"}',
 +
'Android',
 +
'%SYSTEMID%');
 +
 
 +
INSERT INTO pc_split_pusher_credentials (
 +
id,
 +
appid,
 +
credentials,
 +
os,
 +
systemid)
 +
VALUES (
 +
PC_SPLIT_PUSHER_CREDS_SEQ.NEXTVAL,
 +
'org.paycontrol.app',
 +
'{"apns_key_file":"/opt/wildfly/safetech-apns-JVBQX52N5Z.p8","apns_key_id":"JVBQX52N5Z","apns_team_id":"48HZH4RWJD"}',
 +
'iOS',
 +
'%SYSTEMID%');
 +
</syntaxhighlight>
 +
 
 +
=== Перенос данных в новую таблицу вручную ===
 
{{Предупреждение|Этот пункт следует выполнять только в случае, если автоматическая миграция аутентификационных данных для отправки push-уведомлений не выполнилась}}
 
{{Предупреждение|Этот пункт следует выполнять только в случае, если автоматическая миграция аутентификационных данных для отправки push-уведомлений не выполнилась}}
 
Если миграция не произошла автоматически, то можно внести данные в таблицу вручную. Для этого необходимо выполнить следующие запросы к БД PCIS, предварительно заменив %SYSTEMID% на корректное значение:
 
Если миграция не произошла автоматически, то можно внести данные в таблицу вручную. Для этого необходимо выполнить следующие запросы к БД PCIS, предварительно заменив %SYSTEMID% на корректное значение:
Строка 120: Строка 149:
 
systemid)
 
systemid)
 
VALUES (
 
VALUES (
nextval('pc_split_pusher_credentials_id_seq'),
+
nextval('pc_split_pusher_creds_seq'),
 
'ru.safe-tech.PayControl.v3',
 
'ru.safe-tech.PayControl.v3',
 
'{"google_api_key":"AAAAZJTm6y0:APA91bF1OQYv9T2opZtIMJPZknA7tGLifzvTVB3PFSlQejBzPzyeYg4JFn-nud5mE_pZe920I2zR-8Lv-yabeaJ8PdduS96G3ESj_pfxAJAhaT1JistaXMchspMkPLL0e8tLxCmBzhda"}',
 
'{"google_api_key":"AAAAZJTm6y0:APA91bF1OQYv9T2opZtIMJPZknA7tGLifzvTVB3PFSlQejBzPzyeYg4JFn-nud5mE_pZe920I2zR-8Lv-yabeaJ8PdduS96G3ESj_pfxAJAhaT1JistaXMchspMkPLL0e8tLxCmBzhda"}',
Строка 135: Строка 164:
 
systemid)
 
systemid)
 
VALUES (
 
VALUES (
nextval('pc_split_pusher_credentials_id_seq'),
+
nextval('pc_split_pusher_creds_seq'),
 
'ru.safe-tech.PayControl.v3',
 
'ru.safe-tech.PayControl.v3',
 
'{"apns_key_file":"/opt/wildfly/safetech-apns-JVBQX52N5Z.p8","apns_key_id":"JVBQX52N5Z","apns_team_id":"48HZH4RWJD"}',
 
'{"apns_key_file":"/opt/wildfly/safetech-apns-JVBQX52N5Z.p8","apns_key_id":"JVBQX52N5Z","apns_team_id":"48HZH4RWJD"}',
Строка 144: Строка 173:
 
* MS SQL <syntaxhighlight lang="sql">
 
* MS SQL <syntaxhighlight lang="sql">
 
INSERT INTO pc_split_pusher_credentials (
 
INSERT INTO pc_split_pusher_credentials (
 +
id,
 +
appid,
 +
credentials,
 +
is_default,
 +
os,
 +
systemid)
 +
VALUES (
 +
NEXT VALUE FOR PC_SPLIT_PUSHER_CREDS_SEQ,
 +
'ru.safe-tech.PayControl.v3',
 +
'{"google_api_key":"AAAAZJTm6y0:APA91bF1OQYv9T2opZtIMJPZknA7tGLifzvTVB3PFSlQejBzPzyeYg4JFn-nud5mE_pZe920I2zR-8Lv-yabeaJ8PdduS96G3ESj_pfxAJAhaT1JistaXMchspMkPLL0e8tLxCmBzhda"}',
 +
1,
 +
'Android',
 +
'%SYSTEMID%');
 +
 +
INSERT INTO pc_split_pusher_credentials (
 +
id,
 
appid,
 
appid,
 
credentials,
 
credentials,
Строка 150: Строка 195:
 
systemid)
 
systemid)
 
VALUES (
 
VALUES (
 +
NEXT VALUE FOR PC_SPLIT_PUSHER_CREDS_SEQ,
 +
'ru.safe-tech.PayControl.v3',
 +
'{"apns_key_file":"/opt/wildfly/safetech-apns-JVBQX52N5Z.p8","apns_key_id":"JVBQX52N5Z","apns_team_id":"48HZH4RWJD"}',
 +
1,
 +
'iOS',
 +
'%SYSTEMID%');
 +
</syntaxhighlight>
 +
* Oracle <syntaxhighlight lang="sql">
 +
INSERT INTO pc_split_pusher_credentials (
 +
id,
 +
appid,
 +
credentials,
 +
is_default,
 +
os,
 +
systemid)
 +
VALUES (
 +
PC_SPLIT_PUSHER_CREDS_SEQ.NEXTVAL,
 
'ru.safe-tech.PayControl.v3',
 
'ru.safe-tech.PayControl.v3',
 
'{"google_api_key":"AAAAZJTm6y0:APA91bF1OQYv9T2opZtIMJPZknA7tGLifzvTVB3PFSlQejBzPzyeYg4JFn-nud5mE_pZe920I2zR-8Lv-yabeaJ8PdduS96G3ESj_pfxAJAhaT1JistaXMchspMkPLL0e8tLxCmBzhda"}',
 
'{"google_api_key":"AAAAZJTm6y0:APA91bF1OQYv9T2opZtIMJPZknA7tGLifzvTVB3PFSlQejBzPzyeYg4JFn-nud5mE_pZe920I2zR-8Lv-yabeaJ8PdduS96G3ESj_pfxAJAhaT1JistaXMchspMkPLL0e8tLxCmBzhda"}',
Строка 157: Строка 219:
  
 
INSERT INTO pc_split_pusher_credentials (
 
INSERT INTO pc_split_pusher_credentials (
 +
id,
 
appid,
 
appid,
 
credentials,
 
credentials,
Строка 163: Строка 226:
 
systemid)
 
systemid)
 
VALUES (
 
VALUES (
 +
PC_SPLIT_PUSHER_CREDS_SEQ.NEXTVAL,
 
'ru.safe-tech.PayControl.v3',
 
'ru.safe-tech.PayControl.v3',
 
'{"apns_key_file":"/opt/wildfly/safetech-apns-JVBQX52N5Z.p8","apns_key_id":"JVBQX52N5Z","apns_team_id":"48HZH4RWJD"}',
 
'{"apns_key_file":"/opt/wildfly/safetech-apns-JVBQX52N5Z.p8","apns_key_id":"JVBQX52N5Z","apns_team_id":"48HZH4RWJD"}',
Строка 175: Строка 239:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
и [[Руководство_администратора_PayControl#Запуск и остановка служб сервера PayControl|перезапустить wildfly]].
 
и [[Руководство_администратора_PayControl#Запуск и остановка служб сервера PayControl|перезапустить wildfly]].
 +
 +
== Дополнительно, только для версии 3.5 ==
 +
=== Включение поддержки совместимости с PCS 3.5 ===
 +
{{Предупреждение|Этот пункт следует выполнять только в случае, если основной сервер PCS имеет версию 3.5}}
 +
{{Предупреждение|Возможность принудительного включения режима совместимости реализована в модуле PCIS External с версии <code>3.7.388</code>}}
 +
Для включения в модуле PCIS External режима совместимости с сервером версии 3.5 необходимо в окружение Java добавить параметр <code>paycontrol.pcsVersion</code> со значением <code>3.5</code>. Это можно сделать следующим образом:
 +
* для Linux:
 +
*: в файл /opt/wildfly/bin/standalone.conf добавить <syntaxhighlight lang="bash">JAVA_OPTS="$JAVA_OPTS -Dpaycontrol.pcsVersion=3.5"</syntaxhighlight>
 +
* для Windows:
 +
*: в файл C:\wildfly\bin\standalone.conf.bat добавить <syntaxhighlight lang="bat">set "JAVA_OPTS=%JAVA_OPTS% -Dpaycontrol.pcsVersion=3.5"</syntaxhighlight>
 +
затем перезапустить службу wildfly.
 +
 
= Описание процесса отката изменений =
 
= Описание процесса отката изменений =
 
При возникновении проблем при обновлении необходимо удалить новый файл модуля сервера и заменить его старым файлом. При замене файлов необходимо проверить, что в директории ''deployments'' отсутствуют файлы с расширением undeployed.
 
При возникновении проблем при обновлении необходимо удалить новый файл модуля сервера и заменить его старым файлом. При замене файлов необходимо проверить, что в директории ''deployments'' отсутствуют файлы с расширением undeployed.

Текущая версия на 17:56, 5 июня 2020

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

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

Описание

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

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

Обновление 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 для каждой прикладной системы можно было настроить только одно приложение для отправки уведомлений.

С версии 3.7.390 модуль поддерживает отправку push-уведомлений на iOS 13.

PCIS External

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

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

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

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

Для версий 3.5, 3.6 и 3.7

Для обновления необходимо заменить на серверах файлы модулей 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, где вместо * будут указаны названия новых модулей.

При появлении файлов с расширением *.failed, необходимо перезапустить Wildfly.

Дополнительно, только для версий 3.5 и 3.6

Изменения в БД 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 зарегистрированное для Вашей прикладной системы. Обратите внимание, что знаки процента нужно удалить;
  • проверить, и при необходимости скорректировать путь к файлу-ключу для аутентификации на серверах APNS для отправки Push-уведомлений на iOS.

После выполнения запросов необходимо перезапустить Wildfly сервера PCIS Internal.

  • PostgreSQL
    INSERT INTO pc_split_pusher_credentials (
    id,
    appid,
    credentials,
    os,
    systemid)
    VALUES (
    nextval('pc_split_pusher_creds_seq'),
    'org.paycontrol.app',
    '{"google_api_key":"AAAAoZ7vyz4:APA91bFqLfNegQCs_GfHGFeOmS68PHWWSzWpeZaYKfnLul9iHufIQJiNIAjgAykeWrTxiDDs9qQzullXww3o5XR0VS9tlBEpuhTMlz4CyHdmN2EhntJBBUlSQa-8--Rw_UzDbKBCGCXk"}',
    'Android',
    '%SYSTEMID%');
    
    INSERT INTO pc_split_pusher_credentials (
    id,
    appid,
    credentials,
    os,
    systemid)
    VALUES (
    nextval('pc_split_pusher_creds_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
    INSERT INTO pc_split_pusher_credentials (
    id,
    appid,
    credentials,
    os,
    systemid)
    VALUES (
    NEXT VALUE FOR PC_SPLIT_PUSHER_CREDS_SEQ,
    'org.paycontrol.app',
    '{"google_api_key":"AAAAoZ7vyz4:APA91bFqLfNegQCs_GfHGFeOmS68PHWWSzWpeZaYKfnLul9iHufIQJiNIAjgAykeWrTxiDDs9qQzullXww3o5XR0VS9tlBEpuhTMlz4CyHdmN2EhntJBBUlSQa-8--Rw_UzDbKBCGCXk"}',
    'Android',
    '%SYSTEMID%');
    
    INSERT INTO pc_split_pusher_credentials (
    id,
    appid,
    credentials,
    os,
    systemid)
    VALUES (
    NEXT VALUE FOR PC_SPLIT_PUSHER_CREDS_SEQ,
    'org.paycontrol.app',
    '{"apns_key_file":"/opt/wildfly/safetech-apns-JVBQX52N5Z.p8","apns_key_id":"JVBQX52N5Z","apns_team_id":"48HZH4RWJD"}',
    'iOS',
    '%SYSTEMID%');
    
  • Oracle
    INSERT INTO pc_split_pusher_credentials (
    id,
    appid,
    credentials,
    os,
    systemid)
    VALUES (
    PC_SPLIT_PUSHER_CREDS_SEQ.NEXTVAL,
    'org.paycontrol.app',
    '{"google_api_key":"AAAAoZ7vyz4:APA91bFqLfNegQCs_GfHGFeOmS68PHWWSzWpeZaYKfnLul9iHufIQJiNIAjgAykeWrTxiDDs9qQzullXww3o5XR0VS9tlBEpuhTMlz4CyHdmN2EhntJBBUlSQa-8--Rw_UzDbKBCGCXk"}',
    'Android',
    '%SYSTEMID%');
    
    INSERT INTO pc_split_pusher_credentials (
    id,
    appid,
    credentials,
    os,
    systemid)
    VALUES (
    PC_SPLIT_PUSHER_CREDS_SEQ.NEXTVAL,
    'org.paycontrol.app',
    '{"apns_key_file":"/opt/wildfly/safetech-apns-JVBQX52N5Z.p8","apns_key_id":"JVBQX52N5Z","apns_team_id":"48HZH4RWJD"}',
    'iOS',
    '%SYSTEMID%');
    

Перенос данных в новую таблицу вручную

В работе
Предупреждение! Этот пункт следует выполнять только в случае, если автоматическая миграция аутентификационных данных для отправки push-уведомлений не выполнилась

Если миграция не произошла автоматически, то можно внести данные в таблицу вручную. Для этого необходимо выполнить следующие запросы к БД PCIS, предварительно заменив %SYSTEMID% на корректное значение:

  • PostgreSQL
    INSERT INTO pc_split_pusher_credentials (
    id,
    appid,
    credentials,
    is_default,
    os,
    systemid)
    VALUES (
    nextval('pc_split_pusher_creds_seq'),
    'ru.safe-tech.PayControl.v3',
    '{"google_api_key":"AAAAZJTm6y0:APA91bF1OQYv9T2opZtIMJPZknA7tGLifzvTVB3PFSlQejBzPzyeYg4JFn-nud5mE_pZe920I2zR-8Lv-yabeaJ8PdduS96G3ESj_pfxAJAhaT1JistaXMchspMkPLL0e8tLxCmBzhda"}',
    1,
    'Android',
    '%SYSTEMID%');
    
    INSERT INTO pc_split_pusher_credentials (
    id,
    appid,
    credentials,
    is_default,
    os,
    systemid)
    VALUES (
    nextval('pc_split_pusher_creds_seq'),
    'ru.safe-tech.PayControl.v3',
    '{"apns_key_file":"/opt/wildfly/safetech-apns-JVBQX52N5Z.p8","apns_key_id":"JVBQX52N5Z","apns_team_id":"48HZH4RWJD"}',
    1,
    'iOS',
    '%SYSTEMID%');
    
  • MS SQL
    INSERT INTO pc_split_pusher_credentials (
    id,
    appid,
    credentials,
    is_default,
    os,
    systemid)
    VALUES (
    NEXT VALUE FOR PC_SPLIT_PUSHER_CREDS_SEQ,
    'ru.safe-tech.PayControl.v3',
    '{"google_api_key":"AAAAZJTm6y0:APA91bF1OQYv9T2opZtIMJPZknA7tGLifzvTVB3PFSlQejBzPzyeYg4JFn-nud5mE_pZe920I2zR-8Lv-yabeaJ8PdduS96G3ESj_pfxAJAhaT1JistaXMchspMkPLL0e8tLxCmBzhda"}',
    1,
    'Android',
    '%SYSTEMID%');
    
    INSERT INTO pc_split_pusher_credentials (
    id,
    appid,
    credentials,
    is_default,
    os,
    systemid)
    VALUES (
    NEXT VALUE FOR PC_SPLIT_PUSHER_CREDS_SEQ,
    'ru.safe-tech.PayControl.v3',
    '{"apns_key_file":"/opt/wildfly/safetech-apns-JVBQX52N5Z.p8","apns_key_id":"JVBQX52N5Z","apns_team_id":"48HZH4RWJD"}',
    1,
    'iOS',
    '%SYSTEMID%');
    
  • Oracle
    INSERT INTO pc_split_pusher_credentials (
    id,
    appid,
    credentials,
    is_default,
    os,
    systemid)
    VALUES (
    PC_SPLIT_PUSHER_CREDS_SEQ.NEXTVAL,
    'ru.safe-tech.PayControl.v3',
    '{"google_api_key":"AAAAZJTm6y0:APA91bF1OQYv9T2opZtIMJPZknA7tGLifzvTVB3PFSlQejBzPzyeYg4JFn-nud5mE_pZe920I2zR-8Lv-yabeaJ8PdduS96G3ESj_pfxAJAhaT1JistaXMchspMkPLL0e8tLxCmBzhda"}',
    1,
    'Android',
    '%SYSTEMID%');
    
    INSERT INTO pc_split_pusher_credentials (
    id,
    appid,
    credentials,
    is_default,
    os,
    systemid)
    VALUES (
    PC_SPLIT_PUSHER_CREDS_SEQ.NEXTVAL,
    'ru.safe-tech.PayControl.v3',
    '{"apns_key_file":"/opt/wildfly/safetech-apns-JVBQX52N5Z.p8","apns_key_id":"JVBQX52N5Z","apns_team_id":"48HZH4RWJD"}',
    1,
    'iOS',
    '%SYSTEMID%');
    

Затем скорректировать значение, указывающее на то, что миграция прошла:

update pc_sys_property set setting_value = '1' where setting_name='USE_SPLIT_PUSHER';

и перезапустить wildfly.

Дополнительно, только для версии 3.5

Включение поддержки совместимости с PCS 3.5

В работе
Предупреждение! Этот пункт следует выполнять только в случае, если основной сервер PCS имеет версию 3.5
В работе
Предупреждение! Возможность принудительного включения режима совместимости реализована в модуле PCIS External с версии 3.7.388

Для включения в модуле PCIS External режима совместимости с сервером версии 3.5 необходимо в окружение Java добавить параметр paycontrol.pcsVersion со значением 3.5. Это можно сделать следующим образом:

  • для Linux:
    в файл /opt/wildfly/bin/standalone.conf добавить
    JAVA_OPTS="$JAVA_OPTS -Dpaycontrol.pcsVersion=3.5"
    
  • для Windows:
    в файл C:\wildfly\bin\standalone.conf.bat добавить
    set "JAVA_OPTS=%JAVA_OPTS% -Dpaycontrol.pcsVersion=3.5"
    

затем перезапустить службу wildfly.

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

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