<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://repo.paycontrol.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=N.fomenko</id>
	<title>PayControl Wiki - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://repo.paycontrol.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=N.fomenko"/>
	<link rel="alternate" type="text/html" href="https://repo.paycontrol.org/wiki/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/N.fomenko"/>
	<updated>2026-06-03T15:49:43Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://repo.paycontrol.org/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B_%D0%BA%D0%BB%D1%8E%D1%87%D0%B0&amp;diff=543</id>
		<title>Параметры ключа</title>
		<link rel="alternate" type="text/html" href="https://repo.paycontrol.org/wiki/index.php?title=%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B_%D0%BA%D0%BB%D1%8E%D1%87%D0%B0&amp;diff=543"/>
		<updated>2021-06-01T12:18:35Z</updated>

		<summary type="html">&lt;p&gt;N.fomenko: NFC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;При создании запроса на генерацию [[Ключевая информация|ключевой информации]] пользователя, могут быть установлены параметры, перечисленные ниже.&lt;br /&gt;
=Описание=&lt;br /&gt;
==Отпечаток устройства==&lt;br /&gt;
&#039;&#039;&#039;withFingerPrint&#039;&#039;&#039; – указывает, осуществлять ли привязку устройства к Пользователю PayControl. В случае наличия в запросе на создание пользователя параметра «флаг привязки пользователя к устройству» со значением «true» при проверке кода подтверждения будет использован отпечаток устройства пользователя. Отпечаток устройства вносится в информацию о пользователе путем вызова метода «Сохранение отпечатка устройства»;&lt;br /&gt;
&lt;br /&gt;
==Сбор событий==&lt;br /&gt;
&#039;&#039;&#039;collectEvent&#039;&#039;&#039; – флаг, указывающий необходимость передачи мобильным приложением информации о событиях и сохранения её сервером в базе данных PayControl;&lt;br /&gt;
===Информация об устройстве===&lt;br /&gt;
&#039;&#039;&#039;collectDeviceInfo&#039;&#039;&#039; – флаг, указывающий необходимость сбора информации об устройстве в составе информации о событии. Учитывается только в случае, если установлен флаг collectEvent;&lt;br /&gt;
====Информация о сим-карте====&lt;br /&gt;
&#039;&#039;&#039;collectDeviceSIMInfo&#039;&#039;&#039; – флаг, указывающий необходимость сбора информации о телефоне (SIM-карте). При включении – мобильное устройство передаёт информацию, относящуюся к телефону и SIM-карте в составе информации об устройстве. Учитывается только если установлен флаг collectDeviceInfo. На Android-устройстве необходимо дополнительное разрешение приложению на доступ к информации о телефоне;&lt;br /&gt;
&lt;br /&gt;
====Информация о местоположении устройства====&lt;br /&gt;
&#039;&#039;&#039;collectDeviceLocation&#039;&#039;&#039; – флаг, указывающий необходимость сбора информации о местоположении устройства. При включении – мобильное устройство передаёт координаты местоположения устройства в составе информации об устройстве. Учитывается только если установлен флаг collectDeviceInfo. На мобильном устройстве необходимо дополнительное разрешение на доступ к геолокации;&lt;br /&gt;
&lt;br /&gt;
==Запрет перерегистрации открытого ключа==&lt;br /&gt;
&#039;&#039;&#039;denyRenewPublicKey&#039;&#039;&#039; – флаг, запрещающий перерегистарцию открытого ключа сервере, если открытый ключ уже был зарегистрирован ранее;&lt;br /&gt;
&lt;br /&gt;
==Параметры сохранения ключевой информации на устройстве==&lt;br /&gt;
===Запрет использования механизмов безопасности ОС===&lt;br /&gt;
&#039;&#039;&#039;denyStoreWithOSProtection&#039;&#039;&#039; – флаг, запрещающий сохранение ключа с использованием механизмов безопасности операционной системы мобильного устройства (TouchID/FaceID, Google Key Store);&lt;br /&gt;
===Требования к паролю===&lt;br /&gt;
Также может быть указан вариант требований к сложности пароля при сохранении ключевой информации на мобильном устройстве, путём задания значения passPolicy. Доступны следующие варианты:&lt;br /&gt;
* «0» – минимум 6 символов, пароль не обязателен;&lt;br /&gt;
* «1» – минимум 6 символов, пароль обязателен;&lt;br /&gt;
* «2» – минимум 8 символов (обязательно использование A-Z и a-z) пароль обязателен;&lt;br /&gt;
* «3» – минимум 8 символов (обязательно использование A-Z, a-z и 0-9) пароль обязателен.&lt;br /&gt;
Если опциональное значение passPolicy не установлено, принимается значение равное «0».&lt;br /&gt;
==Скоринг и автоподпись==&lt;br /&gt;
===Скоринг===&lt;br /&gt;
&#039;&#039;&#039;scoring_enabled&#039;&#039;&#039; - разрешение &amp;quot;скоринга&amp;quot; устройства и поведенческого анализа с помощью дополнительного антифрод-модуля Secure Bank от Group IB. Лицензируется отдельно.&lt;br /&gt;
===Автоподписание===&lt;br /&gt;
&#039;&#039;&#039;autosign_enabled&#039;&#039;&#039; - разрешение автоподписи транзакций на основе результата скоринга устройства и поведенческого анализа. Для автоподписи используется дополнительная асимметричная ключевая пара.&lt;br /&gt;
==Отложенный ввод в действие ключевой информации==&lt;br /&gt;
&#039;&#039;&#039;delayed&#039;&#039;&#039; – флаг отложенного ввода в действие ключа. При его установке ключ, используемый для подтверждения транзакций и проверки кодов аутентификации, не заменяется. Сгенерированный новый ключ помечается как отложенный. Его ввод в действие выполняется одним из следующих способов:&lt;br /&gt;
*	путем вызова метода Ввод отложенного ключа в действие;&lt;br /&gt;
*	путем вызова одного из методов: Сохранение отпечатка устройства, Регистрация открытого ключа, Регистрация устройства для отправки PUSH-уведомлений с кодом аутентификации, сформированным на отложенном ключе.&lt;br /&gt;
Выполнять обновление ключевой информации с флагом отложенного ввода можно неограниченное количество раз. При этом сформированная ранее отложенная ключевая информация будет заменена новой отложенной ключевой информацией.&lt;br /&gt;
При выполнении обновления без данного флага вся отложенная ключевая информация далее считается недействительной и не может быть введена в действие.&lt;br /&gt;
Если значение опционального флага не указано, принимается значение равное «false».&lt;br /&gt;
==Параметры NFC==&lt;br /&gt;
&#039;&#039;&#039;nfc_policy&#039;&#039;&#039; - флаг, который определяет использования NFC на мобильном устройстве. Доступны следующие варианты:&lt;br /&gt;
* «0» – использование NFC-карты, хранащей закрытый ключ, на мобильном устройстве запрещено. Для всех криптографических операций используется ключевая пара генерируемая на самом мобильном устройстве;&lt;br /&gt;
* «1» – использование NFC-карты, хранащей закрытый ключ, на мобильном устройстве опционально. В криптографических операциях может быть использована как ключевая пара, генерируемая на мобильном устройстве, так и ключевой контейнер, хранящийся на NFC-карте;&lt;br /&gt;
* «2» – использование NFC-карты, хранащей закрытый ключ, на мобильном устройстве обязательно. Для всех криптографических операций используется ключевая пара, хранящаяся в контейнере на NFC-карте;&lt;br /&gt;
&lt;br /&gt;
Если опциональное значение nfc_policy не установлено, принимается значение равное «0».&lt;br /&gt;
=Флаги=&lt;br /&gt;
В составе QR-кода, значения передаются в 7-ой строке данных (для версии сервера 3.x) или в параметре &amp;quot;key_flags&amp;quot; (для версии сервера 5 и выше), целым числом. Значения флагов вычисляются с помощью битовой маски.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
KEYFLAG_WITH_FINGERPINT = (1 &amp;lt;&amp;lt; 0);&lt;br /&gt;
KEYFLAG_COLLECT_EVENTS = (1 &amp;lt;&amp;lt; 1);&lt;br /&gt;
KEYFLAG_COLLECT_DEVICEINFO = (1 &amp;lt;&amp;lt; 2);&lt;br /&gt;
KEYFLAG_COLLECT_SIMINFO = (1 &amp;lt;&amp;lt; 3);&lt;br /&gt;
KEYFLAG_COLLECT_LOCATION = (1 &amp;lt;&amp;lt; 4);&lt;br /&gt;
KEYFLAG_PASS_POLICY_POS = (1 &amp;lt;&amp;lt; 5); // password policy encoded by 2 bits (4 values)&lt;br /&gt;
KEYFLAG_PASS_POLICY_POS = (1 &amp;lt;&amp;lt; 6); // password policy encoded by 2 bits (4 values)&lt;br /&gt;
KEYFLAG_DENY_STORE_WITH_OS_PROTECTION = (1 &amp;lt;&amp;lt; 7);&lt;br /&gt;
KEYFLAG_DENY_RENEW_PUBKEY = (1 &amp;lt;&amp;lt; 8);&lt;br /&gt;
KEYFLAG_SCORING_ENABLED = (1 &amp;lt;&amp;lt; 9);&lt;br /&gt;
KEYFLAG_AUTOSIGN_ENABLED = (1 &amp;lt;&amp;lt; 10);&lt;br /&gt;
KEYFLAG_REMOTE_UPDATE_ENABLED = (1 &amp;lt;&amp;lt; 11);&lt;br /&gt;
KEYFLAG_SERVERSIGNER = (1 &amp;lt;&amp;lt; 12);&lt;br /&gt;
KEYFLAG_NFC_ENABLED_POS = (1 &amp;lt;&amp;lt; 13);&lt;br /&gt;
KEYFLAG_NFC_ENABLED_POS = (1 &amp;lt;&amp;lt; 14);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>N.fomenko</name></author>
	</entry>
	<entry>
		<id>https://repo.paycontrol.org/wiki/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0_PayControl_v5_%D0%B2%D1%80%D1%83%D1%87%D0%BD%D1%83%D1%8E&amp;diff=406</id>
		<title>Установка компонентов сервера PayControl v5 вручную</title>
		<link rel="alternate" type="text/html" href="https://repo.paycontrol.org/wiki/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0_PayControl_v5_%D0%B2%D1%80%D1%83%D1%87%D0%BD%D1%83%D1%8E&amp;diff=406"/>
		<updated>2020-08-26T08:52:10Z</updated>

		<summary type="html">&lt;p&gt;N.fomenko: /* Добавление источников данных для модулей */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Подготовка БД=&lt;br /&gt;
