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

Материал из PayControl Wiki
Перейти к: навигация, поиск
(В приложение PayControl)
Строка 6: Строка 6:
  
 
Install options
 
Install options
-r Register system (only on PCS, matters with -i option)
+
-r Register system (only on PC Server, matters with -i option)
  
 
Update options
 
Update options
Строка 34: Строка 34:
 
Перед установкой необходимо установить JRE.
 
Перед установкой необходимо установить JRE.
 
=Конфигурирование=
 
=Конфигурирование=
Перед установкой необходимо указать правильные значения адресов и портов СУБД и имена пользователей и пароли. Также для правильной настройки сервера PC External необходимо указать правильный адрес сервера PCS по которому он сможет получить к нему доступ.
+
Перед установкой необходимо указать правильные значения адресов и портов СУБД и имена пользователей и пароли. Также для правильной настройки сервера PC External необходимо указать правильный адрес сервера PC Server по которому он сможет получить к нему доступ.
  
 
Эти параметры задаются в файле ''install.conf''. Предварительно нужно скопировать файл ''install.conf.DEFAULT'' в файл ''install.conf''.
 
Эти параметры задаются в файле ''install.conf''. Предварительно нужно скопировать файл ''install.conf.DEFAULT'' в файл ''install.conf''.
Строка 45: Строка 45:
 
WF_DISTRIB='wildfly-15.0.1.Final'
 
WF_DISTRIB='wildfly-15.0.1.Final'
  
# PC Servers Settings
+
# PC Settings
## PCS
+
## PC Server
 
### DB
 
### DB
 
PCSDB_HOST='192.168.2.99:1433'
 
PCSDB_HOST='192.168.2.99:1433'
Строка 86: Строка 86:
 
====С регистрацией прикладной системы====
 
====С регистрацией прикладной системы====
 
<syntaxhighlight lang="bash">sudo ./install -ipSIEr</syntaxhighlight>
 
<syntaxhighlight lang="bash">sudo ./install -ipSIEr</syntaxhighlight>
===PCS===
+
===PC Server===
 
====Без регистрации прикладной системы====
 
====Без регистрации прикладной системы====
 
<syntaxhighlight lang="bash">sudo ./install -ipS</syntaxhighlight>
 
<syntaxhighlight lang="bash">sudo ./install -ipS</syntaxhighlight>
Строка 102: Строка 102:
 
Если компонент сервера развёрнут успешно, рядом с файлом компонента сервера создаётся файл с аналогичным именем файлу сервера с расширением "'''.deployed'''".
 
Если компонент сервера развёрнут успешно, рядом с файлом компонента сервера создаётся файл с аналогичным именем файлу сервера с расширением "'''.deployed'''".
 
==Проверка доступности сервисов==
 
==Проверка доступности сервисов==
===PCS===
+
===PC Server===
 
Сервисы доступны по ссылкам (при запросе на эти адреса должна возвратиться WSDL-схема):
 
Сервисы доступны по ссылкам (при запросе на эти адреса должна возвратиться WSDL-схема):
<pre>http://<IP или имя сервера PCS>:8080/ws/PayControlServiceV3?wsdl
+
<pre>http://<IP или имя сервера PC Server>:8080/ws/PayControlServiceV3?wsdl
http://<IP или имя сервера PCS>:8080/ws/PayControlReportService?wsdl</pre>
+
http://<IP или имя сервера PC Server>:8080/ws/PayControlReportService?wsdl</pre>
 
===PC Pusher===
 
===PC Pusher===
 
Сервис доступен по адресу (при запросе на этот адрес должна возвратиться WSDL-схема):
 
Сервис доступен по адресу (при запросе на этот адрес должна возвратиться WSDL-схема):
Строка 114: Строка 114:
 
При запросе на этот адрес должно возвратиться текст «Not Found» с HTTP-кодом 404. В Internet Explorer будет выведена своя страница браузера, сообщающая о том, что страница не найдена.
 
При запросе на этот адрес должно возвратиться текст «Not Found» с HTTP-кодом 404. В Internet Explorer будет выведена своя страница браузера, сообщающая о том, что страница не найдена.
 
=Внесение изменений в БД=
 
