Push-уведомления
Push-сообщения могут отправляться через PCIS Internal, либо через PayControl Inform.
Настройка отправки через PayControl Interaction Server (Internal)
Настройки производятся в БД PCIS. Шаблон push-сообщений определяется в формате JSON. Существует два варианта настройки push-сообщений:
- для всех прикладных систем - задаётся в таблице pc_sys_property (setting_name = ANDROID_PUSH_PAYLOAD_TEMPLATE/IOS_PUSH_PAYLOAD_TEMPLATE);
- для каждой прикладной системы отдельно. Имеет более высокий приоритет. Задаётся в таблице pc_push_credentials. Поля ios_push_template и android_push_template
Переменные
Доступны следующие переменные для использования в шаблоне:
Переменная | Значение |
---|---|
%PUSH_TEXT% | PUSH_TEXT |
%PUSH_TITLE% | PUSH_TITLE |
%PUSH_SOUND% | PUSH_IOS_SOUND либо PUSH_ANDROID_SOUND, в зависимости от устройства, на которое отправляется пуш |
%PUSH_ICON% | PUSH_ICON |
%PUSH_IOS_BADGE% | PUSH_IOS_BADGE |
%PUSH_TYPE% | "PayControl" |
%USER_ID% | userId |
%SYSTEM_ID% | systemId |
%TRANSACTION_ID% | transactionId |
%DEVICE_TOKEN% | deviceId |
Шаблоны для разных версий PCIS
До версии PCIS 3.5 включительно
При создании транзакции отправляется одно push сообщение.
Версия PCIS 3.5.5
При отправке оповещения о созданной транзакции на android отправляются два push-сообщения - Notification и Silent. Такая модификация потребовалась в связи с тем, что некоторые устройства не будят приложение для отрисовки уведомления. Для этого в БД PCIS Internal добавлено поле android_second_push_template.
Таким образом, значения полей выглядят следующим образом:
Поле | Значение |
---|---|
android_push_template | {"to":"%DEVICE_TOKEN%","notification":{"tag":"%USER_ID%","title":"PayControl","body":"%PUSH_TEXT%","icon":"paycontrol_push","sound":"default"},"data":{"type":"PayControl_v2"}}
|
android_second_push_template | {"to":"%DEVICE_TOKEN%","data": {"type": "PayControl_v2", "userid": "%USER_ID%"}}
|
С версии PCIS 3.6
Шаблон push-сообщений определяется как массив шаблонов сообщений в формате JSON, которые отправляются последовательно (количество элементов в массиве - от 1):
{"messages":[массив объектов шаблонов push-сообщений, который будет отправлен PayControl]}
Пример:
- android_push_template
{"messages":[{"to":"%DEVICE_TOKEN%","notification":{"tag":"%USER_ID%","title":"PayControl","body":"%PUSH_TEXT%","icon":"paycontrol_push","sound":"default"},"data":{"type":"PayControl_v2"}},{"to":"%DEVICE_TOKEN%","data": {"type": "PayControl_v2", "userid": "%USER_ID%"}}]}
- ios_push_template
{"messages":[{"aps":{"alert":"%PUSH_TEXT%","sound":"%PUSH_SOUND%","badge":%PUSH_IOS_BADGE%},"type":"%PUSH_TYPE%","userid":"%USER_ID%"}]}
Для мобильных приложений версии 3.7 и выше
На Android стало достаточно отправки одного data-пуша. При этом можно указать следующие типы (type) (регистр не имеет значения):
- paycontrol и payconfirm - звук и вибрация;
- PayControl-v2 - использовать не стоит, т.к. в этом случае звука или вибрации не будет. Применяется в случае, если отправляется 2 пуша - notification и data.
{"messages":[{"to":"%DEVICE_TOKEN%","data": {"type": "paycontrol", "userid": "%USER_ID%"}}]}
Тем не менее, шаблон следующий:
{
"messages":[
{
"to":"%DEVICE_TOKEN%",
"notification":{
"tag":"%USER_ID%",
"title":"PayControl",
"body":"%PUSH_TEXT%",
"icon":"paycontrol_push",
"sound":"default"
},
"data":{
"type":"PayControl_v2"
}
},
{
"to":"%DEVICE_TOKEN%",
"data":{
"type":"PayControl_v2",
"userid":"%USER_ID%"
}
}
]
}
Установка новых шаблонов в БД
Обновление шаблонов
update pc_push_credentials set android_push_template='{"messages":[{"to":"%DEVICE_TOKEN%","notification":{"tag":"%USER_ID%","title":"PayControl","body":"%PUSH_TEXT%","icon":"paycontrol_push","sound":"default"},"data":{"type":"PayControl_v2"}},{"to":"%DEVICE_TOKEN%","data": {"type": "PayControl_v2", "userid": "%USER_ID%"}}]}' where systemid='bef89e01-f248-4841-bd62-8b08056e6fea';
update pc_push_credentials set ios_push_template='{"messages":[{"aps":{"alert":"%PUSH_TEXT%","sound":"%PUSH_SOUND%","badge":%PUSH_IOS_BADGE%},"type":"%PUSH_TYPE%","userid":"%USER_ID%"}]}' where systemid='bef89e01-f248-4841-bd62-8b08056e6fea';
Удаление шаблона второго push-сообщения:
update pc_push_credentials set android_second_push_template = NULL;
Одним запросом:
update pc_push_credentials set android_push_template='{"messages":[{"to":"%DEVICE_TOKEN%","notification":{"tag":"%USER_ID%","title":"PayControl","body":"%PUSH_TEXT%","icon":"paycontrol_push","sound":"default"},"data":{"type":"PayControl_v2"}},{"to":"%DEVICE_TOKEN%","data": {"type": "PayControl_v2", "userid": "%USER_ID%"}}]}', ios_push_template='{"messages":[{"aps":{"alert":"%PUSH_TEXT%","sound":"%PUSH_SOUND%","badge":%PUSH_IOS_BADGE%},"type":"%PUSH_TYPE%","userid":"%USER_ID%"}]}', android_second_push_template = NULL;
Добавление новой записи
Указать верные:
- google_api_key
- apns_key_file
- apns_key_id
- apns_team_id
Уточнить:
- apns_app_id
INSERT INTO pc_push_credentials (systemid, android_push_template, google_api_key, ios_push_template, use_ios_fcm, apns_app_id, apns_key_file, apns_key_id, apns_team_id) VALUES ('e33affa9-1ff8-4d2a-aa42-856fb59309e0', '{"messages":[{"to":"%DEVICE_TOKEN%","notification":{"tag":"%USER_ID%","title":"PayControl","body":"%PUSH_TEXT%","icon":"paycontrol_push","sound":"default"},"data":{"type":"PayControl_v2"}},{"to":"%DEVICE_TOKEN%","data": {"type": "PayControl_v2", "userid": "%USER_ID%"}}]}', 'AAAAZJTm6y0:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', '{"messages":[{"aps":{"alert":"%PUSH_TEXT%","sound":"%PUSH_SOUND%","badge":%PUSH_IOS_BADGE%},"type":"%PUSH_TYPE%","userid":"%USER_ID%"}]}', '0','ru.safe-tech.PayControl.v3','/opt/wildfly/safetech-apns-JVBQX52N5Z.p8','JVXXXXXXXXX','48XXXXXXX');