<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://repo.paycontrol.org/wiki/index.php?action=history&amp;feed=atom&amp;title=PC_Pusher_5.3_En</id>
	<title>PC Pusher 5.3 En - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://repo.paycontrol.org/wiki/index.php?action=history&amp;feed=atom&amp;title=PC_Pusher_5.3_En"/>
	<link rel="alternate" type="text/html" href="https://repo.paycontrol.org/wiki/index.php?title=PC_Pusher_5.3_En&amp;action=history"/>
	<updated>2026-06-03T15:52:47Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://repo.paycontrol.org/wiki/index.php?title=PC_Pusher_5.3_En&amp;diff=656&amp;oldid=prev</id>
		<title>D.bizyukov в 08:03, 4 мая 2022</title>
		<link rel="alternate" type="text/html" href="https://repo.paycontrol.org/wiki/index.php?title=PC_Pusher_5.3_En&amp;diff=656&amp;oldid=prev"/>
		<updated>2022-05-04T08:03:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 08:03, 4 мая 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l201&quot;&gt;Строка 201:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 201:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=Settings for sending pushes to another application=&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;By default, if app/bundle id, used to send push notifications, is not explicitly specified for the device, PCS 3.8 sends push to PC Classic app.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;To send push notifications to another application, you need to:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# Make settings for the authentication data of the &quot;other&quot; mobile application in accordance with [[#Configuration|article above]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# Register the app/bundle id of the required application in the PCS database(after executing the request, you need to restart Wildfly):&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Example: &amp;lt;syntaxhighlight lang=&quot;sql&quot;&amp;gt;insert into pc_sys_property values (nextval(&#039;pc_setting_seq&#039;), &#039;APP_ID_FOR_PUSHER&#039;, &#039;{&quot;Android&quot;:&quot;com.example.mobile.app&quot;,&quot;iOS&quot;:&quot;com.example.apple.app&quot;,&quot;Huawei&quot;:&quot;com.example.apple.app&quot;}&#039;);&amp;lt;/syntaxhighlight&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Templates:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* PostgreSQL &amp;lt;syntaxhighlight lang=&quot;sql&quot;&amp;gt;insert into pc_sys_property values (nextval(&#039;pc_setting_seq&#039;), &#039;APP_ID_FOR_PUSHER&#039;, &#039;{&quot;Android&quot;:&quot;your_appid&quot;,&quot;iOS&quot;:&quot;your_appid&quot;,&quot;Huawei&quot;:&quot;your_appid&quot;}&#039;);&amp;lt;/syntaxhighlight&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* MS SQL &amp;lt;syntaxhighlight lang=&quot;sql&quot;&amp;gt;insert into pc_sys_property values (NEXT VALUE FOR PC_SETTING_SEQ, &#039;APP_ID_FOR_PUSHER&#039;, &#039;{&quot;Android&quot;:&quot;your_appid&quot;,&quot;iOS&quot;:&quot;your_appid&quot;,&quot;Huawei&quot;:&quot;your_appid&quot;}&#039;);&amp;lt;/syntaxhighlight&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Oracle &amp;lt;syntaxhighlight lang=&quot;sql&quot;&amp;gt;insert into pc_sys_property values (PC_SETTING_SEQ.NEXTVAL, &#039;APP_ID_FOR_PUSHER&#039;, &#039;{&quot;Android&quot;:&quot;your_appid&quot;,&quot;iOS&quot;:&quot;your_appid&quot;,&quot;Huawei&quot;:&quot;your_appid&quot;}&#039;);&amp;lt;/syntaxhighlight&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>D.bizyukov</name></author>
	</entry>
	<entry>
		<id>https://repo.paycontrol.org/wiki/index.php?title=PC_Pusher_5.3_En&amp;diff=655&amp;oldid=prev</id>
		<title>D.bizyukov: Новая страница: «=What&#039;s new= * Since version 5.2, Pusher does not require a database. * Support sending to Huawei devices. ==Authentication data and push templates== Authenticati…»</title>
		<link rel="alternate" type="text/html" href="https://repo.paycontrol.org/wiki/index.php?title=PC_Pusher_5.3_En&amp;diff=655&amp;oldid=prev"/>
		<updated>2022-05-04T07:55:29Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «=What&amp;#039;s new= * Since version 5.2, Pusher does not require a database. * Support sending to Huawei devices. ==Authentication data and push templates== Authenticati…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=What&amp;#039;s new=&lt;br /&gt;