=Внесение изменений в БД=
==Создание индексов БД PCS==
+
==Создание индексов БД PC Server==
Для создания индексов необходимо выполнить следующие запросы к БД PCS:
+
Для создания индексов необходимо выполнить следующие запросы к БД PC Server:
 
<syntaxhighlight lang="sql">create index pc_keyinfo1_idx on PC_KEYINFO (userID, expiration_date, is_deleted);
 
<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_delayedkeyinfo1_idx on PC_DELAYEDKEYINFO (userID, is_deleted);
Строка 125: Строка 125:
 
create index pc_user1_idx on PC_USER (systemID);</syntaxhighlight>
 
create index pc_user1_idx on PC_USER (systemID);</syntaxhighlight>
 
==Корректировка типов данных для MS SQL==
 
==Корректировка типов данных для MS SQL==
Для корректировки типов данных необходимо выполнить следующий запрос к БД PCS:
+
Для корректировки типов данных необходимо выполнить следующий запрос к БД PC Server:
 
<syntaxhighlight lang="sql">ALTER TABLE PC_TRANSACTION ALTER COLUMN DATA_BINARY image;</syntaxhighlight>
 
<syntaxhighlight lang="sql">ALTER TABLE PC_TRANSACTION ALTER COLUMN DATA_BINARY image;</syntaxhighlight>
 
=Внесение аутентификационных данных для отправки push-уведомлений=
 
=Внесение аутентификационных данных для отправки push-уведомлений=
Строка 199: Строка 199:
 
=Корректировка (смена) адресов серверов PayControl (при необходимости)=
 
=Корректировка (смена) адресов серверов PayControl (при необходимости)=
 
{{Предупреждение|Не рекомендуется дополнительно указывать номер порта, в случаях, если для HTTP используется порт 80, или для HTTPS используется порт 443}}
 
{{Предупреждение|Не рекомендуется дополнительно указывать номер порта, в случаях, если для HTTP используется порт 80, или для HTTPS используется порт 443}}
==Учёт изменения адреса сервера PCS==
+
==Учёт изменения адреса сервера PC Server==
Для учёта изменения адреса сервера PCS необходимо произвести изменения в настройках PC External. В файле /opt/wildfly/bin/standalone.conf, в следующей строке, указав правильный адрес и при необходимости порт сервера PCS, а также уточнив протокол подключения (HTTP/HTTPS):
+
Для учёта изменения адреса сервера PC Server необходимо произвести изменения в настройках PC External. В файле /opt/wildfly/bin/standalone.conf, в следующей строке, указав правильный адрес и при необходимости порт сервера PC Server, а также уточнив протокол подключения (HTTP/HTTPS):
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
JAVA_OPTS="$JAVA_OPTS -Dpcservice.endpoint=http[s]://<IP или DNS-имя>[:PORT]/ws/PayControlServiceV3?wsdl -Duser.language=ru -Dpaycontrol.locale=ru"
 
JAVA_OPTS="$JAVA_OPTS -Dpcservice.endpoint=http[s]://<IP или DNS-имя>[:PORT]/ws/PayControlServiceV3?wsdl -Duser.language=ru -Dpaycontrol.locale=ru"
 
</syntaxhighlight>
 
</syntaxhighlight>
 
==Учёт изменения адреса сервера PC Pusher==
 
==Учёт изменения адреса сервера PC Pusher==
Для учёта изменения адреса сервера PC Pusher, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PCS:  
+
Для учёта изменения адреса сервера PC Pusher, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PC Server:  
 
<syntaxhighlight lang="sql">update pc_system set pc_is_internal_url = 'http[s]://<IP или DNS-имя>[:PORT]/wsis/PayControlInteractionService?wsdl' where systemid='<SYSTEMID>';</syntaxhighlight>
 
<syntaxhighlight lang="sql">update pc_system set pc_is_internal_url = 'http[s]://<IP или DNS-имя>[:PORT]/wsis/PayControlInteractionService?wsdl' where systemid='<SYSTEMID>';</syntaxhighlight>
 
==Учёт изменения внешнего адреса сервера PC External==
 
==Учёт изменения внешнего адреса сервера PC External==
 
