Обновление PayControl с 3.5 на 3.9 — различия между версиями
(→Изменения в БД) |
(→Правка последовательностей MS SQL) |
||
Строка 49: | Строка 49: | ||
update pc_keyinfo set key_flags=0 where need_to_use_fingerprint=0; | update pc_keyinfo set key_flags=0 where need_to_use_fingerprint=0; | ||
update pc_keyinfo set key_flags=1 where need_to_use_fingerprint=1; | update pc_keyinfo set key_flags=1 where need_to_use_fingerprint=1; | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Версия 18:28, 14 февраля 2024
В версии 3.8 реализовано взаимодействие с PC Pusher 5.x, который, в свою очередь, поддерживает отправку пуш-уведомлений на устройства Huawei. Обновлению с 3.5-3.7 подлежат модули PCS и PC External.
Предупреждение! Модуль PCIS Internal 3.5-3.7 подлежит замене на модуль PC Pusher 5.5. PCS с версии 3.8 не поддерживает работу с модулем PCIS Internal. |
В версии 3.9 добавлена функциональность формирования имитовставки, для соответствия п.5.1 Положения Банка России от 17 апреля 2019 года N 683-П:
В целях обеспечения целостности электронных сообщений и подтверждения их составления уполномоченным на это лицом кредитные организации должны обеспечивать реализацию мер по использованию усиленной квалифицированной электронной подписи, усиленной неквалифицированной электронной подписи или СКЗИ, реализующих функцию имитозащиты информации с аутентификацией отправителя сообщения.
Модули сервера доступны по ссылкам:
- PC Server (https://repo.paycontrol.org/server/maven/tech/paycon/server/PayControl-services-module/), версия 3.9.xxx;
- PC External (https://repo.paycontrol.org/server/maven/tech/paycon/server/PayControl-interaction-rest/), версия 3.9.xxx;
- PC Pusher (https://repo.paycontrol.org/server/maven/tech/paycon/server/pc-pusher/), версия 5.5.xxx.
Если при обновлении сервера также необходимо обновить Wildfly, то перед обновлением необходимо остановить службу, убрать её из автозапуска.
Содержание
[убрать]Обновление Java
Перед обновлением компонентов PC требуется обновить Java до версии 11. Версия 8 больше не поддерживается.
При установке Java новой версии, старая версия не удаляется, и Wildfly может продолжить работать на версии 8, что приведёт к ошибкам. Для того чтобы компоненты работали под Java 11, необходимо либо удалить неактуальную версию Java, либо выбрать необходимую версию с помощью:
sudo update-alternatives --config java
Обновление компонентов PCS
Для обновления нужно заменить файл приложения сервера <WF_PATH>\standalone\deployments\ на новый:
- на PCS - файл PayControl-services-module-<VERSION>.ear
Отключение поддержки совместимости с PCS 3.5
Для отключения в модуле PCIS External 3.7 режима совместимости с сервером версии 3.5 необходимо убрать из окружения Java параметр paycontrol.pcsVersion
со значением 3.5
. Это можно сделать следующим образом:
- для Linux:
- в файле /opt/wildfly/bin/standalone.conf удалить строку
JAVA_OPTS="$JAVA_OPTS -Dpaycontrol.pcsVersion=3.5"
- в файле /opt/wildfly/bin/standalone.conf удалить строку
- для Windows:
- в файле C:\wildfly\bin\standalone.conf.bat удалить строку
set "JAVA_OPTS=%JAVA_OPTS% -Dpaycontrol.pcsVersion=3.5"
- в файле C:\wildfly\bin\standalone.conf.bat удалить строку
затем перезапустить службу wildfly.
Изменения в БД
- Для переноса параметров из pc_system в pc_system_params, что необходимо, при обновлении, нужно выполнить запрос:
INSERT INTO pc_system_params (systemid, created_at, is_deleted, updated_at, billed_date_request, billing_period, billed_date, billing_type, description, front_end_url, license, online_confirmation_url, register_request, report_template_path, user_keys_expiration_period)
SELECT systemid, created_at, is_deleted, updated_at, billed_date_request, billing_period, billed_date, billing_type, description, front_end_url, license, online_confirmation_url, register_request, report_template_path, user_keys_expiration_period
FROM pc_system;
- Чтобы поправить настройки пользователей нужно выполнить запрос:
update pc_keyinfo set key_flags=0 where need_to_use_fingerprint=0;
update pc_keyinfo set key_flags=1 where need_to_use_fingerprint=1;
Запрос на регистрацию
Получение нового запроса
Для получения нового запроса на регистрацию нужно выполнить запрос к БД PCS
select * from pc_system;
, и обратиться с результатами запроса в компанию Сэйфтек.
Замена запроса в БД
В приведённом ниже запросе необходимо:
- заменить
%SYSTEMID%
на реальное значение systemid зарегистрированное для Вашей прикладной системы. Обратите внимание, что знаки процента нужно удалить; - заменить
%REGISTERREQUEST%
на реальные данные запроса, созданного для Вашей прикладной системы. Обратите внимание, что знаки процента нужно удалить;- пример нужных данных запроса
eyJyZXF1ZXN0Ijp7InFyVVJMU2NoZW1lIjoiIiwiYmlsbGluZ1R5cGUiOjIsImludGVyYWN0aW9uRXh0ZXJuYWxVUkwiOiJodHRwczovL3BheWNvbnRyb2wuZXhhbXBsZS5jb20vcGMtY2xpZW50LWFwaS8iLCJpbnRlcmFjd----m1VRERpZndVU3VOS3BoYmV4emsifQ==
- пример нужных данных запроса
update pc_system_params set register_request='%REGISTERREQUEST%' where systemid='%SYSTEMID%';
Лицензия
Получение обновленной лицензии
Для получения обновленной лицензии нужно выполнить запрос к БД PCS
select * from pc_system;
, и обратиться с результатами запроса в компанию Сэйфтек.
Замена лицензии в БД
- На сервере PC Server, удалите файл(*.paycontrol.license) с лицензией, если такой есть.
- Выполните к БД PC Server запрос:
В приведённом ниже запросе необходимо:
- заменить
%SYSTEMID%
на реальное значение systemid зарегистрированное для Вашей прикладной системы. Обратите внимание, что знаки процента нужно удалить; - заменить
%LICENSE%
на реальные данные лицензии(*.paycontrol.license), созданной для Вашей прикладной системы. Обратите внимание, что знаки процента нужно удалить;
- пример нужных данных лицензии
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><licenseInformationWithSignature xmlns="http://ws.safetech.ru/PayControl/services/ws/request/"><licenseInformation><systemId>48000c91-dd4a-47d5-9041-fd8d0a32c13b</systemId><validTo>2020-11-07T20:59:59.000Z</validTo><usersCount>100</usersCount></licenseInformation><signature>MEQCIDyHJwCnp7iLDSAllrcjVya+ukW6Ov1dJJiSXd8HIowBAiB8cEBnjhm3up1ui2pjp9oqx6GzxOfRCBG0EddiIqCIqA==</signature></licenseInformationWithSignature>
update pc_system_params set license='%LICENSE%' where systemid='%SYSTEMID%';
PCIS Internal и External
Для PCIS версии ниже, чем 3.7
Этот пункт следует выполнять только в случае, если основной сервер PCS имеет версию 3.5, а серверы PCIS имеют версию ниже 3.7 - Обновление PCIS до версии 3.7
Обновление PCIS External(PC External)
Перед обновлением настоятельно рекомендуем также выполнить резервное копирование баз данных PC.
Для обновления необходимо заменить на серверах файл модуля PC External в директории deployments сервера приложений Wildfly.
Он имеет название вида:
- PayControl-interaction-rest-3.x.x.war - PC External.
Перед заменой файлов остановите Wildfly. Файлы сервера предыдущей версии настоятельно рекомендуем сохранить для возможности отката на предыдущую версию.
После замены файла и развёртывания нового, в директории deployments будет создан файл с названием:
- *.undeployed, где вместо * будет указано название убранного из директории файла модуля сервера. Файл с расширением undeployed рекомендуется удалить.
- и с расширением *.deployed, где вместо * будут указаны названия новых модулей.
При появлении файлов с расширением *.failed, необходимо перезапустить Wildfly.
Переход с PCIS Internal на PC Pusher
Замена файлов модулей
Для обновления необходимо заменить на сервере файлы модуля PCIS Internal в директории deployments сервера приложений Wildfly. Файл имеют названия вида:
- PayControl-interaction-module-3.x.xxx.ear - PCIS Internal
Перед заменой файлов остановите Wildfly. Файлы сервера предыдущей версии настоятельно рекомендуем сохранить для возможности отката на предыдущую версию.
- Новый файл имеет название вида: pc-pusher-5.5.xxx.war
После замены файлов и развёртывания новых, в директории deployments будут созданы файлы с названиями:
- .undeployed, где вместо * будет указано название убранного из директории файла модуля сервера. Файлы с расширением undeployed рекомендуется удалить.
- и с расширением *.deployed, где вместо * будут указаны названия новых модулей.
При появлении файлов с расширением *.failed, необходимо перезапустить Wildfly.
Настройка PC Server для работы с PC Pusher
После замены PCIS Internal на PC Pusher необходимо заменить его адрес в БД PCS:
update pc_system set pc_is_internal_url='http[s]://pcphost:port/pc-pusher-api/';
Далее, необходимо предоставить доступ PC Pusher для отправки данных пушей в сервис HMS (Huawei Mobile Services). При отправке push-сообщений, запросы должны отправляются по адресу https://push-api.cloud.huawei.com/ ,порт 443.
Также, с сервера PC Pusher должен быть доступен адрес: https://oauth-login.cloud.huawei.com/oauth2/v3/token
В случае, если PC Pusher находится на одном сервере с PC External, то необходимо перенастроить правила URL-фильтрации.
Настройка PC Pusher
Если для подтверждения транзакций используется приложение PayControl, то данная настройка не требуется.
По умолчанию, если app/bundle id для отправки пуш-уведомлений явно не указан для устройства, PCS 3.9 отправляет пуши в приложение PayControl Classic.
Для отправки пушей в другое приложения необходимо:
- Произвести настройки аутентификационных данных "другого" мобильного приложения в соответствии с этой статьей
- Прописать app/bundle id необходимого приложения в БД PCS(после выполнения запроса необходимо перезапустить Wildfly):
Пример:
insert into pc_sys_property values (nextval('pc_setting_seq'), 'APP_ID_FOR_PUSHER', '{"Android":"com.example.mobile.app","iOS":"com.example.apple.app","Huawei":"com.example.apple.app"}');
Шаблоны:
- PostgreSQL
insert into pc_sys_property values (nextval('pc_setting_seq'), 'APP_ID_FOR_PUSHER', '{"Android":"your_appid","iOS":"your_appid","Huawei":"your_appid"}');
- MS SQL
insert into pc_sys_property values (NEXT VALUE FOR PC_SETTING_SEQ, 'APP_ID_FOR_PUSHER', '{"Android":"your_appid","iOS":"your_appid","Huawei":"your_appid"}');
- Oracle
insert into pc_sys_property values (PC_SETTING_SEQ.NEXTVAL, 'APP_ID_FOR_PUSHER', '{"Android":"your_appid","iOS":"your_appid","Huawei":"your_appid"}');
Завершение обновления
После выполнения вышеизложенных пунктов нужно запустить wildfly.
Удаление ненужных полей
Если у вас всё обновилось и точно работает, можно удалить не нужные поля от предыдущей версии, они больше не нужны, или перенесены.
Удалить не используемые столбцы можно с помощью запроса:
ALTER TABLE pc_system
DROP COLUMN IF EXISTS internal_cert_fingerprint,
DROP COLUMN IF EXISTS key_container,
DROP COLUMN IF EXISTS key_password,
DROP COLUMN IF EXISTS additional_key_options,
DROP COLUMN IF EXISTS key_type,
DROP COLUMN IF EXISTS system_type,
DROP COLUMN IF EXISTS billed_date_request,
DROP COLUMN IF EXISTS billing_period,
DROP COLUMN IF EXISTS billed_date,
DROP COLUMN IF EXISTS billing_type,
DROP COLUMN IF EXISTS description,
DROP COLUMN IF EXISTS front_end_url,
DROP COLUMN IF EXISTS license,
DROP COLUMN IF EXISTS online_confirmation_url,
DROP COLUMN IF EXISTS register_request,
DROP COLUMN IF EXISTS report_template_path,
DROP COLUMN IF EXISTS user_keys_expiration_period;
Проверка доступности сервисов
Адреса конечных точек по умолчанию:
- PC Server:
http://<host>:8080/ws/PayControlServiceV3?wsdl
http://<host>:8080/ws/PayControlReportService?wsdl
- PC Pusher:
http://<host>:8080/pc-pusher-api/health_check
- PC External(при запросе на этот адрес должно возвратиться «Not Found»):
http[s]://<host>:8080/PayControl-interaction-rest/
Включение имитовставки
Способ включения выработки имитовставки описан в статье Включение формирования имитовставки.
Откат обновления в случае сбоя
При возникновении проблем при обновлении необходимо:
- Удалить новые файлы модулей серверов и заменить их старыми файлами.
- При замене файлов необходимо проверить, что в директории deployments отсутствуют файлы с расширением undeployed.
- Восстановить БД PCS и PCIS Internal из резервной копии.
- Также нужно вернуть параметр, отвечающий за работу PCS 3.5 с PCIS 3.7.