Перейти к содержанию

Установка PayControl v5. Linux: различия между версиями

Материал из PayControl Wiki
Содержимое страницы заменено на «{{Уведомление|Актуальная документация по версии 5 располагается по адре…»
Метка: замена
 
(не показано 8 промежуточных версий 3 участников)
Строка 1: Строка 1:
Статья описывает установку с помощью инсталляционного скрипта.
{{Уведомление|Актуальная документация по версии 5 располагается по адресу https://repo.paycontrol.org/index/safe-tech/#paycontrol}}
=Справка скрипта инсталляции=
<pre>Installation type (just one of them MUST be setted):
-i install
 
Install options
-r Register system (only on PCS, matters with -i option)
 
Install wildfly database driver
-p PostgreSQL
-o Oracle
Need to set up parameter - jdbc version:
6 for Oracle 11.2, 11gR2 (JDK8)
7 for Oracle 12.1, 12cR1 (JDK8)
8 for Oracle 12.2, 12cR2 (JDK8) and Oracle 18.3 with JDK8, JDK9, JDK10
-m MS SQL
Install PC Server roles
-S PCS
-I PCIS Internal/ Pusher
-E PCIS External/ External
 
Examples
install -i -o 8 -SIE -r
also like
install -io8SIEr
will install Oracle JDBC8 Driver, PCS, PCIS Internal, PCIS External and execute register system request</pre>
 
=Перед установкой компонентов PC сервера=
Перед установкой необходимо установить JRE.
=Конфигурирование=
Перед установкой необходимо сконфигурировать инсталлятор. Предварительно нужно скопировать файл ''install.conf.DEFAULT'' в файл ''install.conf''. Параметры установки необходимо устанавливать в файле ''install.conf'' в разделе <code>CUSTOMER Config</code>
==Подключение к БД для PCS и PCP==
Необходимо установить корректные значения адресов и портов СУБД, имена пользователей и пароли.
===СУБД Oracle===
При использовании СУБД Oracle необходимо указать, каким образом происходит выбор необходимой БД - с помощью SID или Service Name.
==Java==
Установить параметр, указывающий, что используется Java версии 8. Так, например:
* если используется 8я версия, то параметр <code>IS_JAVA8</code> должен иметь значение <code>true</code>.
* При использовании версии 11, должно быть установлено значение <code>false</code>.
==Настройка PCE для подключения к PCS==
Для соединения PCE с PCS необходимо указать правильный адрес сервера PC Server по которому он сможет получить к нему доступ.
==Пример==
<syntaxhighlight lang="bash">###################################################
#
# CUSTOMER Config
#
###################################################
 
PC_PATH='/opt/pc'
PC_PRODUCT='PayControl'
 
IS_JAVA8=true
 
# PC Servers Settings
## PCS
### DB
PCSDB_HOST='hostname:port'
PCSDB='DB'
PCSDB_USER='user'
PCSDB_PASSWD='password'
 
# Oracle connection string delimiters:
# - use ':', if PCSDB contains SID
# - use '/', if PCSDB contains Service Name
PCSDB_Oracle_delimiter=':'
 
 
## PCIS Internal
### APNS Push key
APNS_AUTH_FILE='safetech-apns-JVBQX52N5Z.p8'
### DB
PCISDB_HOST='hostname:port'
PCISDB='DB'
PCISDB_USER='user'
PCISDB_PASSWD='password'
 
# Oracle connection string delimiters:
# - use ':', if PCISDB contains SID
# - use '/', if PCISDB contains Service Name
PCISDB_Oracle_delimiter=':'
 
### PCIS External
PCS_HOSTNAME_PORT='localhost:8080'</syntaxhighlight>
 
=Установка=
У пользователя, осуществляющего установку должны быть права на выполнение действий с уровнем привилегий root, либо возможность использовать учётную запись root.
# Скопировать файлы дистрибутива на сервер, например в домашнюю папку пользователя.
# Перейти в директорию с дистрибутивом.
# Предоставить права пользователю на исполнение файла-скрипта. Пример:<syntaxhighlight lang="bash">chmod u+x install</syntaxhighlight>
# Запустить установочный скрипт с привилегиями root, с необходимыми параметрами.
=Результат выполнения инсталляционного скрипта=
Результат выполнения инсталляционного скрипта является:
* установка службы wildflу (директория /opt);
* включение автозапуска службы wildfly;
* добавление драйверов СУБД (опционально);
* добавление источников данных (только для PC Server и PC Pusher);
* развёртывание файлов сервера в wildfly;
* регистрация прикладной системы на сервере PC (при установленном параметре "'''r'''"). Результат регистрации - вывод на экран идентификатора системы в конце журнала работы инсталляционного скрипта (systemid). Пример:<syntaxhighlight lang="json">{
    "answer_type": "system_info",
    "answer": {
        "result": {
            "error_message": "Success",
            "error_code": 0
        },
        "system_info": {
            "billing_period": 365,
            "system_id": "e64a67c9-73e9-462c-9c27-2d0195a2bd23",
            "description": "Bank1 Payments",
            "report_template_path": "/opt/pc/report.docx",
            "created_at": "2020-03-23 12:34:1.895",
            "pc_is_external_url": "https://bank1.example.com/pc-client-api/",
            "register_request": "eyJyZXF1ZXN0Ijp7InFyVVJMU2NZXN0Ijp7InFyVoZW1lIjoiIiwiYmnN4enpPQzVwcUttQSsvNzBpc1hWenNzT1Uza0d6L2VURnSZEhTQUFKSZEhTQUFKRXc9PSJXc9PSJFSSZEhTQUFKRXc9PSJEhTQUFKRXc9PSZXN0Ijp7InFyVJ9",
            "pc_is_internal_url": "http://localhost:8080/pc-pusher-api/",
            "is_deleted": false,
            "license_info": {
                "users_count": 20,
                "used": 0,
                "message": "LICENSE NOT FOUND! You are using unlicensed demo-only version of the service"
            },
            "billing_type": 3,
            "user_keys_expiration_period": 365,
            "name": "Bank1"
        }
    },
    "answer_version": 3
}</syntaxhighlight> В приведённом примере идентификатором зарегистрированной прикладной системы является ''e64a67c9-73e9-462c-9c27-2d0195a2bd23''. В дальнейшем этот идентификатор понадобится при настройке прикладной системы на работу с сервером PC. Если значение идентификатора прикладной системы утеряно, свяжитесь с компанией СэйфТек для его уточнения.
==Примеры параметров запуска==
Примеры ниже приведены для установки компонентов PC сервера с драйвером PostgreSQL (параметр "'''p'''").
===Всё на одном сервере===
====Без регистрации прикладной системы====
<syntaxhighlight lang="bash">sudo ./install -ipSIE</syntaxhighlight>
====С регистрацией прикладной системы====
<syntaxhighlight lang="bash">sudo ./install -ipSIEr</syntaxhighlight>
===PC Server===
====Без регистрации прикладной системы====
<syntaxhighlight lang="bash">sudo ./install -ipS</syntaxhighlight>
====С регистрацией прикладной системы====
<syntaxhighlight lang="bash">sudo ./install -ipSr</syntaxhighlight>
===PC Pusher===
<syntaxhighlight lang="bash">sudo ./install -ipI</syntaxhighlight>
===PC External===
<syntaxhighlight lang="bash">sudo ./install -iE</syntaxhighlight>
=Контроль=
==Вывод журнала в консоль в реальном времени==
<syntaxhighlight lang="bash">tail -n 300 -f /opt/wildfly/standalone/log/server.log</syntaxhighlight>
==Просмотр успешности развёртывания компонентов сервера==
<syntaxhighlight lang="bash">ls -la /opt/pc/deployments/</syntaxhighlight>
Если компонент сервера развёрнут успешно, рядом с файлом компонента сервера создаётся файл с аналогичным именем файлу сервера с расширением "'''.deployed'''".
 
==Проверка доступности сервисов==
При запросе на серверы по указанным ниже эндпоинтам будут выведены название модуля сервера PC, его версия и версия API.
===PC Server===
<pre>http://<IP или имя сервера PC Server>:8080/pc-api/health_check/</pre>
===PC Pusher===
<pre>http://<IP или имя сервера PC Pusher>:8080/pc-pusher-api/health_check/</pre>
===PC External===
<pre>http://<IP или имя сервера PC External>:8080/pc-client-api/health_check/</pre>
 
=Внесение изменений в БД=
==Создание индексов БД PCS==
Для создания индексов необходимо выполнить следующие запросы к БД PCS:
<syntaxhighlight lang="sql">create index pc_keyinfo1_idx on PC_KEYINFO (userID, expiration_date, is_deleted);
create index pc_delayedkeyinfo1_idx on PC_DELAYEDKEYINFO (userID, is_deleted);
create index pc_device1_idx on PC_DEVICE (userID, is_deleted);
create index pc_transaction1_idx on PC_TRANSACTION (userID, status);
create index pc_device2_idx on PC_DEVICE (userID);
create index pc_keyinfo2_idx on PC_KEYINFO (userID);
create index pc_transaction2_idx on PC_TRANSACTION (userID);
create index pc_user1_idx on PC_USER (systemID);</syntaxhighlight>
==Корректировка типов данных для MS SQL==
Для корректировки типов данных необходимо выполнить следующий запрос к БД PC Server:
<syntaxhighlight lang="sql">ALTER TABLE PC_TRANSACTION ALTER COLUMN DATA_BINARY image;</syntaxhighlight>
=Внесение аутентификационных данных для отправки push-уведомлений=
{{Предупреждение|Для отличных от PostgreSQL СУБД измените метод работы с последовательностями}}
 
Для '''MSSQL''' необходимо вместо строк <code>nextval('pc_split_pusher_creds_seq'),</code> использовать строку <code>NEXT VALUE FOR pc_split_pusher_creds_seq,</code>.
 
Для '''Oracle''' необходимо вместо строк <code>nextval('pc_split_pusher_creds_seq'),</code> использовать строку <code>pc_split_pusher_creds_seq.NEXTVAL,</code>.
==В приложение PayControl==
Для внесение аутентификационных данных для отправки push-уведомлений в приложение PayControl необходимо выполнить следующие запросы к БД PC Pusher, заменив значения %SYSTEMID% на корректное.
 
Обратите внимание, что знаки процента '''нужно удалить'''.
 
После выполнения запросов необходимо [[Руководство_администратора_PayControl_5#Запуск и остановка служб сервера PayControl|перезапустить Wildfly]] сервера PC Pusher.
 
Пример для СУБД PostgreSQL:
<syntaxhighlight lang="sql">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%');</syntaxhighlight>
 
==В приложение PayConfirm==
Для внесение аутентификационных данных для отправки push-уведомлений в приложение PayConfirm необходимо выполнить следующие запросы к БД PC Pusher, заменив значения %SYSTEMID% на корректное. После выполнения запросов необходимо [[Руководство_администратора_PayControl_5#Запуск и остановка служб сервера PayControl|перезапустить Wildfly]] сервера PC Pusher.
 
Пример для СУБД PostgreSQL:
<syntaxhighlight lang="sql">INSERT INTO pc_split_pusher_credentials (
id,
appid,
credentials,
os,
systemid)
VALUES (
nextval('pc_split_pusher_creds_seq'),
'org.payconfirm.app',
'{"google_api_key":"AAAA4H70m7M:APA91bFsaPiXXiIuRyj4h-xGZpyd0-I3B9F1udIIergxaK8uL9vPPvUQXOvPfau2w8E-xur_6TlTzmhb2JsO13hBCxVDrNybD6Rj8k4hZKXfs7tC5fnJuWmCIB3-O_4dLo0QHlhfSbGn"}',
'Android',
'%SYSTEMID%');
 
INSERT INTO pc_split_pusher_credentials (
id,
appid,
credentials,
os,
systemid)
VALUES (
nextval('pc_split_pusher_creds_seq'),
'org.payconfirm.app',
'{"apns_key_file":"/opt/pc/AuthKey_QCC684AGC4.p8","apns_key_id":"QCC684AGC4","apns_team_id":"B98K5P3YHV"}',
'iOS',
'%SYSTEMID%');</syntaxhighlight>
 
==В другое мобильное приложение==
Для внесение аутентификационных данных для отправки push-уведомлений необходимо выполнить запрос к БД PC Pusher, заменив значение %SYSTEMID%, %appid%, %путь к файлу ключа%, %apns_key_id%, %apns_team_id%, %google_api_key% на корректные (эти данные, за исключением %SYSTEMID%, можно получить от разработчика мобильного приложения):
<syntaxhighlight lang="sql">
INSERT INTO pc_split_pusher_credentials (
id,
appid,
credentials,
is_default,
os,
systemid)
VALUES (
nextval('pc_split_pusher_credentials_id_seq'),
'%appid%',
'{"google_api_key":"%google_api_key%"}',
1,
'Android',
'%SYSTEMID%');
 
INSERT INTO pc_split_pusher_credentials (
id,
appid,
credentials,
is_default,
os,
systemid)
VALUES (
nextval('pc_split_pusher_credentials_id_seq'),
'%appid%',
'{"apns_key_file":"%путь к файлу ключа%","apns_key_id":"%apns_key_id%","apns_team_id":"%apns_team_id%"}',
1,
'iOS',
'%SYSTEMID%');
 
commit;
</syntaxhighlight>
 
=Корректировка (смена) адресов компонентов серверов PC (при необходимости)=
{{Предупреждение|Не рекомендуется дополнительно указывать номер порта, в случаях, если для HTTP используется порт 80, или для HTTPS используется порт 443}}
==Учёт изменения адреса сервера PC Server==
Для учёта изменения адреса PCS необходимо произвести изменения в настройках PCE. В файле /opt/wildfly/bin/standalone.conf, в следующей строке, указав правильный адрес и при необходимости порт сервера PC Server, а также уточнив протокол подключения (HTTP/HTTPS):
<syntaxhighlight lang="bash">
JAVA_OPTS="$JAVA_OPTS -Dpc_url=http[s]://<IP или DNS-имя>[:PORT]/pc-api/ -Duser.language=ru -Dpc_locale=ru"
</syntaxhighlight>
 
==Учёт изменения адреса сервера PC Pusher==
Для учёта изменения адреса сервера PCP, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PCS:
<syntaxhighlight lang="sql">update pc_system set pc_is_internal_url = 'http[s]://<IP или DNS-имя>[:PORT]/pc-pusher-api/' where systemid='<SYSTEMID>';</syntaxhighlight>
==Учёт изменения внешнего адреса сервера PC External==
{{Предупреждение|Если система была переведена в промышленную эксплуатацию, при смене адреса для доступа мобильных устройств, не рекомендуется выводить из действия предыдущий адрес на протяжении всего срока действия выпущенных ключей пользователя. Иначе мобильное приложение потеряет доступ к серверу PC и для восстановления будет необходимо перевыпустить ключ и заново добавить его в приложение пользователя.}}
Для учёта изменения внешнего адреса сервера PC, по которому связываются мобильное приложение с сервером PC, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PCS:
<syntaxhighlight lang="sql">update pc_system set pc_is_external_url = 'http[s]://<IP или DNS-имя>[:PORT]/pc-client-api/' where systemid='<SYSTEMID>';</syntaxhighlight>

Текущая версия от 15:02, 20 июля 2022

В работе
В работе
Уведомление. Актуальная документация по версии 5 располагается по адресу https://repo.paycontrol.org/index/safe-tech/#paycontrol