* Since version 5.2, Pusher does not require a database.&lt;br /&gt;
* Support sending to Huawei devices.&lt;br /&gt;
==Authentication data and push templates==&lt;br /&gt;
Authentication data and templates for sending pushes to PC applications are hardwired into the server module. Thus, for typical use with a PC application, configuration of the module is not required.&lt;br /&gt;
==Status of sent pushes==&lt;br /&gt;
The states of sent pushes are stored in the memory of the server module. The size of the ring buffer for storing push statuses is 1000. The position of a push in the queue does not change from the moment of creation.&lt;br /&gt;
=Configuration=&lt;br /&gt;
Configuration options include:&lt;br /&gt;
* general parameters of the module;&lt;br /&gt;
* authentication data for the application (differentiated by application/bundle id);&lt;br /&gt;
* templates for applied systems (differentiated by systemid).&lt;br /&gt;
The search for configuration parameters is carried out in the following directories in sequence, until the first of the listed ones is found:&lt;br /&gt;
* &amp;lt;code&amp;gt;/opt/wildfly/pc_pusher&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/opt/pc/pc_pusher&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;C:\\pc\\pc_pusher&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;C:\\wildfly\\pc_pusher&amp;lt;/code&amp;gt;&lt;br /&gt;
or in the directory specified through environment variables, with the parameter &amp;lt;code&amp;gt;-Dpcp_config=&amp;lt;/code&amp;gt;. If the path to the directory is set through environment variables, then the search in directories is not performed by default.&lt;br /&gt;
==Directory structure==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
.&lt;br /&gt;
├── apps&lt;br /&gt;
│   ├── com.example.corp.dev.json&lt;br /&gt;
│   ├── com.example.cort.json&lt;br /&gt;
│   ├── com.example.retail.dev.json&lt;br /&gt;
│   └── com.example.retail.json&lt;br /&gt;
├── systems&lt;br /&gt;
│   └── 3550fa38-5d17-4fbf-a660-506227a2ed0e.json&lt;br /&gt;
└── pusher.conf.json&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==General parameters==&lt;br /&gt;
General module parameters are set in the root of the configuration directory in the file &amp;#039;&amp;#039;pusher.conf.json&amp;#039;&amp;#039;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Property!!Description&lt;br /&gt;
|-&lt;br /&gt;
|debug_info||Enable debug information output.&lt;br /&gt;
|-&lt;br /&gt;
|proxy||Parameters for connecting through a proxy.&lt;br /&gt;
|-&lt;br /&gt;
|notification_status_buffer_size||Size of the queue for storing transaction statuses.&lt;br /&gt;
|-&lt;br /&gt;
|core_size||Initial number of workers.&lt;br /&gt;
|-&lt;br /&gt;
|queue_size||If the queue grows to this value, then the number of workers increases to &amp;lt;code&amp;gt;max_core_size&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|max_core_size||Maximum number of workers. If the queue is full, then Exception &amp;quot;TASKS_QUEUE_IS_FULL&amp;quot; (HTTP 400, PC_Error 313) is returned.&lt;br /&gt;
|-&lt;br /&gt;
|performance_log||If debug_info is enabled, then in this case will be launched a daemon process , which will calculate the performance of the pusher with a period of &amp;lt;code&amp;gt;performance_log_period&amp;lt;/code&amp;gt; and output the results to the log.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
===Configuration file example===&lt;br /&gt;
The values ​​shown are set by default&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;debug_info&amp;quot;: false,&lt;br /&gt;
  &amp;quot;notification_status_buffer_size&amp;quot;: 1000,&lt;br /&gt;
  &amp;quot;proxy&amp;quot;: {&lt;br /&gt;
    &amp;quot;host&amp;quot;: null,&lt;br /&gt;
    &amp;quot;port&amp;quot;: 3128,&lt;br /&gt;
    &amp;quot;username&amp;quot;: null,&lt;br /&gt;
    &amp;quot;password&amp;quot;: null&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;push_tasks_pool&amp;quot;: {&lt;br /&gt;
    &amp;quot;core_size&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;max_core_size&amp;quot;: 50,&lt;br /&gt;
    &amp;quot;queue_size&amp;quot;:500&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;performance_log&amp;quot;: false,&lt;br /&gt;
  &amp;quot;performance_log_period&amp;quot;: 1000&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==Application Credentials==&lt;br /&gt;
Authentication data for sending push notifications to applications are set in files named &amp;lt;code&amp;gt;%app_id%.json&amp;lt;/code&amp;gt; in directory &amp;lt;code&amp;gt;apps&amp;lt;/code&amp;gt; (where &amp;lt;code&amp;gt;%app_id%&amp;lt;/code&amp;gt; — application/bundle ID).&lt;br /&gt;
&lt;br /&gt;
For iOS, only one of the listed authentication options is sufficient (p8/p12/firebase).&lt;br /&gt;
&lt;br /&gt;
An example of a file with authentication data:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;android&amp;quot;: {&lt;br /&gt;
		&amp;quot;google_api_key&amp;quot;: &amp;quot;AAAAoZ7vyz4:APA91bFqLfNe... ...DbKBCGCXk&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;ios&amp;quot;: {&lt;br /&gt;
		&amp;quot;apns_p8&amp;quot;: {&lt;br /&gt;
			&amp;quot;use_dev_gate&amp;quot;: false,&lt;br /&gt;
			&amp;quot;apns_key_id&amp;quot;: &amp;quot;JVBQX52N5Z&amp;quot;,&lt;br /&gt;
			&amp;quot;apns_team_id&amp;quot;: &amp;quot;48HZH4RWJD&amp;quot;,&lt;br /&gt;
			&amp;quot;apns_key&amp;quot;: &amp;quot;-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgE... ...tRHxUI6\n-----END PRIVATE KEY-----&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;apns_p12&amp;quot;: {&lt;br /&gt;
			&amp;quot;use_dev_gate&amp;quot;: false,&lt;br /&gt;
			&amp;quot;p12_file&amp;quot;: &amp;quot;/opt/pc/apns_keyfile.p12&amp;quot;,&lt;br /&gt;
			&amp;quot;p12_pass&amp;quot;: &amp;quot;Pa$$w0rd&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;firebase&amp;quot;: {&lt;br /&gt;
			&amp;quot;google_api_key&amp;quot;: &amp;quot;AAAAoZ7vyz4:APA91bFqLfNe... ...DbKBCGCXk&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;huawei&amp;quot;: {&lt;br /&gt;
		&amp;quot;client_secret&amp;quot;: &amp;quot;0a5be... ...f04bec3a&amp;quot;,&lt;br /&gt;
		&amp;quot;client_id&amp;quot;: &amp;quot;10... ...79&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Push-notifications templates==&lt;br /&gt;
Templates for push notifications to applications are specified in files named &amp;lt;code&amp;gt;%systemid%.json&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;default.json&amp;lt;/code&amp;gt; in directory &amp;lt;code&amp;gt;systems&amp;lt;/code&amp;gt;. The file with the specified SystemID has priority. Sample file with templates:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;android&amp;quot;: {&lt;br /&gt;
    &amp;quot;templates&amp;quot;: {&lt;br /&gt;
      &amp;quot;transaction&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;to&amp;quot;: &amp;quot;%DEVICE_TOKEN%&amp;quot;,&lt;br /&gt;
          &amp;quot;notification&amp;quot;: {&lt;br /&gt;
            &amp;quot;tag&amp;quot;: &amp;quot;%USER_ID%&amp;quot;,&lt;br /&gt;
            &amp;quot;title&amp;quot;: &amp;quot;PayControl&amp;quot;,&lt;br /&gt;
            &amp;quot;body&amp;quot;: &amp;quot;New operation to confirm&amp;quot;,&lt;br /&gt;
            &amp;quot;icon&amp;quot;: &amp;quot;paycontrol_push&amp;quot;,&lt;br /&gt;
            &amp;quot;sound&amp;quot;: &amp;quot;default&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;data&amp;quot;: {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;PayControl_v2&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;to&amp;quot;: &amp;quot;%DEVICE_TOKEN%&amp;quot;,&lt;br /&gt;
          &amp;quot;data&amp;quot;: {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;PayControl_v2&amp;quot;,&lt;br /&gt;
            &amp;quot;userid&amp;quot;: &amp;quot;%USER_ID%&amp;quot;,&lt;br /&gt;
            &amp;quot;transactionid&amp;quot;: &amp;quot;%TRANSACTION_ID%&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;ios&amp;quot;: {&lt;br /&gt;
    &amp;quot;use_dev_gate&amp;quot;: false,&lt;br /&gt;
    &amp;quot;templates&amp;quot;: {&lt;br /&gt;
      &amp;quot;transaction&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;aps&amp;quot;: {&lt;br /&gt;
            &amp;quot;alert&amp;quot;: &amp;quot;New operation to confirm&amp;quot;,&lt;br /&gt;
            &amp;quot;sound&amp;quot;: &amp;quot;default&amp;quot;,&lt;br /&gt;
            &amp;quot;badge&amp;quot;: 1,&lt;br /&gt;
            &amp;quot;mutable-content&amp;quot;: 1,&lt;br /&gt;
            &amp;quot;category&amp;quot;: &amp;quot;NEW_OPERATION&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;PayControl&amp;quot;,&lt;br /&gt;
          &amp;quot;userid&amp;quot;: &amp;quot;%USER_ID%&amp;quot;,&lt;br /&gt;
          &amp;quot;transactionid&amp;quot;: &amp;quot;%TRANSACTION_ID%&amp;quot;,&lt;br /&gt;
          &amp;quot;pc_notification_type&amp;quot;: &amp;quot;alert&amp;quot;,&lt;br /&gt;
          &amp;quot;pc_notification_priority&amp;quot;: 10,&lt;br /&gt;
          &amp;quot;pc_notification_timeout&amp;quot;: 600,&lt;br /&gt;
          &amp;quot;pc_collapse_id&amp;quot;: &amp;quot;%USER_ID%&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;huawei&amp;quot;: {&lt;br /&gt;
    &amp;quot;templates&amp;quot;: {&lt;br /&gt;
      &amp;quot;transaction&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;validate_only&amp;quot;: false,&lt;br /&gt;
          &amp;quot;message&amp;quot;: {&lt;br /&gt;
            &amp;quot;android&amp;quot;: {&lt;br /&gt;
              &amp;quot;notification&amp;quot;: {&lt;br /&gt;
                &amp;quot;tag&amp;quot;: &amp;quot;%USER_ID%&amp;quot;,&lt;br /&gt;
                &amp;quot;title&amp;quot;: &amp;quot;PayControl&amp;quot;,&lt;br /&gt;
                &amp;quot;body&amp;quot;: &amp;quot;New operation to confirm&amp;quot;,&lt;br /&gt;
                &amp;quot;icon&amp;quot;: &amp;quot;paycontrol_push&amp;quot;,&lt;br /&gt;
                &amp;quot;click_action&amp;quot;: {&lt;br /&gt;
                  &amp;quot;type&amp;quot;: 3&lt;br /&gt;
                }&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;token&amp;quot;: [&lt;br /&gt;
              &amp;quot;%DEVICE_TOKEN%&amp;quot;&lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;validate_only&amp;quot;: false,&lt;br /&gt;
          &amp;quot;message&amp;quot;: {&lt;br /&gt;
            &amp;quot;android&amp;quot;: {&lt;br /&gt;
              &amp;quot;collapse_key&amp;quot;: -1,&lt;br /&gt;
              &amp;quot;urgency&amp;quot;: &amp;quot;HIGH&amp;quot;,&lt;br /&gt;
              &amp;quot;ttl&amp;quot;: &amp;quot;86400&amp;quot;,&lt;br /&gt;
              &amp;quot;data&amp;quot;: &amp;quot;{\&amp;quot;type\&amp;quot;: \&amp;quot;PayControl_v2\&amp;quot;,\n\&amp;quot;userid\&amp;quot;: \&amp;quot;%USER_ID%\&amp;quot;,\&amp;quot;transactionid\&amp;quot;: \&amp;quot;%TRANSACTION_ID%\&amp;quot;}&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;token&amp;quot;: [&lt;br /&gt;
              &amp;quot;%DEVICE_TOKEN%&amp;quot;&lt;br /&gt;
            ]&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Settings for sending pushes to another application=&lt;br /&gt;
&lt;br /&gt;
By default, if app/bundle id, used to send push notifications, is not explicitly specified for the device, PCS 3.8 sends push to PC Classic app.&lt;br /&gt;
&lt;br /&gt;
To send push notifications to another application, you need to:&lt;br /&gt;
# Make settings for the authentication data of the &amp;quot;other&amp;quot; mobile application in accordance with [[#Configuration|article above]]&lt;br /&gt;
# Register the app/bundle id of the required application in the PCS database(after executing the request, you need to restart Wildfly):&lt;br /&gt;
Example: &amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;insert into pc_sys_property values (nextval(&amp;#039;pc_setting_seq&amp;#039;), &amp;#039;APP_ID_FOR_PUSHER&amp;#039;, &amp;#039;{&amp;quot;Android&amp;quot;:&amp;quot;com.example.mobile.app&amp;quot;,&amp;quot;iOS&amp;quot;:&amp;quot;com.example.apple.app&amp;quot;,&amp;quot;Huawei&amp;quot;:&amp;quot;com.example.apple.app&amp;quot;}&amp;#039;);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Templates:&lt;br /&gt;
* PostgreSQL &amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;insert into pc_sys_property values (nextval(&amp;#039;pc_setting_seq&amp;#039;), &amp;#039;APP_ID_FOR_PUSHER&amp;#039;, &amp;#039;{&amp;quot;Android&amp;quot;:&amp;quot;your_appid&amp;quot;,&amp;quot;iOS&amp;quot;:&amp;quot;your_appid&amp;quot;,&amp;quot;Huawei&amp;quot;:&amp;quot;your_appid&amp;quot;}&amp;#039;);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* MS SQL &amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;insert into pc_sys_property values (NEXT VALUE FOR PC_SETTING_SEQ, &amp;#039;APP_ID_FOR_PUSHER&amp;#039;, &amp;#039;{&amp;quot;Android&amp;quot;:&amp;quot;your_appid&amp;quot;,&amp;quot;iOS&amp;quot;:&amp;quot;your_appid&amp;quot;,&amp;quot;Huawei&amp;quot;:&amp;quot;your_appid&amp;quot;}&amp;#039;);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Oracle &amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;insert into pc_sys_property values (PC_SETTING_SEQ.NEXTVAL, &amp;#039;APP_ID_FOR_PUSHER&amp;#039;, &amp;#039;{&amp;quot;Android&amp;quot;:&amp;quot;your_appid&amp;quot;,&amp;quot;iOS&amp;quot;:&amp;quot;your_appid&amp;quot;,&amp;quot;Huawei&amp;quot;:&amp;quot;your_appid&amp;quot;}&amp;#039;);&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>D.bizyukov</name></author>
	</entry>
</feed>