Установка PayControl v5. Linux — различия между версиями
(→В приложение PayControl) |
(→Внесение аутентификационных данных для отправки push-уведомлений) |
||
Строка 179: | Строка 179: | ||
Для '''Oracle''' необходимо вместо строк <code>nextval('pc_split_pusher_creds_seq'),</code> использовать строку <code>pc_split_pusher_creds_seq.NEXTVAL,</code>. | Для '''Oracle''' необходимо вместо строк <code>nextval('pc_split_pusher_creds_seq'),</code> использовать строку <code>pc_split_pusher_creds_seq.NEXTVAL,</code>. | ||
==В приложение PayControl== | ==В приложение PayControl== | ||
− | Для | + | Для внесения аутентификационных данных для отправки push-уведомлений в приложение PayControl необходимо выполнить следующие запросы к БД PC Pusher, заменив значения %SYSTEMID% на корректное. |
Обратите внимание, что знаки процента '''нужно удалить'''. | Обратите внимание, что знаки процента '''нужно удалить'''. | ||
Строка 213: | Строка 213: | ||
==В приложение PayConfirm== | ==В приложение PayConfirm== | ||
− | Для | + | Для внесения аутентификационных данных для отправки push-уведомлений в приложение PayConfirm необходимо выполнить следующие запросы к БД PC Pusher, заменив значения %SYSTEMID% на корректное. |
+ | |||
+ | Обратите внимание, что знаки процента '''нужно удалить'''. | ||
+ | |||
+ | После выполнения запросов необходимо [[Руководство_администратора_PayControl_5#Запуск и остановка служб сервера PayControl|перезапустить Wildfly]] сервера PC Pusher. | ||
Пример для СУБД PostgreSQL: | Пример для СУБД PostgreSQL: | ||
Строка 243: | Строка 247: | ||
==В другое мобильное приложение== | ==В другое мобильное приложение== | ||
− | Для | + | Для внесения аутентификационных данных для отправки push-уведомлений необходимо выполнить запрос к БД PC Pusher, заменив значение %SYSTEMID%, %appid%, %путь к файлу ключа%, %apns_key_id%, %apns_team_id%, %google_api_key% на корректные (эти данные, за исключением %SYSTEMID%, можно получить от разработчика мобильного приложения), и, '''удалив''' знаки процента: |
<syntaxhighlight lang="sql"> | <syntaxhighlight lang="sql"> | ||
INSERT INTO pc_split_pusher_credentials ( | INSERT INTO pc_split_pusher_credentials ( |
Версия 13:48, 22 апреля 2020
Статья описывает установку с помощью инсталляционного скрипта.
Содержание
- 1 Справка скрипта инсталляции
- 2 Перед установкой компонентов PC сервера
- 3 Конфигурирование
- 4 Установка
- 5 Результат выполнения инсталляционного скрипта
- 6 Контроль
- 7 Внесение изменений в БД
- 8 Внесение аутентификационных данных для отправки push-уведомлений
- 9 Корректировка (смена) адресов компонентов серверов PC (при необходимости)
Справка скрипта инсталляции
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
Перед установкой компонентов PC сервера
Перед установкой необходимо установить JRE.
Конфигурирование
Перед установкой необходимо сконфигурировать инсталлятор. Предварительно нужно скопировать файл install.conf.DEFAULT в файл install.conf. Параметры установки необходимо устанавливать в файле install.conf в разделе CUSTOMER Config
Подключение к БД для PCS и PCP
Необходимо установить корректные значения адресов и портов СУБД, имена пользователей и пароли.
СУБД Oracle
При использовании СУБД Oracle необходимо указать, каким образом происходит выбор необходимой БД - с помощью SID или Service Name.
Java
Установить параметр, указывающий, что используется Java версии 8. Так, например:
- если используется 8я версия, то параметр
IS_JAVA8
должен иметь значениеtrue
. - При использовании версии 11, должно быть установлено значение
false
.
Настройка PCE для подключения к PCS
Для соединения PCE с PCS необходимо указать правильный адрес сервера PC Server по которому он сможет получить к нему доступ.
Пример
###################################################
#
# 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'
Установка
У пользователя, осуществляющего установку должны быть права на выполнение действий с уровнем привилегий root, либо возможность использовать учётную запись root.
- Скопировать файлы дистрибутива на сервер, например в домашнюю папку пользователя.
- Перейти в директорию с дистрибутивом.
- Предоставить права пользователю на исполнение файла-скрипта. Пример:
chmod u+x install
- Запустить установочный скрипт с привилегиями root, с необходимыми параметрами.
Результат выполнения инсталляционного скрипта
Результат выполнения инсталляционного скрипта является:
- установка службы wildflу (директория /opt);
- включение автозапуска службы wildfly;
- добавление драйверов СУБД (опционально);
- добавление источников данных (только для PC Server и PC Pusher);
- развёртывание файлов сервера в wildfly;
- регистрация прикладной системы на сервере PC (при установленном параметре "r"). Результат регистрации - вывод на экран идентификатора системы в конце журнала работы инсталляционного скрипта (systemid). Пример:В приведённом примере идентификатором зарегистрированной прикладной системы является e64a67c9-73e9-462c-9c27-2d0195a2bd23. В дальнейшем этот идентификатор понадобится при настройке прикладной системы на работу с сервером PC. Если значение идентификатора прикладной системы утеряно, свяжитесь с компанией СэйфТек для его уточнения.
{ "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 }
Примеры параметров запуска
Примеры ниже приведены для установки компонентов PC сервера с драйвером PostgreSQL (параметр "p").
Всё на одном сервере
Без регистрации прикладной системы
sudo ./install -ipSIE
С регистрацией прикладной системы
sudo ./install -ipSIEr
PC Server
Без регистрации прикладной системы
sudo ./install -ipS
С регистрацией прикладной системы
sudo ./install -ipSr
PC Pusher
sudo ./install -ipI
PC External
sudo ./install -iE
Контроль
Вывод журнала в консоль в реальном времени
tail -n 300 -f /opt/wildfly/standalone/log/server.log
Просмотр успешности развёртывания компонентов сервера
ls -la /opt/pc/deployments/
Если компонент сервера развёрнут успешно, рядом с файлом компонента сервера создаётся файл с аналогичным именем файлу сервера с расширением ".deployed".
Проверка доступности сервисов
При запросе на серверы по указанным ниже эндпоинтам будут выведены название модуля сервера PC, его версия и версия API.
PC Server
http://<IP или имя сервера PC Server>:8080/pc-api/health_check/
PC Pusher
http://<IP или имя сервера PC Pusher>:8080/pc-pusher-api/health_check/
PC External
http://<IP или имя сервера PC External>:8080/pc-client-api/health_check/
Внесение изменений в БД
Создание индексов БД PCS
Для создания индексов необходимо выполнить следующие запросы к БД PCS:
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);
Корректировка типов данных для MS SQL
Для корректировки типов данных необходимо выполнить следующий запрос к БД PC Server:
ALTER TABLE PC_TRANSACTION ALTER COLUMN DATA_BINARY image;
Внесение аутентификационных данных для отправки push-уведомлений
Для MSSQL необходимо вместо строк nextval('pc_split_pusher_creds_seq'),
использовать строку NEXT VALUE FOR pc_split_pusher_creds_seq,
.
Для Oracle необходимо вместо строк nextval('pc_split_pusher_creds_seq'),
использовать строку pc_split_pusher_creds_seq.NEXTVAL,
.
В приложение PayControl
Для внесения аутентификационных данных для отправки push-уведомлений в приложение PayControl необходимо выполнить следующие запросы к БД PC Pusher, заменив значения %SYSTEMID% на корректное.
Обратите внимание, что знаки процента нужно удалить.
После выполнения запросов необходимо перезапустить Wildfly сервера PC Pusher.
Пример для СУБД 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%');
В приложение PayConfirm
Для внесения аутентификационных данных для отправки push-уведомлений в приложение PayConfirm необходимо выполнить следующие запросы к БД PC Pusher, заменив значения %SYSTEMID% на корректное.
Обратите внимание, что знаки процента нужно удалить.
После выполнения запросов необходимо перезапустить Wildfly сервера PC Pusher.
Пример для СУБД PostgreSQL:
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%');
В другое мобильное приложение
Для внесения аутентификационных данных для отправки push-уведомлений необходимо выполнить запрос к БД PC Pusher, заменив значение %SYSTEMID%, %appid%, %путь к файлу ключа%, %apns_key_id%, %apns_team_id%, %google_api_key% на корректные (эти данные, за исключением %SYSTEMID%, можно получить от разработчика мобильного приложения), и, удалив знаки процента:
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;
Корректировка (смена) адресов компонентов серверов PC (при необходимости)
Предупреждение! Не рекомендуется дополнительно указывать номер порта, в случаях, если для HTTP используется порт 80, или для HTTPS используется порт 443 |
Учёт изменения адреса сервера PC Server
Для учёта изменения адреса PCS необходимо произвести изменения в настройках PCE. В файле /opt/wildfly/bin/standalone.conf, в следующей строке, указав правильный адрес и при необходимости порт сервера PC Server, а также уточнив протокол подключения (HTTP/HTTPS):
JAVA_OPTS="$JAVA_OPTS -Dpc_url=http[s]://<IP или DNS-имя>[:PORT]/pc-api/ -Duser.language=ru -Dpc_locale=ru"
Учёт изменения адреса сервера PC Pusher
Для учёта изменения адреса сервера PCP, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PCS:
update pc_system set pc_is_internal_url = 'http[s]://<IP или DNS-имя>[:PORT]/pc-pusher-api/' where systemid='<SYSTEMID>';
Учёт изменения внешнего адреса сервера PC External
Предупреждение! Если система была переведена в промышленную эксплуатацию, при смене адреса для доступа мобильных устройств, не рекомендуется выводить из действия предыдущий адрес на протяжении всего срока действия выпущенных ключей пользователя. Иначе мобильное приложение потеряет доступ к серверу PC и для восстановления будет необходимо перевыпустить ключ и заново добавить его в приложение пользователя. |
Для учёта изменения внешнего адреса сервера PC, по которому связываются мобильное приложение с сервером PC, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PCS:
update pc_system set pc_is_external_url = 'http[s]://<IP или DNS-имя>[:PORT]/pc-client-api/' where systemid='<SYSTEMID>';