{{Предупреждение|Если система была переведена в промышленную эксплуатацию, при смене адреса для доступа мобильных устройств, не рекомендуется выводить из действия предыдущий адрес на протяжении всего срока действия выпущенных ключей пользователя. Иначе мобильное приложение потеряет доступ к серверу PayControl и для восстановления будет необходимо перевыпустить ключ и заново добавить его в приложение пользователя.}}
 
{{Предупреждение|Если система была переведена в промышленную эксплуатацию, при смене адреса для доступа мобильных устройств, не рекомендуется выводить из действия предыдущий адрес на протяжении всего срока действия выпущенных ключей пользователя. Иначе мобильное приложение потеряет доступ к серверу PayControl и для восстановления будет необходимо перевыпустить ключ и заново добавить его в приложение пользователя.}}
Для учёта изменения внешнего адреса сервера PayControl, по которому связываются мобильное приложение с сервером PayControl, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PCS:
+
Для учёта изменения внешнего адреса сервера PayControl, по которому связываются мобильное приложение с сервером PayControl, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PC Server:
 
<syntaxhighlight lang="sql">update pc_system set pc_is_external_url = 'http[s]://<IP или DNS-имя>[:PORT]/PayControl-interaction-rest/' where systemid='<SYSTEMID>';</syntaxhighlight>
 
<syntaxhighlight lang="sql">update pc_system set pc_is_external_url = 'http[s]://<IP или DNS-имя>[:PORT]/PayControl-interaction-rest/' where systemid='<SYSTEMID>';</syntaxhighlight>

Версия 18:33, 30 октября 2019

Статья описывает установку с помощью инсталляционного скрипта.

Содержание

Справка скрипта инсталляции

Installation type (just one of them MUST be setted):
	-i	install
	-u	update

Install options
	-r	Register system (only on PC Server, matters with -i option)	