* Создать базу данных и пользователя на сервере СУБД, где будет работать база данных PCS (pcs-user, pcs-pass, pcs-db, pcs-db-host). Предоставить права на доступ пользователю к БД.&lt;br /&gt;
* Создать базу данных и пользователя на сервере СУБД, где будет работать база данных PCP (pcp-user, pcp-pass, pcp-db, pcp-db-host). Предоставить права на доступ пользователю к БД.&lt;br /&gt;
=Установка Java=&lt;br /&gt;
Установить последнюю версию JRE ветки 1.8 или 11&lt;br /&gt;
==Обновление Security==&lt;br /&gt;
===JRE 1.8===&lt;br /&gt;
* Скачать архив по адресу http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html&lt;br /&gt;
* Распаковать и скопировать файлы по адресу &#039;&#039;&amp;lt;JRE&amp;gt;\lib\security\&#039;&#039;, заменив старые версии.&lt;br /&gt;
===JRE 11===&lt;br /&gt;
Замена файлов библиотек не требуется.&lt;br /&gt;
=Установка Wildfly=&lt;br /&gt;
* Скачать актуальную версию WildFly Server – https://wildfly.org/downloads/&lt;br /&gt;
Далее по тексту, под &amp;lt;WF_PATH&amp;gt; имеется в виду адрес созданной символьной ссылки.&lt;br /&gt;
==Linux==&lt;br /&gt;
* Распаковать Wildfly, например, в /opt/.&lt;br /&gt;
* Создать символьную ссылку /opt/wildfly на распакованную директорию:&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ln -s /opt/wildfly-18.0.1.Final/ /opt/wildfly&amp;lt;/source&amp;gt;&lt;br /&gt;
==Windows==&lt;br /&gt;
* Распаковать Wildfly, например, в C:\.&lt;br /&gt;
* Создать символьную ссылку, к примеру &#039;&#039;C:\wildfly&#039;&#039;, на распакованную директорию. Пример команды:&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;mklink /D c:\wildfly c:\wildfly-18.0.1.Final\&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Удаление настроек WildFly по-умолчанию==&lt;br /&gt;
Для удаления настроек по-умолчанию, необходимо выполнить пункты описанные по ссылке [[PCWiki:Wildfly#Удаление настроек по умолчанию|Wildfly - Удаление настроек по умолчанию]]&lt;br /&gt;
=Настройка подключения к БД=&lt;br /&gt;
==Добавление JDBC-драйвера СУБД==&lt;br /&gt;
===PostgreSQL===&lt;br /&gt;
* Скачать актуальный JDBC-драйвер по адресу https://jdbc.postgresql.org/&lt;br /&gt;
* Создать директорию &amp;lt;WF_PATH&amp;gt;/modules/org/postgresql/main/&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo mkdir -p /opt/wildfly/modules/org/postgresql/main/&amp;lt;/source&amp;gt;&lt;br /&gt;
* В директорию поместить скачанный jar.&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo mv postgresql-42.2.2.jar /opt/wildfly/modules/org/postgresql/main/&amp;lt;/source&amp;gt;&lt;br /&gt;
* Создать в этой же папке файл module.xml&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo vi /opt/wildfly/modules/org/postgresql/main/module.xml&amp;lt;/source&amp;gt;следующего содержания, указав имя файла драйвера вместо &amp;quot;JAR_PATH&amp;quot;:&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;module xmlns=&amp;quot;urn:jboss:module:1.0&amp;quot; name=&amp;quot;org.postgresql&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;resources&amp;gt;&lt;br /&gt;
     &amp;lt;resource-root path=&amp;quot;JAR_PATH&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/resources&amp;gt;&lt;br /&gt;
  &amp;lt;dependencies&amp;gt;&lt;br /&gt;
    &amp;lt;module name=&amp;quot;javax.api&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;module name=&amp;quot;javax.transaction.api&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;module name=&amp;quot;javax.servlet.api&amp;quot; optional=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/dependencies&amp;gt;&lt;br /&gt;
&amp;lt;/module&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===MS SQL===&lt;br /&gt;
* Скачать JDBC-драйвер с сайта Microsoft https://docs.microsoft.com/ru-ru/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15&lt;br /&gt;
* Создать директорию &#039;&#039;&amp;lt;WF_PATH&amp;gt;/modules/system/layers/base/com/microsoft/sqlserver/main/&#039;&#039;&lt;br /&gt;
* В директорию распаковать файлы и директории драйвера. Файлы драйвера (*.jar) должны располагаться непосредственно в директории &#039;&#039;main/&#039;&#039;&lt;br /&gt;
* Создать в этой же папке файл module.xml следующего содержания, заменив JAR_PATH на имя файла драйвера, например на &#039;&#039;mssql-jdbc-6.2.1.jre8.jar&#039;&#039;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;module xmlns=&amp;quot;urn:jboss:module:1.3&amp;quot; name=&amp;quot;com.microsoft.sqlserver&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;resources&amp;gt;&lt;br /&gt;
    &amp;lt;resource-root path=&amp;quot;JAR_PATH&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/resources&amp;gt;&lt;br /&gt;
  &amp;lt;dependencies&amp;gt;&lt;br /&gt;
    &amp;lt;module name=&amp;quot;javax.api&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;module name=&amp;quot;javax.transaction.api&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;module name=&amp;quot;javax.xml.bind.api&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/dependencies&amp;gt;&lt;br /&gt;
&amp;lt;/module&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Добавить установленный модуль в качестве драйвера для подключения к СУБД в файл &amp;lt;WF_PATH&amp;gt;/standalone/configuration/standalone.xml, в секцию &#039;&#039;&amp;lt;datasources/drivers&amp;gt;&#039;&#039;, добавив следующий блок:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;driver name=&amp;quot;mssql&amp;quot; module=&amp;quot;com.microsoft.sqlserver&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;driver-class&amp;gt;com.microsoft.sqlserver.jdbc.SQLServerDriver&amp;lt;/driver-class&amp;gt;&lt;br /&gt;
&amp;lt;/driver&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Добавление источников данных для модулей==&lt;br /&gt;
===PostgreSQL===&lt;br /&gt;
====PCS====&lt;br /&gt;
В файл &#039;&#039;&amp;lt;wf_path&amp;gt;/standalone/configuration/standalone.xml&amp;lt;/wf_path&amp;gt;&#039;&#039; внести следующие изменения добавить новый источник данных в секцию &#039;&#039;&amp;lt;datasources&amp;gt;&amp;lt;/datasources&amp;gt;&#039;&#039; заменив pcs-db-host, port, pcs-db, pcs-user, pcs-pass:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;datasource jta=&amp;quot;true&amp;quot; jndi-name=&amp;quot;java:jboss/datasources/PCServerDS&amp;quot; pool-name=&amp;quot;PCServerDS&amp;quot; enabled=&amp;quot;true&amp;quot; use-ccm=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;connection-url&amp;gt;jdbc:postgresql://pcs-db-host:port/pcs-db&amp;lt;/connection-url&amp;gt;&lt;br /&gt;
    &amp;lt;driver-class&amp;gt;org.postgresql.Driver&amp;lt;/driver-class&amp;gt;&lt;br /&gt;
    &amp;lt;connection-property name=&amp;quot;url&amp;quot;&amp;gt;&lt;br /&gt;
        jdbc:postgresql://pcs-db-host:port/pcs-db&lt;br /&gt;
    &amp;lt;/connection-property&amp;gt;&lt;br /&gt;
    &amp;lt;driver&amp;gt;postgresql&amp;lt;/driver&amp;gt;&lt;br /&gt;
    &amp;lt;security&amp;gt;&lt;br /&gt;
        &amp;lt;user-name&amp;gt;pcs-user&amp;lt;/user-name&amp;gt;&lt;br /&gt;
        &amp;lt;password&amp;gt;pcs-pass&amp;lt;/password&amp;gt;&lt;br /&gt;
    &amp;lt;/security&amp;gt;&lt;br /&gt;
    &amp;lt;validation&amp;gt;&lt;br /&gt;
        &amp;lt;valid-connection-checker class-name=&amp;quot;org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;background-validation&amp;gt;true&amp;lt;/background-validation&amp;gt;&lt;br /&gt;
        &amp;lt;exception-sorter class-name=&amp;quot;org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/validation&amp;gt;&lt;br /&gt;
&amp;lt;/datasource&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====PCP====&lt;br /&gt;
На сервере PCP добавить новый источник данных в секцию &#039;&#039;&amp;lt;datasources&amp;gt;&amp;lt;/datasources&amp;gt;&#039;&#039;, заменив pcp-db-host, port, pcp-db, pcp-user, pcp-pass:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;datasource jta=&amp;quot;true&amp;quot; jndi-name=&amp;quot;java:jboss/datasources/PCPusherDS&amp;quot; pool-name=&amp;quot;PCPusherDS&amp;quot; enabled=&amp;quot;true&amp;quot; use-ccm=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;connection-url&amp;gt;jdbc:postgresql://pcp-db-host:port/pcp-db&amp;lt;/connection-url&amp;gt;&lt;br /&gt;
    &amp;lt;driver-class&amp;gt;org.postgresql.Driver&amp;lt;/driver-class&amp;gt;&lt;br /&gt;
    &amp;lt;connection-property name=&amp;quot;url&amp;quot;&amp;gt;&lt;br /&gt;
        jdbc:postgresql://pcp-db-host:port/pcp-db&lt;br /&gt;
    &amp;lt;/connection-property&amp;gt;&lt;br /&gt;
    &amp;lt;driver&amp;gt;postgresql&amp;lt;/driver&amp;gt;&lt;br /&gt;
    &amp;lt;security&amp;gt;&lt;br /&gt;
        &amp;lt;user-name&amp;gt;pcp-user&amp;lt;/user-name&amp;gt;&lt;br /&gt;
        &amp;lt;password&amp;gt;pcp-pass&amp;lt;/password&amp;gt;&lt;br /&gt;
    &amp;lt;/security&amp;gt;&lt;br /&gt;
    &amp;lt;validation&amp;gt;&lt;br /&gt;
        &amp;lt;valid-connection-checker class-name=&amp;quot;org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;background-validation&amp;gt;true&amp;lt;/background-validation&amp;gt;&lt;br /&gt;
        &amp;lt;exception-sorter class-name=&amp;quot;org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/validation&amp;gt;&lt;br /&gt;
&amp;lt;/datasource&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===MS SQL===&lt;br /&gt;
====PCS====&lt;br /&gt;
В файл &#039;&#039;&amp;lt;wf_path&amp;gt;/standalone/configuration/standalone.xml&amp;lt;/wf_path&amp;gt;&#039;&#039; внести следующие изменения добавить новый источник данных в секцию &#039;&#039;&amp;lt;datasources&amp;gt;&amp;lt;/datasources&amp;gt;&#039;&#039; заменив pcs-db-host, port, pcs-db-host, pcs-db, pcs-user, pcs-pass:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;datasource jta=&amp;quot;true&amp;quot; jndi-name=&amp;quot;java:jboss/datasources/PCServerDS&amp;quot; pool-name=&amp;quot;PCServerDS&amp;quot; enabled=&amp;quot;true&amp;quot; use-ccm=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;connection-url&amp;gt;jdbc:sqlserver://pcs-db-host:port;databaseName=pcs-db&amp;lt;/connection-url&amp;gt;&lt;br /&gt;
	&amp;lt;connection-property name=&amp;quot;url&amp;quot;&amp;gt;&lt;br /&gt;
		jdbc:sqlserver://pcs-db-host:port;databaseName=pcs-db&lt;br /&gt;
	&amp;lt;/connection-property&amp;gt;&lt;br /&gt;
	&amp;lt;driver&amp;gt;mssql&amp;lt;/driver&amp;gt;&lt;br /&gt;
	&amp;lt;security&amp;gt;&lt;br /&gt;
		&amp;lt;user-name&amp;gt;pcs-user&amp;lt;/user-name&amp;gt;&lt;br /&gt;
		&amp;lt;password&amp;gt;pcs-pass&amp;lt;/password&amp;gt;&lt;br /&gt;
	&amp;lt;/security&amp;gt;&lt;br /&gt;
	&amp;lt;pool&amp;gt;&lt;br /&gt;
		&amp;lt;min-pool-size&amp;gt;5&amp;lt;/min-pool-size&amp;gt;&lt;br /&gt;
		&amp;lt;max-pool-size&amp;gt;50&amp;lt;/max-pool-size&amp;gt;&lt;br /&gt;
		&amp;lt;prefill&amp;gt;false&amp;lt;/prefill&amp;gt;&lt;br /&gt;
		&amp;lt;use-strict-min&amp;gt;false&amp;lt;/use-strict-min&amp;gt;&lt;br /&gt;
		&amp;lt;flush-strategy&amp;gt;FailingConnectionOnly&amp;lt;/flush-strategy&amp;gt;&lt;br /&gt;
	&amp;lt;/pool&amp;gt;&lt;br /&gt;
	&amp;lt;validation&amp;gt;&lt;br /&gt;
		&amp;lt;valid-connection-checker class-name=&amp;quot;org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker&amp;quot;&amp;gt;&amp;lt;/valid-connection-checker&amp;gt;&lt;br /&gt;
	&amp;lt;/validation&amp;gt;&lt;br /&gt;
&amp;lt;/datasource&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====PCP====&lt;br /&gt;
На сервере PCP добавить новый источник данных в секцию &#039;&#039;&amp;lt;datasources&amp;gt;&amp;lt;/datasources&amp;gt;&#039;&#039;, заменив pcp-db-host, port, pcp-db-host, pcp-db, pcp-user, pcp-pass:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;datasource jta=&amp;quot;true&amp;quot; jndi-name=&amp;quot;java:jboss/datasources/PCPusherDS&amp;quot; pool-name=&amp;quot;PCPusherDS&amp;quot; enabled=&amp;quot;true&amp;quot; use-ccm=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;connection-url&amp;gt;jdbc:sqlserver://pcp-db-host:port;databaseName=pcp-db&amp;lt;/connection-url&amp;gt;&lt;br /&gt;
	&amp;lt;connection-property name=&amp;quot;url&amp;quot;&amp;gt;&lt;br /&gt;
		jdbc:sqlserver://pcp-db-host:port;databaseName=pcp-db&lt;br /&gt;
	&amp;lt;/connection-property&amp;gt;&lt;br /&gt;
	&amp;lt;driver&amp;gt;mssql&amp;lt;/driver&amp;gt;&lt;br /&gt;
	&amp;lt;security&amp;gt;&lt;br /&gt;
		&amp;lt;user-name&amp;gt;pcp-user&amp;lt;/user-name&amp;gt;&lt;br /&gt;
		&amp;lt;password&amp;gt;pcp-pass&amp;lt;/password&amp;gt;&lt;br /&gt;
	&amp;lt;/security&amp;gt;&lt;br /&gt;
	&amp;lt;pool&amp;gt;&lt;br /&gt;
		&amp;lt;min-pool-size&amp;gt;5&amp;lt;/min-pool-size&amp;gt;&lt;br /&gt;
		&amp;lt;max-pool-size&amp;gt;50&amp;lt;/max-pool-size&amp;gt;&lt;br /&gt;
		&amp;lt;prefill&amp;gt;false&amp;lt;/prefill&amp;gt;&lt;br /&gt;
		&amp;lt;use-strict-min&amp;gt;false&amp;lt;/use-strict-min&amp;gt;&lt;br /&gt;
		&amp;lt;flush-strategy&amp;gt;FailingConnectionOnly&amp;lt;/flush-strategy&amp;gt;&lt;br /&gt;
	&amp;lt;/pool&amp;gt;&lt;br /&gt;
	&amp;lt;validation&amp;gt;&lt;br /&gt;
		&amp;lt;valid-connection-checker class-name=&amp;quot;org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker&amp;quot;&amp;gt;&amp;lt;/valid-connection-checker&amp;gt;&lt;br /&gt;
	&amp;lt;/validation&amp;gt;&lt;br /&gt;
&amp;lt;/datasource&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Добавление драйвера&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===После тегов &amp;lt;datasource&amp;gt;&amp;lt;/datasource&amp;gt;добавить драйвер базы данных===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;drivers&amp;gt;&lt;br /&gt;
    &amp;lt;driver name=&amp;quot;postgresql&amp;quot; module=&amp;quot;org.postgresql&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;driver-class&amp;gt;org.postgresql.Driver&lt;br /&gt;
        &amp;lt;/driver-class&amp;gt;&lt;br /&gt;
    &amp;lt;/driver&amp;gt;&lt;br /&gt;
&amp;lt;/drivers&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Настройка подключения PCE к PCS=&lt;br /&gt;
На сервере PCE необходимо установить адрес сервера PCS (host и port заменить на реальные значения). Для этого:&lt;br /&gt;
* на Linux в файл &#039;&#039;&amp;lt;WF_PATH&amp;gt;/bin/standalone.conf&#039;&#039; нужно добавить &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;JAVA_OPTS=&amp;quot;$JAVA_OPTS -Dpc_url=http://&amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;/pc-api/ -Dpc_locale=ru&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* на Windows в файл &#039;&#039;&amp;lt;WF_PATH&amp;gt;/bin/standalone.conf.bat&#039;&#039; нужно добавить &amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;set &amp;quot;JAVA_OPTS=%JAVA_OPTS% -Dpc_url=http://&amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;/pc-api/ -Dpc_locale=ru&amp;quot;&amp;lt;/syntaxhighlight&amp;gt; выше метки :JAVA_OPTS_SET&lt;br /&gt;
&lt;br /&gt;
=Настройка выделения памяти серверу=&lt;br /&gt;
На всех серверах установить максимальный объем доступной для использования памяти:&lt;br /&gt;
* на Linux в &#039;&#039;&amp;lt;WF_PATH&amp;gt;/bin/standalone.conf&#039;&#039; указать объём «ОбщийОбъёмОЗУ - 512MB»&lt;br /&gt;
* на Windows в &#039;&#039;&amp;lt;WF_PATH&amp;gt;\bin\standalone.conf.bat&#039;&#039; указать объём «ОбщийОбъёмОЗУ - 1536MB»&lt;br /&gt;
Для этого в строке&lt;br /&gt;
&#039;&#039;JAVA_OPTS=&amp;quot;-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true&amp;quot;&#039;&#039; поменять значение параметра &#039;&#039;Xmx&#039;&#039; на выделяемый объём.&lt;br /&gt;
==Запуск проекта==&lt;br /&gt;
* Скопировать файл приложения сервера &#039;&#039;&amp;lt;WF_PATH&amp;gt;\standalone\deployments\&#039;&#039;:&lt;br /&gt;
** на PC Server - файл &#039;&#039;pc-server-&amp;lt;VERSION&amp;gt;.ear&#039;&#039;&lt;br /&gt;
** на PC Pusher - файл &#039;&#039;pc-pusher-&amp;lt;VERSION&amp;gt;.war&#039;&#039;&lt;br /&gt;
** на PC External - файл &#039;&#039;pc-external-&amp;lt;VERSION&amp;gt;.war&#039;&#039;&lt;br /&gt;
Один сервер WildFly может запускать одно или несколько приложений сервера&lt;br /&gt;
* Запустить&lt;br /&gt;
** Linux &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&amp;lt;WF_PATH&amp;gt;/bin/standalone.sh -b 0.0.0.0&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
** Windows &amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&amp;lt;WF_PATH&amp;gt;\bin\standalone.bat -b 0.0.0.0&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*:  где -b 0.0.0.0 - позволяет подключаться к серверу используя любой его интерфейс (опция bind)&lt;br /&gt;
* Дождаться старта WF, проверить, что нет ошибок запуска.&lt;br /&gt;
==Настройка автозапуска службы сервера==&lt;br /&gt;
===Linux===&lt;br /&gt;
Для настройки автозапуска службы, перейти в каталог &amp;lt;WF_PATH&amp;gt;/docs/contrib/scripts/systemd/ и выполнить шаги, описанные в файле README в этом каталоге, за исключением пунктов распаковки и создания символьной ссылки на каталог.&lt;br /&gt;
Пункт &amp;lt;code&amp;gt;chown -R wildfly:wildfly /opt/wildfly&amp;lt;/code&amp;gt; необходимо выполнить с параметрами «-RH» (параметр «H» указывает, что если на вход подана символьная ссылка, то нужно пойти вглубь каталога, на который она ссылается). Таким образом команда должна выглядеть следующим образом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;chown -RHv wildfly:wildfly /opt/wildfly&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
При запуске в качестве службы, возможно отклонение запросов. В таком случае необходимо установить параметры JAVA_OPTS в файле standalone.conf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;JAVA_OPTS=&amp;quot;$JAVA_OPTS -Djboss.bind.address=0.0.0.0&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Windows===&lt;br /&gt;
Скопировать папку&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&amp;lt;WF_PATH&amp;gt;\docs\contrib\scripts\service\&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
в папку&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&amp;lt;WF_PATH&amp;gt;\bin\&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Выполнить&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&amp;lt;WF_PATH&amp;gt;\bin\service\service.bat install /startup&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
При запуске в качестве службы, возможно отклонение запросов. В таком случае необходимо установить параметры JAVA_OPTS в файле standalone.conf.bat выше метки :JAVA_OPTS_SET.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;set &amp;quot;JAVA_OPTS=%JAVA_OPTS% -Djboss.bind.address=0.0.0.0&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==URL-фильтрация при совмещении PC Pusher и PC External==&lt;br /&gt;
При совмещении ролей PC Pusher и PC External на одном сервере необходимо исключить возможность выполнения запросов PC Pusher со стороны сети интернет. &amp;lt;br&amp;gt;&lt;br /&gt;
Для этого необходимо со стороны сети интернет разрешить подключения только на конечную точку PC External. &amp;lt;br&amp;gt;&lt;br /&gt;
Конечная точка PC External - &#039;&#039;&amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;/pc-client-api/*&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Доступ к другим конечным точкам должен быть запрещен.&lt;br /&gt;
&lt;br /&gt;
При этом доступ к PC Pusher со стороны PC Server должен сохраниться. &amp;lt;br&amp;gt;&lt;br /&gt;
Конечная точка PC Pusher - &#039;&#039;&amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;/pc-pusher-api/*&#039;&#039;&lt;br /&gt;
=Внесение изменений в БД=&lt;br /&gt;
==Создание индексов БД PCS==&lt;br /&gt;
После первого запуска приложения, в базе данных будут созданы необходимые таблицы.&lt;br /&gt;
&lt;br /&gt;
На продуктивной среде после этого необходимо создать индексы в базе данных PC Server.&lt;br /&gt;
&lt;br /&gt;
Для этого выполните SQL скрипт:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
create index pc_keyinfo1_idx on PC_KEYINFO (userID, expiration_date, is_deleted);&lt;br /&gt;
create index pc_delayedkeyinfo1_idx on PC_DELAYEDKEYINFO (userID, is_deleted);&lt;br /&gt;
create index pc_device1_idx on PC_DEVICE (userID, is_deleted); &lt;br /&gt;
create index pc_transaction1_idx on PC_TRANSACTION (userID, status);&lt;br /&gt;
create index pc_device2_idx on PC_DEVICE (userID); &lt;br /&gt;
create index pc_keyinfo2_idx on PC_KEYINFO (userID); &lt;br /&gt;
create index pc_transaction2_idx on PC_TRANSACTION (userID); &lt;br /&gt;
create index pc_user1_idx on PC_USER (systemID);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Корректировка типов данных для MS SQL==&lt;br /&gt;
Java-приложение при создании таблиц БД неоптимально устанавливает тип для одного из полей для СУБД MS SQL.&lt;br /&gt;
&lt;br /&gt;
Для его корректировки после того, как таблицы созданы, выполните запрос&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
ALTER TABLE PC_TRANSACTION ALTER COLUMN DATA_BINARY image;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Регистрация системы==&lt;br /&gt;
После успешного запуска приложения PC Server до начала работы необходимо зарегистрировать прикладную систему.&lt;br /&gt;
&lt;br /&gt;
Это действие выполняется путем отправки на PC Server HTTP POST запроса, сформированного ST/Airome. Содержание запроса предоставляется дополнительно.&lt;br /&gt;
&lt;br /&gt;
Для отправки запроса можно использовать любое средство отправки HTTP-запросов.&lt;br /&gt;
===Примеры===&lt;br /&gt;
====PowerShell====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;PowerShell&amp;quot;&amp;gt;&lt;br /&gt;
$headers = New-Object &amp;quot;System.Collections.Generic.Dictionary[[String],[String]]&amp;quot;&lt;br /&gt;
$headers.Add(&amp;quot;Content-Type&amp;quot;, &amp;quot;application/json&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$body = &amp;quot;{n  &amp;quot;request`&amp;quot;:&amp;quot;eyJyZXF1ZXN0Ijp7InFyVVJMU2NoZW1lIjEE9NoZ+W1lIjEE9NoZW... ...9NoZW1lIjEE+9NoZW1lIjEE9NoZW1lIjEE9PSJ9&amp;quot;`n}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$response = Invoke-RestMethod &#039;https://dev.paycontrol.org/v5.0/pc-api/&#039; -Method &#039;POST&#039; -Headers $headers -Body $body&lt;br /&gt;
$response | ConvertTo-Json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====cURL====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&lt;br /&gt;
curl --location --request POST &#039;http://&amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;/pc-api/&#039; --header &#039;Content-Type: application/json&#039; --data-raw &#039;{&amp;quot;request&amp;quot;:&amp;quot;eyJyZXF1ZXN0Ijp7InFyVVJMU2NoZW1lIjEE9NoZ+W1lIjEE9NoZW1lIjEE9... ...IjEE9NoZW1lIjEE9PSJ9&amp;quot;}&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Доступ к сервисам==&lt;br /&gt;
Адреса конечных точек по умолчанию:&lt;br /&gt;
* PC Server - http://&amp;lt;host&amp;gt;:8080/pc-api/&lt;br /&gt;
* PC Pusher - http://&amp;lt;host&amp;gt;:8080/pc-pusher-api/&lt;br /&gt;
* PC External - http://&amp;lt;host&amp;gt;:8080/pc-client-api/&lt;br /&gt;
&lt;br /&gt;
===Health Check===&lt;br /&gt;
Адреса конечных точек health check:&lt;br /&gt;
* PC Server - http://&amp;lt;host&amp;gt;:8080/pc-api/health_check&lt;br /&gt;
* PC Pusher - http://&amp;lt;host&amp;gt;:8080/pc-pusher-api/health_check&lt;br /&gt;
* PC External - http://&amp;lt;host&amp;gt;:8080/pc-client-api/health_check&lt;br /&gt;
=Внесение аутентификационных данных для отправки push-уведомлений=&lt;br /&gt;
{{Предупреждение|Для отличных от PostgreSQL СУБД измените метод работы с последовательностями}}&lt;br /&gt;
&lt;br /&gt;
Для &#039;&#039;&#039;MSSQL&#039;&#039;&#039; необходимо вместо строк &amp;lt;code&amp;gt;nextval(&#039;pc_split_pusher_creds_seq&#039;),&amp;lt;/code&amp;gt; использовать строку &amp;lt;code&amp;gt;NEXT VALUE FOR pc_split_pusher_creds_seq,&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Для &#039;&#039;&#039;Oracle&#039;&#039;&#039; необходимо вместо строк &amp;lt;code&amp;gt;nextval(&#039;pc_split_pusher_creds_seq&#039;),&amp;lt;/code&amp;gt; использовать строку &amp;lt;code&amp;gt;pc_split_pusher_creds_seq.NEXTVAL,&amp;lt;/code&amp;gt;.&lt;br /&gt;
==В приложение PayControl==&lt;br /&gt;
Для внесение аутентификационных данных для отправки push-уведомлений в приложение PayControl необходимо выполнить следующие запросы к БД PC Pusher, заменив значения %SYSTEMID% на корректное.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что знаки процента &#039;&#039;&#039;нужно удалить&#039;&#039;&#039;.&lt;br /&gt;
После выполнения запросов необходимо [[Руководство_администратора_PayControl_5#Запуск и остановка служб сервера PayControl|перезапустить Wildfly]] сервера PC Pusher.&lt;br /&gt;
&lt;br /&gt;
Пример для СУБД PostgreSQL:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;INSERT INTO pc_split_pusher_credentials (&lt;br /&gt;
id,&lt;br /&gt;
appid,&lt;br /&gt;
credentials,&lt;br /&gt;
os,&lt;br /&gt;
systemid)&lt;br /&gt;
VALUES (&lt;br /&gt;
nextval(&#039;pc_split_pusher_creds_seq&#039;),&lt;br /&gt;
&#039;org.paycontrol.app&#039;,&lt;br /&gt;
&#039;{&amp;quot;google_api_key&amp;quot;:&amp;quot;AAAAoZ7vyz4:APA91bFqLfNegQCs_GfHGFeOmS68PHWWSzWpeZaYKfnLul9iHufIQJiNIAjgAykeWrTxiDDs9qQzullXww3o5XR0VS9tlBEpuhTMlz4CyHdmN2EhntJBBUlSQa-8--Rw_UzDbKBCGCXk&amp;quot;}&#039;,&lt;br /&gt;
&#039;Android&#039;,&lt;br /&gt;
&#039;%SYSTEMID%&#039;);&lt;br /&gt;
&lt;br /&gt;
INSERT INTO pc_split_pusher_credentials (&lt;br /&gt;
id,&lt;br /&gt;
appid,&lt;br /&gt;
credentials,&lt;br /&gt;
os,&lt;br /&gt;
systemid)&lt;br /&gt;
VALUES (&lt;br /&gt;
nextval(&#039;pc_split_pusher_creds_seq&#039;),&lt;br /&gt;
&#039;org.paycontrol.app&#039;,&lt;br /&gt;
&#039;{&amp;quot;apns_key_file&amp;quot;:&amp;quot;C:\\wildfly\\safetech-apns-JVBQX52N5Z.p8&amp;quot;,&amp;quot;apns_key_id&amp;quot;:&amp;quot;JVBQX52N5Z&amp;quot;,&amp;quot;apns_team_id&amp;quot;:&amp;quot;48HZH4RWJD&amp;quot;}&#039;,&lt;br /&gt;
&#039;iOS&#039;,&lt;br /&gt;
&#039;%SYSTEMID%&#039;);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==В приложение PayConfirm==&lt;br /&gt;
Для внесение аутентификационных данных для отправки push-уведомлений в приложение PayConfirm необходимо выполнить следующие запросы к БД PC Pusher, заменив значения %SYSTEMID% на корректное. &lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что знаки процента &#039;&#039;&#039;нужно удалить&#039;&#039;&#039;.&lt;br /&gt;
После выполнения запросов необходимо [[Руководство_администратора_PayControl_5#Запуск и остановка служб сервера PayControl|перезапустить Wildfly]] сервера PC Pusher.&lt;br /&gt;
&lt;br /&gt;
Пример для СУБД PostgreSQL:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;INSERT INTO pc_split_pusher_credentials (&lt;br /&gt;
id,&lt;br /&gt;
appid,&lt;br /&gt;
credentials,&lt;br /&gt;
os,&lt;br /&gt;
systemid)&lt;br /&gt;
VALUES (&lt;br /&gt;
nextval(&#039;pc_split_pusher_creds_seq&#039;),&lt;br /&gt;
&#039;org.payconfirm.app&#039;,&lt;br /&gt;
&#039;{&amp;quot;google_api_key&amp;quot;:&amp;quot;AAAA4H70m7M:APA91bFsaPiXXiIuRyj4h-xGZpyd0-I3B9F1udIIergxaK8uL9vPPvUQXOvPfau2w8E-xur_6TlTzmhb2JsO13hBCxVDrNybD6Rj8k4hZKXfs7tC5fnJuWmCIB3-O_4dLo0QHlhfSbGn&amp;quot;}&#039;,&lt;br /&gt;
&#039;Android&#039;,&lt;br /&gt;
&#039;%SYSTEMID%&#039;);&lt;br /&gt;
&lt;br /&gt;
INSERT INTO pc_split_pusher_credentials (&lt;br /&gt;
id,&lt;br /&gt;
appid,&lt;br /&gt;
credentials,&lt;br /&gt;
os,&lt;br /&gt;
systemid)&lt;br /&gt;
VALUES (&lt;br /&gt;
nextval(&#039;pc_split_pusher_creds_seq&#039;),&lt;br /&gt;
&#039;org.payconfirm.app&#039;,&lt;br /&gt;
&#039;{&amp;quot;apns_key_file&amp;quot;:&amp;quot;C:\\wildfly\\safetech-apns-JVBQX52N5Z.p8&amp;quot;,&amp;quot;apns_key_id&amp;quot;:&amp;quot;QCC684AGC4&amp;quot;,&amp;quot;apns_team_id&amp;quot;:&amp;quot;B98K5P3YHV&amp;quot;}&#039;,&lt;br /&gt;
&#039;iOS&#039;,&lt;br /&gt;
&#039;%SYSTEMID%&#039;);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==В другое мобильное приложение==&lt;br /&gt;
Для внесение аутентификационных данных для отправки push-уведомлений необходимо выполнить запрос к БД PC Pusher, заменив значение %SYSTEMID%, %appid%, %путь к файлу ключа%, %apns_key_id%, %apns_team_id%, %google_api_key% на корректные (эти данные, за исключением %SYSTEMID%, можно получить от владельцев аккаунта, под чьим именем публикуется приложение), и, &#039;&#039;&#039;удалив&#039;&#039;&#039; знаки процента:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
INSERT INTO pc_split_pusher_credentials (&lt;br /&gt;
id,&lt;br /&gt;
appid,&lt;br /&gt;
credentials,&lt;br /&gt;
is_default,&lt;br /&gt;
os,&lt;br /&gt;
systemid)&lt;br /&gt;
VALUES (&lt;br /&gt;
nextval(&#039;pc_split_pusher_credentials_id_seq&#039;),&lt;br /&gt;
&#039;%appid%&#039;,&lt;br /&gt;
&#039;{&amp;quot;google_api_key&amp;quot;:&amp;quot;%google_api_key%&amp;quot;}&#039;,&lt;br /&gt;
1,&lt;br /&gt;
&#039;Android&#039;,&lt;br /&gt;
&#039;%SYSTEMID%&#039;);&lt;br /&gt;
&lt;br /&gt;
INSERT INTO pc_split_pusher_credentials (&lt;br /&gt;
id,&lt;br /&gt;
appid,&lt;br /&gt;
credentials,&lt;br /&gt;
is_default,&lt;br /&gt;
os,&lt;br /&gt;
systemid)&lt;br /&gt;
VALUES (&lt;br /&gt;
nextval(&#039;pc_split_pusher_credentials_id_seq&#039;),&lt;br /&gt;
&#039;%appid%&#039;,&lt;br /&gt;
&#039;{&amp;quot;apns_key_file&amp;quot;:&amp;quot;%путь к файлу ключа%&amp;quot;,&amp;quot;apns_key_id&amp;quot;:&amp;quot;%apns_key_id%&amp;quot;,&amp;quot;apns_team_id&amp;quot;:&amp;quot;%apns_team_id%&amp;quot;}&#039;,&lt;br /&gt;
1,&lt;br /&gt;
&#039;iOS&#039;,&lt;br /&gt;
&#039;%SYSTEMID%&#039;);&lt;br /&gt;
&lt;br /&gt;
commit;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Корректировка (смена) адресов компонентов серверов PC (при необходимости)=&lt;br /&gt;
{{Предупреждение|Не рекомендуется дополнительно указывать номер порта, в случаях, если для HTTP используется порт 80, или для HTTPS используется порт 443}}&lt;br /&gt;
==Учёт изменения адреса сервера PC Server==&lt;br /&gt;
Для учёта изменения адреса PCS необходимо произвести изменения в настройках PCE. В файле /opt/wildfly/bin/standalone.conf, в следующей строке, указав правильный адрес и при необходимости порт сервера PC Server, а также уточнив протокол подключения (HTTP/HTTPS):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
JAVA_OPTS=&amp;quot;$JAVA_OPTS -Dpc_url=http[s]://&amp;lt;IP или DNS-имя&amp;gt;[:PORT]/pc-api/ -Duser.language=ru -Dpc_locale=ru&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Учёт изменения адреса сервера PC Pusher==&lt;br /&gt;
Для учёта изменения адреса сервера PCP, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PCS: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;update pc_system set pc_is_internal_url = &#039;http[s]://&amp;lt;IP или DNS-имя&amp;gt;[:PORT]/pc-pusher-api/&#039; where systemid=&#039;&amp;lt;SYSTEMID&amp;gt;&#039;;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Учёт изменения внешнего адреса сервера PC External==&lt;br /&gt;
{{Предупреждение|Если система была переведена в промышленную эксплуатацию, при смене адреса для доступа мобильных устройств, не рекомендуется выводить из действия предыдущий адрес на протяжении всего срока действия выпущенных ключей пользователя. Иначе мобильное приложение потеряет доступ к серверу PC и для восстановления будет необходимо перевыпустить ключ и заново добавить его в приложение пользователя.}}&lt;br /&gt;
Для учёта изменения внешнего адреса сервера PC, по которому связываются мобильное приложение с сервером PC, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PCS:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;update pc_system set pc_is_external_url = &#039;http[s]://&amp;lt;IP или DNS-имя&amp;gt;[:PORT]/pc-client-api/&#039; where systemid=&#039;&amp;lt;SYSTEMID&amp;gt;&#039;;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>N.fomenko</name></author>
	</entry>
	<entry>
		<id>https://repo.paycontrol.org/wiki/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0_PayControl_v5_%D0%B2%D1%80%D1%83%D1%87%D0%BD%D1%83%D1%8E&amp;diff=405</id>
		<title>Установка компонентов сервера PayControl v5 вручную</title>
		<link rel="alternate" type="text/html" href="https://repo.paycontrol.org/wiki/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0_PayControl_v5_%D0%B2%D1%80%D1%83%D1%87%D0%BD%D1%83%D1%8E&amp;diff=405"/>
		<updated>2020-08-26T08:42:49Z</updated>

		<summary type="html">&lt;p&gt;N.fomenko: /* Добавление источников данных для модулей */ добавление драйвера в standalone.xml&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Подготовка БД=&lt;br /&gt;
* Создать базу данных и пользователя на сервере СУБД, где будет работать база данных PCS (pcs-user, pcs-pass, pcs-db, pcs-db-host). Предоставить права на доступ пользователю к БД.&lt;br /&gt;
* Создать базу данных и пользователя на сервере СУБД, где будет работать база данных PCP (pcp-user, pcp-pass, pcp-db, pcp-db-host). Предоставить права на доступ пользователю к БД.&lt;br /&gt;
=Установка Java=&lt;br /&gt;
Установить последнюю версию JRE ветки 1.8 или 11&lt;br /&gt;
==Обновление Security==&lt;br /&gt;
===JRE 1.8===&lt;br /&gt;
* Скачать архив по адресу http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html&lt;br /&gt;
* Распаковать и скопировать файлы по адресу &#039;&#039;&amp;lt;JRE&amp;gt;\lib\security\&#039;&#039;, заменив старые версии.&lt;br /&gt;
===JRE 11===&lt;br /&gt;
Замена файлов библиотек не требуется.&lt;br /&gt;
=Установка Wildfly=&lt;br /&gt;
* Скачать актуальную версию WildFly Server – https://wildfly.org/downloads/&lt;br /&gt;
Далее по тексту, под &amp;lt;WF_PATH&amp;gt; имеется в виду адрес созданной символьной ссылки.&lt;br /&gt;
==Linux==&lt;br /&gt;
* Распаковать Wildfly, например, в /opt/.&lt;br /&gt;
* Создать символьную ссылку /opt/wildfly на распакованную директорию:&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ln -s /opt/wildfly-18.0.1.Final/ /opt/wildfly&amp;lt;/source&amp;gt;&lt;br /&gt;
==Windows==&lt;br /&gt;
* Распаковать Wildfly, например, в C:\.&lt;br /&gt;
* Создать символьную ссылку, к примеру &#039;&#039;C:\wildfly&#039;&#039;, на распакованную директорию. Пример команды:&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;mklink /D c:\wildfly c:\wildfly-18.0.1.Final\&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Удаление настроек WildFly по-умолчанию==&lt;br /&gt;
Для удаления настроек по-умолчанию, необходимо выполнить пункты описанные по ссылке [[PCWiki:Wildfly#Удаление настроек по умолчанию|Wildfly - Удаление настроек по умолчанию]]&lt;br /&gt;
=Настройка подключения к БД=&lt;br /&gt;
==Добавление JDBC-драйвера СУБД==&lt;br /&gt;
===PostgreSQL===&lt;br /&gt;
* Скачать актуальный JDBC-драйвер по адресу https://jdbc.postgresql.org/&lt;br /&gt;
* Создать директорию &amp;lt;WF_PATH&amp;gt;/modules/org/postgresql/main/&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo mkdir -p /opt/wildfly/modules/org/postgresql/main/&amp;lt;/source&amp;gt;&lt;br /&gt;
* В директорию поместить скачанный jar.&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo mv postgresql-42.2.2.jar /opt/wildfly/modules/org/postgresql/main/&amp;lt;/source&amp;gt;&lt;br /&gt;
* Создать в этой же папке файл module.xml&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo vi /opt/wildfly/modules/org/postgresql/main/module.xml&amp;lt;/source&amp;gt;следующего содержания, указав имя файла драйвера вместо &amp;quot;JAR_PATH&amp;quot;:&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;module xmlns=&amp;quot;urn:jboss:module:1.0&amp;quot; name=&amp;quot;org.postgresql&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;resources&amp;gt;&lt;br /&gt;
     &amp;lt;resource-root path=&amp;quot;JAR_PATH&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/resources&amp;gt;&lt;br /&gt;
  &amp;lt;dependencies&amp;gt;&lt;br /&gt;
    &amp;lt;module name=&amp;quot;javax.api&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;module name=&amp;quot;javax.transaction.api&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;module name=&amp;quot;javax.servlet.api&amp;quot; optional=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/dependencies&amp;gt;&lt;br /&gt;
&amp;lt;/module&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===MS SQL===&lt;br /&gt;
* Скачать JDBC-драйвер с сайта Microsoft https://docs.microsoft.com/ru-ru/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15&lt;br /&gt;
* Создать директорию &#039;&#039;&amp;lt;WF_PATH&amp;gt;/modules/system/layers/base/com/microsoft/sqlserver/main/&#039;&#039;&lt;br /&gt;
* В директорию распаковать файлы и директории драйвера. Файлы драйвера (*.jar) должны располагаться непосредственно в директории &#039;&#039;main/&#039;&#039;&lt;br /&gt;
* Создать в этой же папке файл module.xml следующего содержания, заменив JAR_PATH на имя файла драйвера, например на &#039;&#039;mssql-jdbc-6.2.1.jre8.jar&#039;&#039;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;module xmlns=&amp;quot;urn:jboss:module:1.3&amp;quot; name=&amp;quot;com.microsoft.sqlserver&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;resources&amp;gt;&lt;br /&gt;
    &amp;lt;resource-root path=&amp;quot;JAR_PATH&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/resources&amp;gt;&lt;br /&gt;
  &amp;lt;dependencies&amp;gt;&lt;br /&gt;
    &amp;lt;module name=&amp;quot;javax.api&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;module name=&amp;quot;javax.transaction.api&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;module name=&amp;quot;javax.xml.bind.api&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/dependencies&amp;gt;&lt;br /&gt;
&amp;lt;/module&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Добавить установленный модуль в качестве драйвера для подключения к СУБД в файл &amp;lt;WF_PATH&amp;gt;/standalone/configuration/standalone.xml, в секцию &#039;&#039;&amp;lt;datasources/drivers&amp;gt;&#039;&#039;, добавив следующий блок:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;driver name=&amp;quot;mssql&amp;quot; module=&amp;quot;com.microsoft.sqlserver&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;driver-class&amp;gt;com.microsoft.sqlserver.jdbc.SQLServerDriver&amp;lt;/driver-class&amp;gt;&lt;br /&gt;
&amp;lt;/driver&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Добавление источников данных для модулей==&lt;br /&gt;
===PostgreSQL===&lt;br /&gt;
====PCS====&lt;br /&gt;
В файл &#039;&#039;&amp;lt;wf_path&amp;gt;/standalone/configuration/standalone.xml&amp;lt;/wf_path&amp;gt;&#039;&#039; внести следующие изменения добавить новый источник данных в секцию &#039;&#039;&amp;lt;datasources&amp;gt;&amp;lt;/datasources&amp;gt;&#039;&#039; заменив pcs-db-host, port, pcs-db, pcs-user, pcs-pass:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;datasource jta=&amp;quot;true&amp;quot; jndi-name=&amp;quot;java:jboss/datasources/PCServerDS&amp;quot; pool-name=&amp;quot;PCServerDS&amp;quot; enabled=&amp;quot;true&amp;quot; use-ccm=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;connection-url&amp;gt;jdbc:postgresql://pcs-db-host:port/pcs-db&amp;lt;/connection-url&amp;gt;&lt;br /&gt;
    &amp;lt;driver-class&amp;gt;org.postgresql.Driver&amp;lt;/driver-class&amp;gt;&lt;br /&gt;
    &amp;lt;connection-property name=&amp;quot;url&amp;quot;&amp;gt;&lt;br /&gt;
        jdbc:postgresql://pcs-db-host:port/pcs-db&lt;br /&gt;
    &amp;lt;/connection-property&amp;gt;&lt;br /&gt;
    &amp;lt;driver&amp;gt;postgresql&amp;lt;/driver&amp;gt;&lt;br /&gt;
    &amp;lt;security&amp;gt;&lt;br /&gt;
        &amp;lt;user-name&amp;gt;pcs-user&amp;lt;/user-name&amp;gt;&lt;br /&gt;
        &amp;lt;password&amp;gt;pcs-pass&amp;lt;/password&amp;gt;&lt;br /&gt;
    &amp;lt;/security&amp;gt;&lt;br /&gt;
    &amp;lt;validation&amp;gt;&lt;br /&gt;
        &amp;lt;valid-connection-checker class-name=&amp;quot;org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;background-validation&amp;gt;true&amp;lt;/background-validation&amp;gt;&lt;br /&gt;
        &amp;lt;exception-sorter class-name=&amp;quot;org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/validation&amp;gt;&lt;br /&gt;
&amp;lt;/datasource&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====PCP====&lt;br /&gt;
На сервере PCP добавить новый источник данных в секцию &#039;&#039;&amp;lt;datasources&amp;gt;&amp;lt;/datasources&amp;gt;&#039;&#039;, заменив pcp-db-host, port, pcp-db, pcp-user, pcp-pass:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;datasource jta=&amp;quot;true&amp;quot; jndi-name=&amp;quot;java:jboss/datasources/PCPusherDS&amp;quot; pool-name=&amp;quot;PCPusherDS&amp;quot; enabled=&amp;quot;true&amp;quot; use-ccm=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;connection-url&amp;gt;jdbc:postgresql://pcp-db-host:port/pcp-db&amp;lt;/connection-url&amp;gt;&lt;br /&gt;
    &amp;lt;driver-class&amp;gt;org.postgresql.Driver&amp;lt;/driver-class&amp;gt;&lt;br /&gt;
    &amp;lt;connection-property name=&amp;quot;url&amp;quot;&amp;gt;&lt;br /&gt;
        jdbc:postgresql://pcp-db-host:port/pcp-db&lt;br /&gt;
    &amp;lt;/connection-property&amp;gt;&lt;br /&gt;
    &amp;lt;driver&amp;gt;postgresql&amp;lt;/driver&amp;gt;&lt;br /&gt;
    &amp;lt;security&amp;gt;&lt;br /&gt;
        &amp;lt;user-name&amp;gt;pcp-user&amp;lt;/user-name&amp;gt;&lt;br /&gt;
        &amp;lt;password&amp;gt;pcp-pass&amp;lt;/password&amp;gt;&lt;br /&gt;
    &amp;lt;/security&amp;gt;&lt;br /&gt;
    &amp;lt;validation&amp;gt;&lt;br /&gt;
        &amp;lt;valid-connection-checker class-name=&amp;quot;org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;background-validation&amp;gt;true&amp;lt;/background-validation&amp;gt;&lt;br /&gt;
        &amp;lt;exception-sorter class-name=&amp;quot;org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/validation&amp;gt;&lt;br /&gt;
&amp;lt;/datasource&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===MS SQL===&lt;br /&gt;
====PCS====&lt;br /&gt;
В файл &#039;&#039;&amp;lt;wf_path&amp;gt;/standalone/configuration/standalone.xml&amp;lt;/wf_path&amp;gt;&#039;&#039; внести следующие изменения добавить новый источник данных в секцию &#039;&#039;&amp;lt;datasources&amp;gt;&amp;lt;/datasources&amp;gt;&#039;&#039; заменив pcs-db-host, port, pcs-db-host, pcs-db, pcs-user, pcs-pass:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;datasource jta=&amp;quot;true&amp;quot; jndi-name=&amp;quot;java:jboss/datasources/PCServerDS&amp;quot; pool-name=&amp;quot;PCServerDS&amp;quot; enabled=&amp;quot;true&amp;quot; use-ccm=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;connection-url&amp;gt;jdbc:sqlserver://pcs-db-host:port;databaseName=pcs-db&amp;lt;/connection-url&amp;gt;&lt;br /&gt;
	&amp;lt;connection-property name=&amp;quot;url&amp;quot;&amp;gt;&lt;br /&gt;
		jdbc:sqlserver://pcs-db-host:port;databaseName=pcs-db&lt;br /&gt;
	&amp;lt;/connection-property&amp;gt;&lt;br /&gt;
	&amp;lt;driver&amp;gt;mssql&amp;lt;/driver&amp;gt;&lt;br /&gt;
	&amp;lt;security&amp;gt;&lt;br /&gt;
		&amp;lt;user-name&amp;gt;pcs-user&amp;lt;/user-name&amp;gt;&lt;br /&gt;
		&amp;lt;password&amp;gt;pcs-pass&amp;lt;/password&amp;gt;&lt;br /&gt;
	&amp;lt;/security&amp;gt;&lt;br /&gt;
	&amp;lt;pool&amp;gt;&lt;br /&gt;
		&amp;lt;min-pool-size&amp;gt;5&amp;lt;/min-pool-size&amp;gt;&lt;br /&gt;
		&amp;lt;max-pool-size&amp;gt;50&amp;lt;/max-pool-size&amp;gt;&lt;br /&gt;
		&amp;lt;prefill&amp;gt;false&amp;lt;/prefill&amp;gt;&lt;br /&gt;
		&amp;lt;use-strict-min&amp;gt;false&amp;lt;/use-strict-min&amp;gt;&lt;br /&gt;
		&amp;lt;flush-strategy&amp;gt;FailingConnectionOnly&amp;lt;/flush-strategy&amp;gt;&lt;br /&gt;
	&amp;lt;/pool&amp;gt;&lt;br /&gt;
	&amp;lt;validation&amp;gt;&lt;br /&gt;
		&amp;lt;valid-connection-checker class-name=&amp;quot;org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker&amp;quot;&amp;gt;&amp;lt;/valid-connection-checker&amp;gt;&lt;br /&gt;
	&amp;lt;/validation&amp;gt;&lt;br /&gt;
&amp;lt;/datasource&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====PCP====&lt;br /&gt;
На сервере PCP добавить новый источник данных в секцию &#039;&#039;&amp;lt;datasources&amp;gt;&amp;lt;/datasources&amp;gt;&#039;&#039;, заменив pcp-db-host, port, pcp-db-host, pcp-db, pcp-user, pcp-pass:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;datasource jta=&amp;quot;true&amp;quot; jndi-name=&amp;quot;java:jboss/datasources/PCPusherDS&amp;quot; pool-name=&amp;quot;PCPusherDS&amp;quot; enabled=&amp;quot;true&amp;quot; use-ccm=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;connection-url&amp;gt;jdbc:sqlserver://pcp-db-host:port;databaseName=pcp-db&amp;lt;/connection-url&amp;gt;&lt;br /&gt;
	&amp;lt;connection-property name=&amp;quot;url&amp;quot;&amp;gt;&lt;br /&gt;
		jdbc:sqlserver://pcp-db-host:port;databaseName=pcp-db&lt;br /&gt;
	&amp;lt;/connection-property&amp;gt;&lt;br /&gt;
	&amp;lt;driver&amp;gt;mssql&amp;lt;/driver&amp;gt;&lt;br /&gt;
	&amp;lt;security&amp;gt;&lt;br /&gt;
		&amp;lt;user-name&amp;gt;pcp-user&amp;lt;/user-name&amp;gt;&lt;br /&gt;
		&amp;lt;password&amp;gt;pcp-pass&amp;lt;/password&amp;gt;&lt;br /&gt;
	&amp;lt;/security&amp;gt;&lt;br /&gt;
	&amp;lt;pool&amp;gt;&lt;br /&gt;
		&amp;lt;min-pool-size&amp;gt;5&amp;lt;/min-pool-size&amp;gt;&lt;br /&gt;
		&amp;lt;max-pool-size&amp;gt;50&amp;lt;/max-pool-size&amp;gt;&lt;br /&gt;
		&amp;lt;prefill&amp;gt;false&amp;lt;/prefill&amp;gt;&lt;br /&gt;
		&amp;lt;use-strict-min&amp;gt;false&amp;lt;/use-strict-min&amp;gt;&lt;br /&gt;
		&amp;lt;flush-strategy&amp;gt;FailingConnectionOnly&amp;lt;/flush-strategy&amp;gt;&lt;br /&gt;
	&amp;lt;/pool&amp;gt;&lt;br /&gt;
	&amp;lt;validation&amp;gt;&lt;br /&gt;
		&amp;lt;valid-connection-checker class-name=&amp;quot;org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker&amp;quot;&amp;gt;&amp;lt;/valid-connection-checker&amp;gt;&lt;br /&gt;
	&amp;lt;/validation&amp;gt;&lt;br /&gt;
&amp;lt;/datasource&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Добавление драйвера&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;После тегов &amp;lt;datasource&amp;gt; добавить драйвер базы данных&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;drivers&amp;gt;&lt;br /&gt;
    &amp;lt;driver name=&amp;quot;postgresql&amp;quot; module=&amp;quot;org.postgresql&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;driver-class&amp;gt;org.postgresql.Driver&lt;br /&gt;
        &amp;lt;/driver-class&amp;gt;&lt;br /&gt;
    &amp;lt;/driver&amp;gt;&lt;br /&gt;
&amp;lt;/drivers&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Настройка подключения PCE к PCS=&lt;br /&gt;
На сервере PCE необходимо установить адрес сервера PCS (host и port заменить на реальные значения). Для этого:&lt;br /&gt;
* на Linux в файл &#039;&#039;&amp;lt;WF_PATH&amp;gt;/bin/standalone.conf&#039;&#039; нужно добавить &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;JAVA_OPTS=&amp;quot;$JAVA_OPTS -Dpc_url=http://&amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;/pc-api/ -Dpc_locale=ru&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* на Windows в файл &#039;&#039;&amp;lt;WF_PATH&amp;gt;/bin/standalone.conf.bat&#039;&#039; нужно добавить &amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;set &amp;quot;JAVA_OPTS=%JAVA_OPTS% -Dpc_url=http://&amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;/pc-api/ -Dpc_locale=ru&amp;quot;&amp;lt;/syntaxhighlight&amp;gt; выше метки :JAVA_OPTS_SET&lt;br /&gt;
&lt;br /&gt;
=Настройка выделения памяти серверу=&lt;br /&gt;
На всех серверах установить максимальный объем доступной для использования памяти:&lt;br /&gt;
* на Linux в &#039;&#039;&amp;lt;WF_PATH&amp;gt;/bin/standalone.conf&#039;&#039; указать объём «ОбщийОбъёмОЗУ - 512MB»&lt;br /&gt;
* на Windows в &#039;&#039;&amp;lt;WF_PATH&amp;gt;\bin\standalone.conf.bat&#039;&#039; указать объём «ОбщийОбъёмОЗУ - 1536MB»&lt;br /&gt;
Для этого в строке&lt;br /&gt;
&#039;&#039;JAVA_OPTS=&amp;quot;-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true&amp;quot;&#039;&#039; поменять значение параметра &#039;&#039;Xmx&#039;&#039; на выделяемый объём.&lt;br /&gt;
==Запуск проекта==&lt;br /&gt;
* Скопировать файл приложения сервера &#039;&#039;&amp;lt;WF_PATH&amp;gt;\standalone\deployments\&#039;&#039;:&lt;br /&gt;
** на PC Server - файл &#039;&#039;pc-server-&amp;lt;VERSION&amp;gt;.ear&#039;&#039;&lt;br /&gt;
** на PC Pusher - файл &#039;&#039;pc-pusher-&amp;lt;VERSION&amp;gt;.war&#039;&#039;&lt;br /&gt;
** на PC External - файл &#039;&#039;pc-external-&amp;lt;VERSION&amp;gt;.war&#039;&#039;&lt;br /&gt;
Один сервер WildFly может запускать одно или несколько приложений сервера&lt;br /&gt;
* Запустить&lt;br /&gt;
** Linux &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&amp;lt;WF_PATH&amp;gt;/bin/standalone.sh -b 0.0.0.0&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
** Windows &amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&amp;lt;WF_PATH&amp;gt;\bin\standalone.bat -b 0.0.0.0&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*:  где -b 0.0.0.0 - позволяет подключаться к серверу используя любой его интерфейс (опция bind)&lt;br /&gt;
* Дождаться старта WF, проверить, что нет ошибок запуска.&lt;br /&gt;
==Настройка автозапуска службы сервера==&lt;br /&gt;
===Linux===&lt;br /&gt;
Для настройки автозапуска службы, перейти в каталог &amp;lt;WF_PATH&amp;gt;/docs/contrib/scripts/systemd/ и выполнить шаги, описанные в файле README в этом каталоге, за исключением пунктов распаковки и создания символьной ссылки на каталог.&lt;br /&gt;
Пункт &amp;lt;code&amp;gt;chown -R wildfly:wildfly /opt/wildfly&amp;lt;/code&amp;gt; необходимо выполнить с параметрами «-RH» (параметр «H» указывает, что если на вход подана символьная ссылка, то нужно пойти вглубь каталога, на который она ссылается). Таким образом команда должна выглядеть следующим образом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;chown -RHv wildfly:wildfly /opt/wildfly&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
При запуске в качестве службы, возможно отклонение запросов. В таком случае необходимо установить параметры JAVA_OPTS в файле standalone.conf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;JAVA_OPTS=&amp;quot;$JAVA_OPTS -Djboss.bind.address=0.0.0.0&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Windows===&lt;br /&gt;
Скопировать папку&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&amp;lt;WF_PATH&amp;gt;\docs\contrib\scripts\service\&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
в папку&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&amp;lt;WF_PATH&amp;gt;\bin\&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Выполнить&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&amp;lt;WF_PATH&amp;gt;\bin\service\service.bat install /startup&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
При запуске в качестве службы, возможно отклонение запросов. В таком случае необходимо установить параметры JAVA_OPTS в файле standalone.conf.bat выше метки :JAVA_OPTS_SET.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;set &amp;quot;JAVA_OPTS=%JAVA_OPTS% -Djboss.bind.address=0.0.0.0&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==URL-фильтрация при совмещении PC Pusher и PC External==&lt;br /&gt;
При совмещении ролей PC Pusher и PC External на одном сервере необходимо исключить возможность выполнения запросов PC Pusher со стороны сети интернет. &amp;lt;br&amp;gt;&lt;br /&gt;
Для этого необходимо со стороны сети интернет разрешить подключения только на конечную точку PC External. &amp;lt;br&amp;gt;&lt;br /&gt;
Конечная точка PC External - &#039;&#039;&amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;/pc-client-api/*&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Доступ к другим конечным точкам должен быть запрещен.&lt;br /&gt;
&lt;br /&gt;
При этом доступ к PC Pusher со стороны PC Server должен сохраниться. &amp;lt;br&amp;gt;&lt;br /&gt;
Конечная точка PC Pusher - &#039;&#039;&amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;/pc-pusher-api/*&#039;&#039;&lt;br /&gt;
=Внесение изменений в БД=&lt;br /&gt;
==Создание индексов БД PCS==&lt;br /&gt;
После первого запуска приложения, в базе данных будут созданы необходимые таблицы.&lt;br /&gt;
&lt;br /&gt;
На продуктивной среде после этого необходимо создать индексы в базе данных PC Server.&lt;br /&gt;
&lt;br /&gt;
Для этого выполните SQL скрипт:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
create index pc_keyinfo1_idx on PC_KEYINFO (userID, expiration_date, is_deleted);&lt;br /&gt;
create index pc_delayedkeyinfo1_idx on PC_DELAYEDKEYINFO (userID, is_deleted);&lt;br /&gt;
create index pc_device1_idx on PC_DEVICE (userID, is_deleted); &lt;br /&gt;
create index pc_transaction1_idx on PC_TRANSACTION (userID, status);&lt;br /&gt;
create index pc_device2_idx on PC_DEVICE (userID); &lt;br /&gt;
create index pc_keyinfo2_idx on PC_KEYINFO (userID); &lt;br /&gt;
create index pc_transaction2_idx on PC_TRANSACTION (userID); &lt;br /&gt;
create index pc_user1_idx on PC_USER (systemID);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Корректировка типов данных для MS SQL==&lt;br /&gt;
Java-приложение при создании таблиц БД неоптимально устанавливает тип для одного из полей для СУБД MS SQL.&lt;br /&gt;
&lt;br /&gt;
Для его корректировки после того, как таблицы созданы, выполните запрос&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
ALTER TABLE PC_TRANSACTION ALTER COLUMN DATA_BINARY image;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Регистрация системы==&lt;br /&gt;
После успешного запуска приложения PC Server до начала работы необходимо зарегистрировать прикладную систему.&lt;br /&gt;
&lt;br /&gt;
Это действие выполняется путем отправки на PC Server HTTP POST запроса, сформированного ST/Airome. Содержание запроса предоставляется дополнительно.&lt;br /&gt;
&lt;br /&gt;
Для отправки запроса можно использовать любое средство отправки HTTP-запросов.&lt;br /&gt;
===Примеры===&lt;br /&gt;
====PowerShell====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;PowerShell&amp;quot;&amp;gt;&lt;br /&gt;
$headers = New-Object &amp;quot;System.Collections.Generic.Dictionary[[String],[String]]&amp;quot;&lt;br /&gt;
$headers.Add(&amp;quot;Content-Type&amp;quot;, &amp;quot;application/json&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$body = &amp;quot;{n  &amp;quot;request`&amp;quot;:&amp;quot;eyJyZXF1ZXN0Ijp7InFyVVJMU2NoZW1lIjEE9NoZ+W1lIjEE9NoZW... ...9NoZW1lIjEE+9NoZW1lIjEE9NoZW1lIjEE9PSJ9&amp;quot;`n}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$response = Invoke-RestMethod &#039;https://dev.paycontrol.org/v5.0/pc-api/&#039; -Method &#039;POST&#039; -Headers $headers -Body $body&lt;br /&gt;
$response | ConvertTo-Json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====cURL====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&lt;br /&gt;
curl --location --request POST &#039;http://&amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;/pc-api/&#039; --header &#039;Content-Type: application/json&#039; --data-raw &#039;{&amp;quot;request&amp;quot;:&amp;quot;eyJyZXF1ZXN0Ijp7InFyVVJMU2NoZW1lIjEE9NoZ+W1lIjEE9NoZW1lIjEE9... ...IjEE9NoZW1lIjEE9PSJ9&amp;quot;}&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Доступ к сервисам==&lt;br /&gt;
Адреса конечных точек по умолчанию:&lt;br /&gt;
* PC Server - http://&amp;lt;host&amp;gt;:8080/pc-api/&lt;br /&gt;
* PC Pusher - http://&amp;lt;host&amp;gt;:8080/pc-pusher-api/&lt;br /&gt;
* PC External - http://&amp;lt;host&amp;gt;:8080/pc-client-api/&lt;br /&gt;
&lt;br /&gt;
===Health Check===&lt;br /&gt;
Адреса конечных точек health check:&lt;br /&gt;
* PC Server - http://&amp;lt;host&amp;gt;:8080/pc-api/health_check&lt;br /&gt;
* PC Pusher - http://&amp;lt;host&amp;gt;:8080/pc-pusher-api/health_check&lt;br /&gt;
* PC External - http://&amp;lt;host&amp;gt;:8080/pc-client-api/health_check&lt;br /&gt;
=Внесение аутентификационных данных для отправки push-уведомлений=&lt;br /&gt;
{{Предупреждение|Для отличных от PostgreSQL СУБД измените метод работы с последовательностями}}&lt;br /&gt;
&lt;br /&gt;
Для &#039;&#039;&#039;MSSQL&#039;&#039;&#039; необходимо вместо строк &amp;lt;code&amp;gt;nextval(&#039;pc_split_pusher_creds_seq&#039;),&amp;lt;/code&amp;gt; использовать строку &amp;lt;code&amp;gt;NEXT VALUE FOR pc_split_pusher_creds_seq,&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Для &#039;&#039;&#039;Oracle&#039;&#039;&#039; необходимо вместо строк &amp;lt;code&amp;gt;nextval(&#039;pc_split_pusher_creds_seq&#039;),&amp;lt;/code&amp;gt; использовать строку &amp;lt;code&amp;gt;pc_split_pusher_creds_seq.NEXTVAL,&amp;lt;/code&amp;gt;.&lt;br /&gt;
==В приложение PayControl==&lt;br /&gt;
Для внесение аутентификационных данных для отправки push-уведомлений в приложение PayControl необходимо выполнить следующие запросы к БД PC Pusher, заменив значения %SYSTEMID% на корректное.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что знаки процента &#039;&#039;&#039;нужно удалить&#039;&#039;&#039;.&lt;br /&gt;
После выполнения запросов необходимо [[Руководство_администратора_PayControl_5#Запуск и остановка служб сервера PayControl|перезапустить Wildfly]] сервера PC Pusher.&lt;br /&gt;
&lt;br /&gt;
Пример для СУБД PostgreSQL:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;INSERT INTO pc_split_pusher_credentials (&lt;br /&gt;
id,&lt;br /&gt;
appid,&lt;br /&gt;
credentials,&lt;br /&gt;
os,&lt;br /&gt;
systemid)&lt;br /&gt;
VALUES (&lt;br /&gt;
nextval(&#039;pc_split_pusher_creds_seq&#039;),&lt;br /&gt;
&#039;org.paycontrol.app&#039;,&lt;br /&gt;
&#039;{&amp;quot;google_api_key&amp;quot;:&amp;quot;AAAAoZ7vyz4:APA91bFqLfNegQCs_GfHGFeOmS68PHWWSzWpeZaYKfnLul9iHufIQJiNIAjgAykeWrTxiDDs9qQzullXww3o5XR0VS9tlBEpuhTMlz4CyHdmN2EhntJBBUlSQa-8--Rw_UzDbKBCGCXk&amp;quot;}&#039;,&lt;br /&gt;
&#039;Android&#039;,&lt;br /&gt;
&#039;%SYSTEMID%&#039;);&lt;br /&gt;
&lt;br /&gt;
INSERT INTO pc_split_pusher_credentials (&lt;br /&gt;
id,&lt;br /&gt;
appid,&lt;br /&gt;
credentials,&lt;br /&gt;
os,&lt;br /&gt;
systemid)&lt;br /&gt;
VALUES (&lt;br /&gt;
nextval(&#039;pc_split_pusher_creds_seq&#039;),&lt;br /&gt;
&#039;org.paycontrol.app&#039;,&lt;br /&gt;
&#039;{&amp;quot;apns_key_file&amp;quot;:&amp;quot;C:\\wildfly\\safetech-apns-JVBQX52N5Z.p8&amp;quot;,&amp;quot;apns_key_id&amp;quot;:&amp;quot;JVBQX52N5Z&amp;quot;,&amp;quot;apns_team_id&amp;quot;:&amp;quot;48HZH4RWJD&amp;quot;}&#039;,&lt;br /&gt;
&#039;iOS&#039;,&lt;br /&gt;
&#039;%SYSTEMID%&#039;);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==В приложение PayConfirm==&lt;br /&gt;
Для внесение аутентификационных данных для отправки push-уведомлений в приложение PayConfirm необходимо выполнить следующие запросы к БД PC Pusher, заменив значения %SYSTEMID% на корректное. &lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что знаки процента &#039;&#039;&#039;нужно удалить&#039;&#039;&#039;.&lt;br /&gt;
После выполнения запросов необходимо [[Руководство_администратора_PayControl_5#Запуск и остановка служб сервера PayControl|перезапустить Wildfly]] сервера PC Pusher.&lt;br /&gt;
&lt;br /&gt;
Пример для СУБД PostgreSQL:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;INSERT INTO pc_split_pusher_credentials (&lt;br /&gt;
id,&lt;br /&gt;
appid,&lt;br /&gt;
credentials,&lt;br /&gt;
os,&lt;br /&gt;
systemid)&lt;br /&gt;
VALUES (&lt;br /&gt;
nextval(&#039;pc_split_pusher_creds_seq&#039;),&lt;br /&gt;
&#039;org.payconfirm.app&#039;,&lt;br /&gt;
&#039;{&amp;quot;google_api_key&amp;quot;:&amp;quot;AAAA4H70m7M:APA91bFsaPiXXiIuRyj4h-xGZpyd0-I3B9F1udIIergxaK8uL9vPPvUQXOvPfau2w8E-xur_6TlTzmhb2JsO13hBCxVDrNybD6Rj8k4hZKXfs7tC5fnJuWmCIB3-O_4dLo0QHlhfSbGn&amp;quot;}&#039;,&lt;br /&gt;
&#039;Android&#039;,&lt;br /&gt;
&#039;%SYSTEMID%&#039;);&lt;br /&gt;
&lt;br /&gt;
INSERT INTO pc_split_pusher_credentials (&lt;br /&gt;
id,&lt;br /&gt;
appid,&lt;br /&gt;
credentials,&lt;br /&gt;
os,&lt;br /&gt;
systemid)&lt;br /&gt;
VALUES (&lt;br /&gt;
nextval(&#039;pc_split_pusher_creds_seq&#039;),&lt;br /&gt;
&#039;org.payconfirm.app&#039;,&lt;br /&gt;
&#039;{&amp;quot;apns_key_file&amp;quot;:&amp;quot;C:\\wildfly\\safetech-apns-JVBQX52N5Z.p8&amp;quot;,&amp;quot;apns_key_id&amp;quot;:&amp;quot;QCC684AGC4&amp;quot;,&amp;quot;apns_team_id&amp;quot;:&amp;quot;B98K5P3YHV&amp;quot;}&#039;,&lt;br /&gt;
&#039;iOS&#039;,&lt;br /&gt;
&#039;%SYSTEMID%&#039;);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==В другое мобильное приложение==&lt;br /&gt;
Для внесение аутентификационных данных для отправки push-уведомлений необходимо выполнить запрос к БД PC Pusher, заменив значение %SYSTEMID%, %appid%, %путь к файлу ключа%, %apns_key_id%, %apns_team_id%, %google_api_key% на корректные (эти данные, за исключением %SYSTEMID%, можно получить от владельцев аккаунта, под чьим именем публикуется приложение), и, &#039;&#039;&#039;удалив&#039;&#039;&#039; знаки процента:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
INSERT INTO pc_split_pusher_credentials (&lt;br /&gt;
id,&lt;br /&gt;
appid,&lt;br /&gt;
credentials,&lt;br /&gt;
is_default,&lt;br /&gt;
os,&lt;br /&gt;
systemid)&lt;br /&gt;
VALUES (&lt;br /&gt;
nextval(&#039;pc_split_pusher_credentials_id_seq&#039;),&lt;br /&gt;
&#039;%appid%&#039;,&lt;br /&gt;
&#039;{&amp;quot;google_api_key&amp;quot;:&amp;quot;%google_api_key%&amp;quot;}&#039;,&lt;br /&gt;
1,&lt;br /&gt;
&#039;Android&#039;,&lt;br /&gt;
&#039;%SYSTEMID%&#039;);&lt;br /&gt;
&lt;br /&gt;
INSERT INTO pc_split_pusher_credentials (&lt;br /&gt;
id,&lt;br /&gt;
appid,&lt;br /&gt;
credentials,&lt;br /&gt;
is_default,&lt;br /&gt;
os,&lt;br /&gt;
systemid)&lt;br /&gt;
VALUES (&lt;br /&gt;
nextval(&#039;pc_split_pusher_credentials_id_seq&#039;),&lt;br /&gt;
&#039;%appid%&#039;,&lt;br /&gt;
&#039;{&amp;quot;apns_key_file&amp;quot;:&amp;quot;%путь к файлу ключа%&amp;quot;,&amp;quot;apns_key_id&amp;quot;:&amp;quot;%apns_key_id%&amp;quot;,&amp;quot;apns_team_id&amp;quot;:&amp;quot;%apns_team_id%&amp;quot;}&#039;,&lt;br /&gt;
1,&lt;br /&gt;
&#039;iOS&#039;,&lt;br /&gt;
&#039;%SYSTEMID%&#039;);&lt;br /&gt;
&lt;br /&gt;
commit;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Корректировка (смена) адресов компонентов серверов PC (при необходимости)=&lt;br /&gt;
{{Предупреждение|Не рекомендуется дополнительно указывать номер порта, в случаях, если для HTTP используется порт 80, или для HTTPS используется порт 443}}&lt;br /&gt;
==Учёт изменения адреса сервера PC Server==&lt;br /&gt;
Для учёта изменения адреса PCS необходимо произвести изменения в настройках PCE. В файле /opt/wildfly/bin/standalone.conf, в следующей строке, указав правильный адрес и при необходимости порт сервера PC Server, а также уточнив протокол подключения (HTTP/HTTPS):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
JAVA_OPTS=&amp;quot;$JAVA_OPTS -Dpc_url=http[s]://&amp;lt;IP или DNS-имя&amp;gt;[:PORT]/pc-api/ -Duser.language=ru -Dpc_locale=ru&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Учёт изменения адреса сервера PC Pusher==&lt;br /&gt;
Для учёта изменения адреса сервера PCP, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PCS: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;update pc_system set pc_is_internal_url = &#039;http[s]://&amp;lt;IP или DNS-имя&amp;gt;[:PORT]/pc-pusher-api/&#039; where systemid=&#039;&amp;lt;SYSTEMID&amp;gt;&#039;;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Учёт изменения внешнего адреса сервера PC External==&lt;br /&gt;
{{Предупреждение|Если система была переведена в промышленную эксплуатацию, при смене адреса для доступа мобильных устройств, не рекомендуется выводить из действия предыдущий адрес на протяжении всего срока действия выпущенных ключей пользователя. Иначе мобильное приложение потеряет доступ к серверу PC и для восстановления будет необходимо перевыпустить ключ и заново добавить его в приложение пользователя.}}&lt;br /&gt;
Для учёта изменения внешнего адреса сервера PC, по которому связываются мобильное приложение с сервером PC, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PCS:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;update pc_system set pc_is_external_url = &#039;http[s]://&amp;lt;IP или DNS-имя&amp;gt;[:PORT]/pc-client-api/&#039; where systemid=&#039;&amp;lt;SYSTEMID&amp;gt;&#039;;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>N.fomenko</name></author>
	</entry>
	<entry>
		<id>https://repo.paycontrol.org/wiki/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0_PayControl_v5_%D0%B2%D1%80%D1%83%D1%87%D0%BD%D1%83%D1%8E&amp;diff=404</id>
		<title>Установка компонентов сервера PayControl v5 вручную</title>
		<link rel="alternate" type="text/html" href="https://repo.paycontrol.org/wiki/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0_PayControl_v5_%D0%B2%D1%80%D1%83%D1%87%D0%BD%D1%83%D1%8E&amp;diff=404"/>
		<updated>2020-08-26T08:36:17Z</updated>

		<summary type="html">&lt;p&gt;N.fomenko: /* PCP */ добавлены закрывающите теги для validation и datasource&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Подготовка БД=&lt;br /&gt;
* Создать базу данных и пользователя на сервере СУБД, где будет работать база данных PCS (pcs-user, pcs-pass, pcs-db, pcs-db-host). Предоставить права на доступ пользователю к БД.&lt;br /&gt;
* Создать базу данных и пользователя на сервере СУБД, где будет работать база данных PCP (pcp-user, pcp-pass, pcp-db, pcp-db-host). Предоставить права на доступ пользователю к БД.&lt;br /&gt;
=Установка Java=&lt;br /&gt;
Установить последнюю версию JRE ветки 1.8 или 11&lt;br /&gt;
==Обновление Security==&lt;br /&gt;
===JRE 1.8===&lt;br /&gt;
* Скачать архив по адресу http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html&lt;br /&gt;
* Распаковать и скопировать файлы по адресу &#039;&#039;&amp;lt;JRE&amp;gt;\lib\security\&#039;&#039;, заменив старые версии.&lt;br /&gt;
===JRE 11===&lt;br /&gt;
Замена файлов библиотек не требуется.&lt;br /&gt;
=Установка Wildfly=&lt;br /&gt;
* Скачать актуальную версию WildFly Server – https://wildfly.org/downloads/&lt;br /&gt;
Далее по тексту, под &amp;lt;WF_PATH&amp;gt; имеется в виду адрес созданной символьной ссылки.&lt;br /&gt;
==Linux==&lt;br /&gt;
* Распаковать Wildfly, например, в /opt/.&lt;br /&gt;
* Создать символьную ссылку /opt/wildfly на распакованную директорию:&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ln -s /opt/wildfly-18.0.1.Final/ /opt/wildfly&amp;lt;/source&amp;gt;&lt;br /&gt;
==Windows==&lt;br /&gt;
* Распаковать Wildfly, например, в C:\.&lt;br /&gt;
* Создать символьную ссылку, к примеру &#039;&#039;C:\wildfly&#039;&#039;, на распакованную директорию. Пример команды:&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;mklink /D c:\wildfly c:\wildfly-18.0.1.Final\&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Удаление настроек WildFly по-умолчанию==&lt;br /&gt;
Для удаления настроек по-умолчанию, необходимо выполнить пункты описанные по ссылке [[PCWiki:Wildfly#Удаление настроек по умолчанию|Wildfly - Удаление настроек по умолчанию]]&lt;br /&gt;
=Настройка подключения к БД=&lt;br /&gt;
==Добавление JDBC-драйвера СУБД==&lt;br /&gt;
===PostgreSQL===&lt;br /&gt;
* Скачать актуальный JDBC-драйвер по адресу https://jdbc.postgresql.org/&lt;br /&gt;
* Создать директорию &amp;lt;WF_PATH&amp;gt;/modules/org/postgresql/main/&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo mkdir -p /opt/wildfly/modules/org/postgresql/main/&amp;lt;/source&amp;gt;&lt;br /&gt;
* В директорию поместить скачанный jar.&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo mv postgresql-42.2.2.jar /opt/wildfly/modules/org/postgresql/main/&amp;lt;/source&amp;gt;&lt;br /&gt;
* Создать в этой же папке файл module.xml&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo vi /opt/wildfly/modules/org/postgresql/main/module.xml&amp;lt;/source&amp;gt;следующего содержания, указав имя файла драйвера вместо &amp;quot;JAR_PATH&amp;quot;:&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;module xmlns=&amp;quot;urn:jboss:module:1.0&amp;quot; name=&amp;quot;org.postgresql&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;resources&amp;gt;&lt;br /&gt;
     &amp;lt;resource-root path=&amp;quot;JAR_PATH&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/resources&amp;gt;&lt;br /&gt;
  &amp;lt;dependencies&amp;gt;&lt;br /&gt;
    &amp;lt;module name=&amp;quot;javax.api&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;module name=&amp;quot;javax.transaction.api&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;module name=&amp;quot;javax.servlet.api&amp;quot; optional=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/dependencies&amp;gt;&lt;br /&gt;
&amp;lt;/module&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===MS SQL===&lt;br /&gt;
* Скачать JDBC-драйвер с сайта Microsoft https://docs.microsoft.com/ru-ru/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15&lt;br /&gt;
* Создать директорию &#039;&#039;&amp;lt;WF_PATH&amp;gt;/modules/system/layers/base/com/microsoft/sqlserver/main/&#039;&#039;&lt;br /&gt;
* В директорию распаковать файлы и директории драйвера. Файлы драйвера (*.jar) должны располагаться непосредственно в директории &#039;&#039;main/&#039;&#039;&lt;br /&gt;
* Создать в этой же папке файл module.xml следующего содержания, заменив JAR_PATH на имя файла драйвера, например на &#039;&#039;mssql-jdbc-6.2.1.jre8.jar&#039;&#039;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;module xmlns=&amp;quot;urn:jboss:module:1.3&amp;quot; name=&amp;quot;com.microsoft.sqlserver&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;resources&amp;gt;&lt;br /&gt;
    &amp;lt;resource-root path=&amp;quot;JAR_PATH&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/resources&amp;gt;&lt;br /&gt;
  &amp;lt;dependencies&amp;gt;&lt;br /&gt;
    &amp;lt;module name=&amp;quot;javax.api&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;module name=&amp;quot;javax.transaction.api&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;module name=&amp;quot;javax.xml.bind.api&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/dependencies&amp;gt;&lt;br /&gt;
&amp;lt;/module&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Добавить установленный модуль в качестве драйвера для подключения к СУБД в файл &amp;lt;WF_PATH&amp;gt;/standalone/configuration/standalone.xml, в секцию &#039;&#039;&amp;lt;datasources/drivers&amp;gt;&#039;&#039;, добавив следующий блок:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;driver name=&amp;quot;mssql&amp;quot; module=&amp;quot;com.microsoft.sqlserver&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;driver-class&amp;gt;com.microsoft.sqlserver.jdbc.SQLServerDriver&amp;lt;/driver-class&amp;gt;&lt;br /&gt;
&amp;lt;/driver&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Добавление источников данных для модулей==&lt;br /&gt;
===PostgreSQL===&lt;br /&gt;
====PCS====&lt;br /&gt;
В файл &#039;&#039;&amp;lt;WF_PATH&amp;gt;/standalone/configuration/standalone.xml&#039;&#039; внести следующие изменения добавить новый источник данных в секцию &#039;&#039;&amp;lt;datasources&amp;gt;&#039;&#039; заменив pcs-db-host, port, pcs-db, pcs-user, pcs-pass:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;datasource jta=&amp;quot;true&amp;quot; jndi-name=&amp;quot;java:jboss/datasources/PCServerDS&amp;quot; pool-name=&amp;quot;PCServerDS&amp;quot; enabled=&amp;quot;true&amp;quot; use-ccm=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;connection-url&amp;gt;jdbc:postgresql://pcs-db-host:port/pcs-db&amp;lt;/connection-url&amp;gt;&lt;br /&gt;
    &amp;lt;driver-class&amp;gt;org.postgresql.Driver&amp;lt;/driver-class&amp;gt;&lt;br /&gt;
    &amp;lt;connection-property name=&amp;quot;url&amp;quot;&amp;gt;&lt;br /&gt;
        jdbc:postgresql://pcs-db-host:port/pcs-db&lt;br /&gt;
    &amp;lt;/connection-property&amp;gt;&lt;br /&gt;
    &amp;lt;driver&amp;gt;postgresql&amp;lt;/driver&amp;gt;&lt;br /&gt;
    &amp;lt;security&amp;gt;&lt;br /&gt;
        &amp;lt;user-name&amp;gt;pcs-user&amp;lt;/user-name&amp;gt;&lt;br /&gt;
        &amp;lt;password&amp;gt;pcs-pass&amp;lt;/password&amp;gt;&lt;br /&gt;
    &amp;lt;/security&amp;gt;&lt;br /&gt;
    &amp;lt;validation&amp;gt;&lt;br /&gt;
        &amp;lt;valid-connection-checker class-name=&amp;quot;org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;background-validation&amp;gt;true&amp;lt;/background-validation&amp;gt;&lt;br /&gt;
        &amp;lt;exception-sorter class-name=&amp;quot;org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/validation&amp;gt;&lt;br /&gt;
&amp;lt;/datasource&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====PCP====&lt;br /&gt;
На сервере PCP добавить новый источник данных в секцию &#039;&#039;&amp;lt;datasources&amp;gt;&amp;lt;/datasources&amp;gt;&#039;&#039;, заменив pcp-db-host, port, pcp-db, pcp-user, pcp-pass:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;datasource jta=&amp;quot;true&amp;quot; jndi-name=&amp;quot;java:jboss/datasources/PCPusherDS&amp;quot; pool-name=&amp;quot;PCPusherDS&amp;quot; enabled=&amp;quot;true&amp;quot; use-ccm=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;connection-url&amp;gt;jdbc:postgresql://pcp-db-host:port/pcp-db&amp;lt;/connection-url&amp;gt;&lt;br /&gt;
    &amp;lt;driver-class&amp;gt;org.postgresql.Driver&amp;lt;/driver-class&amp;gt;&lt;br /&gt;
    &amp;lt;connection-property name=&amp;quot;url&amp;quot;&amp;gt;&lt;br /&gt;
        jdbc:postgresql://pcp-db-host:port/pcp-db&lt;br /&gt;
    &amp;lt;/connection-property&amp;gt;&lt;br /&gt;
    &amp;lt;driver&amp;gt;postgresql&amp;lt;/driver&amp;gt;&lt;br /&gt;
    &amp;lt;security&amp;gt;&lt;br /&gt;
        &amp;lt;user-name&amp;gt;pcp-user&amp;lt;/user-name&amp;gt;&lt;br /&gt;
        &amp;lt;password&amp;gt;pcp-pass&amp;lt;/password&amp;gt;&lt;br /&gt;
    &amp;lt;/security&amp;gt;&lt;br /&gt;
    &amp;lt;validation&amp;gt;&lt;br /&gt;
        &amp;lt;valid-connection-checker class-name=&amp;quot;org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;background-validation&amp;gt;true&amp;lt;/background-validation&amp;gt;&lt;br /&gt;
        &amp;lt;exception-sorter class-name=&amp;quot;org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/validation&amp;gt;&lt;br /&gt;
&amp;lt;/datasource&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MS SQL===&lt;br /&gt;
====PCS====&lt;br /&gt;
В файл &#039;&#039;&amp;lt;WF_PATH&amp;gt;/standalone/configuration/standalone.xml&#039;&#039; внести следующие изменения добавить новый источник данных в секцию &#039;&#039;&amp;lt;datasources&amp;gt;&#039;&#039; заменив pcs-db-host, port, pcs-db-host, pcs-db, pcs-user, pcs-pass:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;datasource jta=&amp;quot;true&amp;quot; jndi-name=&amp;quot;java:jboss/datasources/PCServerDS&amp;quot; pool-name=&amp;quot;PCServerDS&amp;quot; enabled=&amp;quot;true&amp;quot; use-ccm=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;connection-url&amp;gt;jdbc:sqlserver://pcs-db-host:port;databaseName=pcs-db&amp;lt;/connection-url&amp;gt;&lt;br /&gt;
	&amp;lt;connection-property name=&amp;quot;url&amp;quot;&amp;gt;&lt;br /&gt;
		jdbc:sqlserver://pcs-db-host:port;databaseName=pcs-db&lt;br /&gt;
	&amp;lt;/connection-property&amp;gt;&lt;br /&gt;
	&amp;lt;driver&amp;gt;mssql&amp;lt;/driver&amp;gt;&lt;br /&gt;
	&amp;lt;security&amp;gt;&lt;br /&gt;
		&amp;lt;user-name&amp;gt;pcs-user&amp;lt;/user-name&amp;gt;&lt;br /&gt;
		&amp;lt;password&amp;gt;pcs-pass&amp;lt;/password&amp;gt;&lt;br /&gt;
	&amp;lt;/security&amp;gt;&lt;br /&gt;
	&amp;lt;pool&amp;gt;&lt;br /&gt;
		&amp;lt;min-pool-size&amp;gt;5&amp;lt;/min-pool-size&amp;gt;&lt;br /&gt;
		&amp;lt;max-pool-size&amp;gt;50&amp;lt;/max-pool-size&amp;gt;&lt;br /&gt;
		&amp;lt;prefill&amp;gt;false&amp;lt;/prefill&amp;gt;&lt;br /&gt;
		&amp;lt;use-strict-min&amp;gt;false&amp;lt;/use-strict-min&amp;gt;&lt;br /&gt;
		&amp;lt;flush-strategy&amp;gt;FailingConnectionOnly&amp;lt;/flush-strategy&amp;gt;&lt;br /&gt;
	&amp;lt;/pool&amp;gt;&lt;br /&gt;
	&amp;lt;validation&amp;gt;&lt;br /&gt;
		&amp;lt;valid-connection-checker class-name=&amp;quot;org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker&amp;quot;&amp;gt;&amp;lt;/valid-connection-checker&amp;gt;&lt;br /&gt;
	&amp;lt;/validation&amp;gt;&lt;br /&gt;
&amp;lt;/datasource&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====PCP====&lt;br /&gt;
На сервере PCP добавить новый источник данных в секцию &#039;&#039;&amp;lt;datasources&amp;gt;&#039;&#039;, заменив pcp-db-host, port, pcp-db-host, pcp-db, pcp-user, pcp-pass:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;datasource jta=&amp;quot;true&amp;quot; jndi-name=&amp;quot;java:jboss/datasources/PCPusherDS&amp;quot; pool-name=&amp;quot;PCPusherDS&amp;quot; enabled=&amp;quot;true&amp;quot; use-ccm=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;connection-url&amp;gt;jdbc:sqlserver://pcp-db-host:port;databaseName=pcp-db&amp;lt;/connection-url&amp;gt;&lt;br /&gt;
	&amp;lt;connection-property name=&amp;quot;url&amp;quot;&amp;gt;&lt;br /&gt;
		jdbc:sqlserver://pcp-db-host:port;databaseName=pcp-db&lt;br /&gt;
	&amp;lt;/connection-property&amp;gt;&lt;br /&gt;
	&amp;lt;driver&amp;gt;mssql&amp;lt;/driver&amp;gt;&lt;br /&gt;
	&amp;lt;security&amp;gt;&lt;br /&gt;
		&amp;lt;user-name&amp;gt;pcp-user&amp;lt;/user-name&amp;gt;&lt;br /&gt;
		&amp;lt;password&amp;gt;pcp-pass&amp;lt;/password&amp;gt;&lt;br /&gt;
	&amp;lt;/security&amp;gt;&lt;br /&gt;
	&amp;lt;pool&amp;gt;&lt;br /&gt;
		&amp;lt;min-pool-size&amp;gt;5&amp;lt;/min-pool-size&amp;gt;&lt;br /&gt;
		&amp;lt;max-pool-size&amp;gt;50&amp;lt;/max-pool-size&amp;gt;&lt;br /&gt;
		&amp;lt;prefill&amp;gt;false&amp;lt;/prefill&amp;gt;&lt;br /&gt;
		&amp;lt;use-strict-min&amp;gt;false&amp;lt;/use-strict-min&amp;gt;&lt;br /&gt;
		&amp;lt;flush-strategy&amp;gt;FailingConnectionOnly&amp;lt;/flush-strategy&amp;gt;&lt;br /&gt;
	&amp;lt;/pool&amp;gt;&lt;br /&gt;
	&amp;lt;validation&amp;gt;&lt;br /&gt;
		&amp;lt;valid-connection-checker class-name=&amp;quot;org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker&amp;quot;&amp;gt;&amp;lt;/valid-connection-checker&amp;gt;&lt;br /&gt;
	&amp;lt;/validation&amp;gt;&lt;br /&gt;
&amp;lt;/datasource&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Настройка подключения PCE к PCS=&lt;br /&gt;
На сервере PCE необходимо установить адрес сервера PCS (host и port заменить на реальные значения). Для этого:&lt;br /&gt;
* на Linux в файл &#039;&#039;&amp;lt;WF_PATH&amp;gt;/bin/standalone.conf&#039;&#039; нужно добавить &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;JAVA_OPTS=&amp;quot;$JAVA_OPTS -Dpc_url=http://&amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;/pc-api/ -Dpc_locale=ru&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* на Windows в файл &#039;&#039;&amp;lt;WF_PATH&amp;gt;/bin/standalone.conf.bat&#039;&#039; нужно добавить &amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;set &amp;quot;JAVA_OPTS=%JAVA_OPTS% -Dpc_url=http://&amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;/pc-api/ -Dpc_locale=ru&amp;quot;&amp;lt;/syntaxhighlight&amp;gt; выше метки :JAVA_OPTS_SET&lt;br /&gt;
&lt;br /&gt;
=Настройка выделения памяти серверу=&lt;br /&gt;
На всех серверах установить максимальный объем доступной для использования памяти:&lt;br /&gt;
* на Linux в &#039;&#039;&amp;lt;WF_PATH&amp;gt;/bin/standalone.conf&#039;&#039; указать объём «ОбщийОбъёмОЗУ - 512MB»&lt;br /&gt;
* на Windows в &#039;&#039;&amp;lt;WF_PATH&amp;gt;\bin\standalone.conf.bat&#039;&#039; указать объём «ОбщийОбъёмОЗУ - 1536MB»&lt;br /&gt;
Для этого в строке&lt;br /&gt;
&#039;&#039;JAVA_OPTS=&amp;quot;-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true&amp;quot;&#039;&#039; поменять значение параметра &#039;&#039;Xmx&#039;&#039; на выделяемый объём.&lt;br /&gt;
==Запуск проекта==&lt;br /&gt;
* Скопировать файл приложения сервера &#039;&#039;&amp;lt;WF_PATH&amp;gt;\standalone\deployments\&#039;&#039;:&lt;br /&gt;
** на PC Server - файл &#039;&#039;pc-server-&amp;lt;VERSION&amp;gt;.ear&#039;&#039;&lt;br /&gt;
** на PC Pusher - файл &#039;&#039;pc-pusher-&amp;lt;VERSION&amp;gt;.war&#039;&#039;&lt;br /&gt;
** на PC External - файл &#039;&#039;pc-external-&amp;lt;VERSION&amp;gt;.war&#039;&#039;&lt;br /&gt;
Один сервер WildFly может запускать одно или несколько приложений сервера&lt;br /&gt;
* Запустить&lt;br /&gt;
** Linux &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&amp;lt;WF_PATH&amp;gt;/bin/standalone.sh -b 0.0.0.0&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
** Windows &amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&amp;lt;WF_PATH&amp;gt;\bin\standalone.bat -b 0.0.0.0&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*:  где -b 0.0.0.0 - позволяет подключаться к серверу используя любой его интерфейс (опция bind)&lt;br /&gt;
* Дождаться старта WF, проверить, что нет ошибок запуска.&lt;br /&gt;
==Настройка автозапуска службы сервера==&lt;br /&gt;
===Linux===&lt;br /&gt;
Для настройки автозапуска службы, перейти в каталог &amp;lt;WF_PATH&amp;gt;/docs/contrib/scripts/systemd/ и выполнить шаги, описанные в файле README в этом каталоге, за исключением пунктов распаковки и создания символьной ссылки на каталог.&lt;br /&gt;
Пункт &amp;lt;code&amp;gt;chown -R wildfly:wildfly /opt/wildfly&amp;lt;/code&amp;gt; необходимо выполнить с параметрами «-RH» (параметр «H» указывает, что если на вход подана символьная ссылка, то нужно пойти вглубь каталога, на который она ссылается). Таким образом команда должна выглядеть следующим образом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;chown -RHv wildfly:wildfly /opt/wildfly&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
При запуске в качестве службы, возможно отклонение запросов. В таком случае необходимо установить параметры JAVA_OPTS в файле standalone.conf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;JAVA_OPTS=&amp;quot;$JAVA_OPTS -Djboss.bind.address=0.0.0.0&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Windows===&lt;br /&gt;
Скопировать папку&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&amp;lt;WF_PATH&amp;gt;\docs\contrib\scripts\service\&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
в папку&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&amp;lt;WF_PATH&amp;gt;\bin\&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Выполнить&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&amp;lt;WF_PATH&amp;gt;\bin\service\service.bat install /startup&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
При запуске в качестве службы, возможно отклонение запросов. В таком случае необходимо установить параметры JAVA_OPTS в файле standalone.conf.bat выше метки :JAVA_OPTS_SET.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;set &amp;quot;JAVA_OPTS=%JAVA_OPTS% -Djboss.bind.address=0.0.0.0&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==URL-фильтрация при совмещении PC Pusher и PC External==&lt;br /&gt;
При совмещении ролей PC Pusher и PC External на одном сервере необходимо исключить возможность выполнения запросов PC Pusher со стороны сети интернет. &amp;lt;br&amp;gt;&lt;br /&gt;
Для этого необходимо со стороны сети интернет разрешить подключения только на конечную точку PC External. &amp;lt;br&amp;gt;&lt;br /&gt;
Конечная точка PC External - &#039;&#039;&amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;/pc-client-api/*&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Доступ к другим конечным точкам должен быть запрещен.&lt;br /&gt;
&lt;br /&gt;
При этом доступ к PC Pusher со стороны PC Server должен сохраниться. &amp;lt;br&amp;gt;&lt;br /&gt;
Конечная точка PC Pusher - &#039;&#039;&amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;/pc-pusher-api/*&#039;&#039;&lt;br /&gt;
=Внесение изменений в БД=&lt;br /&gt;
==Создание индексов БД PCS==&lt;br /&gt;
После первого запуска приложения, в базе данных будут созданы необходимые таблицы.&lt;br /&gt;
&lt;br /&gt;
На продуктивной среде после этого необходимо создать индексы в базе данных PC Server.&lt;br /&gt;
&lt;br /&gt;
Для этого выполните SQL скрипт:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
create index pc_keyinfo1_idx on PC_KEYINFO (userID, expiration_date, is_deleted);&lt;br /&gt;
create index pc_delayedkeyinfo1_idx on PC_DELAYEDKEYINFO (userID, is_deleted);&lt;br /&gt;
create index pc_device1_idx on PC_DEVICE (userID, is_deleted); &lt;br /&gt;
create index pc_transaction1_idx on PC_TRANSACTION (userID, status);&lt;br /&gt;
create index pc_device2_idx on PC_DEVICE (userID); &lt;br /&gt;
create index pc_keyinfo2_idx on PC_KEYINFO (userID); &lt;br /&gt;
create index pc_transaction2_idx on PC_TRANSACTION (userID); &lt;br /&gt;
create index pc_user1_idx on PC_USER (systemID);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Корректировка типов данных для MS SQL==&lt;br /&gt;
Java-приложение при создании таблиц БД неоптимально устанавливает тип для одного из полей для СУБД MS SQL.&lt;br /&gt;
&lt;br /&gt;
Для его корректировки после того, как таблицы созданы, выполните запрос&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
ALTER TABLE PC_TRANSACTION ALTER COLUMN DATA_BINARY image;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Регистрация системы==&lt;br /&gt;
После успешного запуска приложения PC Server до начала работы необходимо зарегистрировать прикладную систему.&lt;br /&gt;
&lt;br /&gt;
Это действие выполняется путем отправки на PC Server HTTP POST запроса, сформированного ST/Airome. Содержание запроса предоставляется дополнительно.&lt;br /&gt;
&lt;br /&gt;
Для отправки запроса можно использовать любое средство отправки HTTP-запросов.&lt;br /&gt;
===Примеры===&lt;br /&gt;
====PowerShell====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;PowerShell&amp;quot;&amp;gt;&lt;br /&gt;
$headers = New-Object &amp;quot;System.Collections.Generic.Dictionary[[String],[String]]&amp;quot;&lt;br /&gt;
$headers.Add(&amp;quot;Content-Type&amp;quot;, &amp;quot;application/json&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$body = &amp;quot;{n  &amp;quot;request`&amp;quot;:&amp;quot;eyJyZXF1ZXN0Ijp7InFyVVJMU2NoZW1lIjEE9NoZ+W1lIjEE9NoZW... ...9NoZW1lIjEE+9NoZW1lIjEE9NoZW1lIjEE9PSJ9&amp;quot;`n}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$response = Invoke-RestMethod &#039;https://dev.paycontrol.org/v5.0/pc-api/&#039; -Method &#039;POST&#039; -Headers $headers -Body $body&lt;br /&gt;
$response | ConvertTo-Json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====cURL====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&lt;br /&gt;
curl --location --request POST &#039;http://&amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;/pc-api/&#039; --header &#039;Content-Type: application/json&#039; --data-raw &#039;{&amp;quot;request&amp;quot;:&amp;quot;eyJyZXF1ZXN0Ijp7InFyVVJMU2NoZW1lIjEE9NoZ+W1lIjEE9NoZW1lIjEE9... ...IjEE9NoZW1lIjEE9PSJ9&amp;quot;}&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Доступ к сервисам==&lt;br /&gt;
Адреса конечных точек по умолчанию:&lt;br /&gt;
* PC Server - http://&amp;lt;host&amp;gt;:8080/pc-api/&lt;br /&gt;
* PC Pusher - http://&amp;lt;host&amp;gt;:8080/pc-pusher-api/&lt;br /&gt;
* PC External - http://&amp;lt;host&amp;gt;:8080/pc-client-api/&lt;br /&gt;
&lt;br /&gt;
===Health Check===&lt;br /&gt;
Адреса конечных точек health check:&lt;br /&gt;
* PC Server - http://&amp;lt;host&amp;gt;:8080/pc-api/health_check&lt;br /&gt;
* PC Pusher - http://&amp;lt;host&amp;gt;:8080/pc-pusher-api/health_check&lt;br /&gt;
* PC External - http://&amp;lt;host&amp;gt;:8080/pc-client-api/health_check&lt;br /&gt;
=Внесение аутентификационных данных для отправки push-уведомлений=&lt;br /&gt;
{{Предупреждение|Для отличных от PostgreSQL СУБД измените метод работы с последовательностями}}&lt;br /&gt;
&lt;br /&gt;
Для &#039;&#039;&#039;MSSQL&#039;&#039;&#039; необходимо вместо строк &amp;lt;code&amp;gt;nextval(&#039;pc_split_pusher_creds_seq&#039;),&amp;lt;/code&amp;gt; использовать строку &amp;lt;code&amp;gt;NEXT VALUE FOR pc_split_pusher_creds_seq,&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Для &#039;&#039;&#039;Oracle&#039;&#039;&#039; необходимо вместо строк &amp;lt;code&amp;gt;nextval(&#039;pc_split_pusher_creds_seq&#039;),&amp;lt;/code&amp;gt; использовать строку &amp;lt;code&amp;gt;pc_split_pusher_creds_seq.NEXTVAL,&amp;lt;/code&amp;gt;.&lt;br /&gt;
==В приложение PayControl==&lt;br /&gt;
Для внесение аутентификационных данных для отправки push-уведомлений в приложение PayControl необходимо выполнить следующие запросы к БД PC Pusher, заменив значения %SYSTEMID% на корректное.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что знаки процента &#039;&#039;&#039;нужно удалить&#039;&#039;&#039;.&lt;br /&gt;
После выполнения запросов необходимо [[Руководство_администратора_PayControl_5#Запуск и остановка служб сервера PayControl|перезапустить Wildfly]] сервера PC Pusher.&lt;br /&gt;
&lt;br /&gt;
Пример для СУБД PostgreSQL:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;INSERT INTO pc_split_pusher_credentials (&lt;br /&gt;
id,&lt;br /&gt;
appid,&lt;br /&gt;
credentials,&lt;br /&gt;
os,&lt;br /&gt;
systemid)&lt;br /&gt;
VALUES (&lt;br /&gt;
nextval(&#039;pc_split_pusher_creds_seq&#039;),&lt;br /&gt;
&#039;org.paycontrol.app&#039;,&lt;br /&gt;
&#039;{&amp;quot;google_api_key&amp;quot;:&amp;quot;AAAAoZ7vyz4:APA91bFqLfNegQCs_GfHGFeOmS68PHWWSzWpeZaYKfnLul9iHufIQJiNIAjgAykeWrTxiDDs9qQzullXww3o5XR0VS9tlBEpuhTMlz4CyHdmN2EhntJBBUlSQa-8--Rw_UzDbKBCGCXk&amp;quot;}&#039;,&lt;br /&gt;
&#039;Android&#039;,&lt;br /&gt;
&#039;%SYSTEMID%&#039;);&lt;br /&gt;
&lt;br /&gt;
INSERT INTO pc_split_pusher_credentials (&lt;br /&gt;
id,&lt;br /&gt;
appid,&lt;br /&gt;
credentials,&lt;br /&gt;
os,&lt;br /&gt;
systemid)&lt;br /&gt;
VALUES (&lt;br /&gt;
nextval(&#039;pc_split_pusher_creds_seq&#039;),&lt;br /&gt;
&#039;org.paycontrol.app&#039;,&lt;br /&gt;
&#039;{&amp;quot;apns_key_file&amp;quot;:&amp;quot;C:\\wildfly\\safetech-apns-JVBQX52N5Z.p8&amp;quot;,&amp;quot;apns_key_id&amp;quot;:&amp;quot;JVBQX52N5Z&amp;quot;,&amp;quot;apns_team_id&amp;quot;:&amp;quot;48HZH4RWJD&amp;quot;}&#039;,&lt;br /&gt;
&#039;iOS&#039;,&lt;br /&gt;
&#039;%SYSTEMID%&#039;);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==В приложение PayConfirm==&lt;br /&gt;
Для внесение аутентификационных данных для отправки push-уведомлений в приложение PayConfirm необходимо выполнить следующие запросы к БД PC Pusher, заменив значения %SYSTEMID% на корректное. &lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что знаки процента &#039;&#039;&#039;нужно удалить&#039;&#039;&#039;.&lt;br /&gt;
После выполнения запросов необходимо [[Руководство_администратора_PayControl_5#Запуск и остановка служб сервера PayControl|перезапустить Wildfly]] сервера PC Pusher.&lt;br /&gt;
&lt;br /&gt;
Пример для СУБД PostgreSQL:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;INSERT INTO pc_split_pusher_credentials (&lt;br /&gt;
id,&lt;br /&gt;
appid,&lt;br /&gt;
credentials,&lt;br /&gt;
os,&lt;br /&gt;
systemid)&lt;br /&gt;
VALUES (&lt;br /&gt;
nextval(&#039;pc_split_pusher_creds_seq&#039;),&lt;br /&gt;
&#039;org.payconfirm.app&#039;,&lt;br /&gt;
&#039;{&amp;quot;google_api_key&amp;quot;:&amp;quot;AAAA4H70m7M:APA91bFsaPiXXiIuRyj4h-xGZpyd0-I3B9F1udIIergxaK8uL9vPPvUQXOvPfau2w8E-xur_6TlTzmhb2JsO13hBCxVDrNybD6Rj8k4hZKXfs7tC5fnJuWmCIB3-O_4dLo0QHlhfSbGn&amp;quot;}&#039;,&lt;br /&gt;
&#039;Android&#039;,&lt;br /&gt;
&#039;%SYSTEMID%&#039;);&lt;br /&gt;
&lt;br /&gt;
INSERT INTO pc_split_pusher_credentials (&lt;br /&gt;
id,&lt;br /&gt;
appid,&lt;br /&gt;
credentials,&lt;br /&gt;
os,&lt;br /&gt;
systemid)&lt;br /&gt;
VALUES (&lt;br /&gt;
nextval(&#039;pc_split_pusher_creds_seq&#039;),&lt;br /&gt;
&#039;org.payconfirm.app&#039;,&lt;br /&gt;
&#039;{&amp;quot;apns_key_file&amp;quot;:&amp;quot;C:\\wildfly\\safetech-apns-JVBQX52N5Z.p8&amp;quot;,&amp;quot;apns_key_id&amp;quot;:&amp;quot;QCC684AGC4&amp;quot;,&amp;quot;apns_team_id&amp;quot;:&amp;quot;B98K5P3YHV&amp;quot;}&#039;,&lt;br /&gt;
&#039;iOS&#039;,&lt;br /&gt;
&#039;%SYSTEMID%&#039;);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==В другое мобильное приложение==&lt;br /&gt;
Для внесение аутентификационных данных для отправки push-уведомлений необходимо выполнить запрос к БД PC Pusher, заменив значение %SYSTEMID%, %appid%, %путь к файлу ключа%, %apns_key_id%, %apns_team_id%, %google_api_key% на корректные (эти данные, за исключением %SYSTEMID%, можно получить от владельцев аккаунта, под чьим именем публикуется приложение), и, &#039;&#039;&#039;удалив&#039;&#039;&#039; знаки процента:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
INSERT INTO pc_split_pusher_credentials (&lt;br /&gt;
id,&lt;br /&gt;
appid,&lt;br /&gt;
credentials,&lt;br /&gt;
is_default,&lt;br /&gt;
os,&lt;br /&gt;
systemid)&lt;br /&gt;
VALUES (&lt;br /&gt;
nextval(&#039;pc_split_pusher_credentials_id_seq&#039;),&lt;br /&gt;
&#039;%appid%&#039;,&lt;br /&gt;
&#039;{&amp;quot;google_api_key&amp;quot;:&amp;quot;%google_api_key%&amp;quot;}&#039;,&lt;br /&gt;
1,&lt;br /&gt;
&#039;Android&#039;,&lt;br /&gt;
&#039;%SYSTEMID%&#039;);&lt;br /&gt;
&lt;br /&gt;
INSERT INTO pc_split_pusher_credentials (&lt;br /&gt;
id,&lt;br /&gt;
appid,&lt;br /&gt;
credentials,&lt;br /&gt;
is_default,&lt;br /&gt;
os,&lt;br /&gt;
systemid)&lt;br /&gt;
VALUES (&lt;br /&gt;
nextval(&#039;pc_split_pusher_credentials_id_seq&#039;),&lt;br /&gt;
&#039;%appid%&#039;,&lt;br /&gt;
&#039;{&amp;quot;apns_key_file&amp;quot;:&amp;quot;%путь к файлу ключа%&amp;quot;,&amp;quot;apns_key_id&amp;quot;:&amp;quot;%apns_key_id%&amp;quot;,&amp;quot;apns_team_id&amp;quot;:&amp;quot;%apns_team_id%&amp;quot;}&#039;,&lt;br /&gt;
1,&lt;br /&gt;
&#039;iOS&#039;,&lt;br /&gt;
&#039;%SYSTEMID%&#039;);&lt;br /&gt;
&lt;br /&gt;
commit;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Корректировка (смена) адресов компонентов серверов PC (при необходимости)=&lt;br /&gt;
{{Предупреждение|Не рекомендуется дополнительно указывать номер порта, в случаях, если для HTTP используется порт 80, или для HTTPS используется порт 443}}&lt;br /&gt;
==Учёт изменения адреса сервера PC Server==&lt;br /&gt;
Для учёта изменения адреса PCS необходимо произвести изменения в настройках PCE. В файле /opt/wildfly/bin/standalone.conf, в следующей строке, указав правильный адрес и при необходимости порт сервера PC Server, а также уточнив протокол подключения (HTTP/HTTPS):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
JAVA_OPTS=&amp;quot;$JAVA_OPTS -Dpc_url=http[s]://&amp;lt;IP или DNS-имя&amp;gt;[:PORT]/pc-api/ -Duser.language=ru -Dpc_locale=ru&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Учёт изменения адреса сервера PC Pusher==&lt;br /&gt;
Для учёта изменения адреса сервера PCP, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PCS: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;update pc_system set pc_is_internal_url = &#039;http[s]://&amp;lt;IP или DNS-имя&amp;gt;[:PORT]/pc-pusher-api/&#039; where systemid=&#039;&amp;lt;SYSTEMID&amp;gt;&#039;;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Учёт изменения внешнего адреса сервера PC External==&lt;br /&gt;
{{Предупреждение|Если система была переведена в промышленную эксплуатацию, при смене адреса для доступа мобильных устройств, не рекомендуется выводить из действия предыдущий адрес на протяжении всего срока действия выпущенных ключей пользователя. Иначе мобильное приложение потеряет доступ к серверу PC и для восстановления будет необходимо перевыпустить ключ и заново добавить его в приложение пользователя.}}&lt;br /&gt;
Для учёта изменения внешнего адреса сервера PC, по которому связываются мобильное приложение с сервером PC, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PCS:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;update pc_system set pc_is_external_url = &#039;http[s]://&amp;lt;IP или DNS-имя&amp;gt;[:PORT]/pc-client-api/&#039; where systemid=&#039;&amp;lt;SYSTEMID&amp;gt;&#039;;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>N.fomenko</name></author>
	</entry>
</feed>