Update options
	-w	Update wildfly (matters only with -u 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 PayControl Server roles
	-S	PC Server
	-P	PC Pusher
	-E	PC External

Examples
	install -i -o 8 -SIE -r
	also like
	install -io8SIEr
		will install Oracle JDBC8 Driver, PC Server, PC Pusher, PC External and execute register system request

Перед установкой PayControl

Перед установкой необходимо установить JRE.

Конфигурирование

Перед установкой необходимо указать правильные значения адресов и портов СУБД и имена пользователей и пароли. Также для правильной настройки сервера PC External необходимо указать правильный адрес сервера PC Server по которому он сможет получить к нему доступ.

Эти параметры задаются в файле install.conf. Предварительно нужно скопировать файл install.conf.DEFAULT в файл install.conf.

Пример:

PC_VERSION='5.0'
PC_SUBVER='359'
PC_INSTALL_SCRIPT_VERSION='006'

WF_DISTRIB='wildfly-15.0.1.Final'

#	PC Settings
##	PC Server
### DB
PCSDB_HOST='192.168.2.99:1433'
PCSDB='pcs'
PCSDB_USER='pcs-db-username'
PCSDB_PASSWD='passw0rd'

##	PC Pusher
###	APNS Push key
APNS_AUTH_FILE='safetech-apns-JVBQX52N5Z.p8'
### DB
PCISDB_HOST='192.168.2.99:1433'
PCISDB='pcp'
PCISDB_USER='pcp-db-username'
PCISDB_PASSWD='passw0rd'

###	PC External
PCS_HOSTNAME_PORT='localhost:8080'

Установка

У пользователя, осуществляющего установку должны быть права на выполнение действий с уровнем привилегий root, либо возможность использовать учётную запись root.

  1. Скопировать файлы дистрибутива на сервер, например в домашнюю папку пользователя.
  2. Перейти в директорию с дистрибутивом.
  3. Предоставить права пользователю на исполнение файла-скрипта. Пример:
    chmod u+x install
    
  4. Запустить установочный скрипт с привилегиями root, с необходимыми параметрами.

Результат выполнения инсталляционного скрипта

Результат выполнения инсталляционного скрипта является:

  • установка службы wildflу (директория /opt);
  • включение автозапуска службы wildfly;
  • добавление драйверов СУБД (опционально);
  • добавление источников данных (только для PC Server и PC Pusher);
  • развёртывание файлов сервера в wildfly;
  • регистрация прикладной системы в PayControl (при установленном параметре "r"). Результат регистрации - вывод на экран идентификатора системы в конце журнала работы инсталляционного скрипта (systemid). Пример:
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns3:registerSystemResponse xmlns:ns2="http://ws.safetech.ru/PayControl/services/ws/common/" xmlns:ns3="http://ws.safetech.ru/PayControlV3/"><systemId>e64a67c9-73e9-462c-9c27-2d0195a2bd23</systemId></ns3:registerSystemResponse></soap:Body></soap:Envelope>
    
    В приведённом примере идентификатором зарегистрированной прикладной системы является e64a67c9-73e9-462c-9c27-2d0195a2bd23. В дальнейшем этот идентификатор понадобится при настройке прикладной системы на работу с PayControl. Если значение идентификатора прикладной системы утеряно, свяжитесь с компанией СэйфТек для его уточнения.

Примеры параметров запуска

Примеры ниже приведены для установки PayControl с драйвером 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/paycontrol/deployments/

Если компонент сервера развёрнут успешно, рядом с файлом компонента сервера создаётся файл с аналогичным именем файлу сервера с расширением ".deployed".

Проверка доступности сервисов

PC Server

Сервисы доступны по ссылкам (при запросе на эти адреса должна возвратиться WSDL-схема):

http://<IP или имя сервера PC Server>:8080/ws/PayControlServiceV3?wsdl
http://<IP или имя сервера PC Server>:8080/ws/PayControlReportService?wsdl

PC Pusher

Сервис доступен по адресу (при запросе на этот адрес должна возвратиться WSDL-схема):

http://<IP или имя сервера PC Pusher>:8080/wsis/PayControlInteractionService?wsdl

PC External

Сервис доступен по адресу

http://<IP или имя сервера PC External>:8080/PayControl-interaction-rest/

При запросе на этот адрес должно возвратиться текст «Not Found» с HTTP-кодом 404. В Internet Explorer будет выведена своя страница браузера, сообщающая о том, что страница не найдена.

Внесение изменений в БД

Создание индексов БД PC Server

Для создания индексов необходимо выполнить следующие запросы к БД PC Server:

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-уведомлений

В приложение 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_credentials_id_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_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%');

commit;

В другое мобильное приложение

Для внесение аутентификационных данных для отправки 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;

Корректировка (смена) адресов серверов PayControl (при необходимости)

В работе
Предупреждение! Не рекомендуется дополнительно указывать номер порта, в случаях, если для HTTP используется порт 80, или для HTTPS используется порт 443

Учёт изменения адреса сервера PC Server

Для учёта изменения адреса сервера PC Server необходимо произвести изменения в настройках PC External. В файле /opt/wildfly/bin/standalone.conf, в следующей строке, указав правильный адрес и при необходимости порт сервера PC Server, а также уточнив протокол подключения (HTTP/HTTPS):

JAVA_OPTS="$JAVA_OPTS -Dpcservice.endpoint=http[s]://<IP или DNS-имя>[:PORT]/ws/PayControlServiceV3?wsdl -Duser.language=ru -Dpaycontrol.locale=ru"

Учёт изменения адреса сервера PC Pusher

Для учёта изменения адреса сервера PC Pusher, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PC Server:

update pc_system set pc_is_internal_url = 'http[s]://<IP или DNS-имя>[:PORT]/wsis/PayControlInteractionService?wsdl' where systemid='<SYSTEMID>';

Учёт изменения внешнего адреса сервера PC External

В работе
Предупреждение! Если система была переведена в промышленную эксплуатацию, при смене адреса для доступа мобильных устройств, не рекомендуется выводить из действия предыдущий адрес на протяжении всего срока действия выпущенных ключей пользователя. Иначе мобильное приложение потеряет доступ к серверу PayControl и для восстановления будет необходимо перевыпустить ключ и заново добавить его в приложение пользователя.

Для учёта изменения внешнего адреса сервера PayControl, по которому связываются мобильное приложение с сервером PayControl, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PC Server:

update pc_system set pc_is_external_url = 'http[s]://<IP или DNS-имя>[:PORT]/PayControl-interaction-rest/' where systemid='<SYSTEMID>';