- Регистрация пользователя —
createUser
- Авторизация пользователя —
cryptLogin
- Архивация пользователя —
archiveUser
- Разархивация пользователя —
unarchiveUser
- Пополнение баланса пользователя —
doPayment
- Подтверждение платежа —
confirmPayment
- Отклонение платежа —
declinePayment
- Финансовая сводка пользователя за день —
getFinSummaryByDate
- Получение данных пользователя —
getUserData
- Получение данных всех пользователей партнёра —
getUsersData
- Получение списка непрочитанных сообщений пользователя —
getUserMessages
- Получение списка непрочитанных сообщений всех пользователей партнёра —
getMessages
- Получение шаблонов сообщений —
getMessageTemplates
- Отметка о прочтении списка сообщений —
readMessages
- Изменение URL-а проекта —
changeUrl
- Подключение счётчика Yandex.Metrika —
attachYandexMetrikaCounter
- Авторесайз фрейма
- Deeplinks
https://<HOST>/<PARTNER_PATH>/<METHOD>?k=<PREFIX><HASH><ENCRYPTED_DATA>
где
HOST
— хост сервиса. Хост песочницы:sandbox.promopult.org
;
PARTNER_PATH
— уникальный путь к апи для каждого партнера.
METHOD
— название апи-метода.
PREFIX
— код алгоритма шифрования (всегда'zaa'
);
PARTNER_HASH
— хеш Партнера или Пользователя в зависимости от вызываемого метода;
ENCRYPTED_DATA
— закодированные данные запроса.
GET https://<HOST>/<PARTNER_PATH>/createUser ?
k=<PREFIX><PARTNER_HASH><ENCRYPTED_DATA>
Для регистрации создадим следующий GET-запрос:
$data = [
'username' => '<string>', // Обязательное поле
'hash' => '<string>', // Обязятельное поле
'email' => '<string>',
'phone' => '<string>',
'suggestedDomain' => '<string>',
'inviterUserId' => '<string>'
];
// генерируем URL
$k = json_encode($data);
$code = SimpleCrypt::encrypt($k, '<CRYPT_KEY>');
$url = 'https://sandbox.promopult.org/partners/acme/createUser?k=zaa' . '<PARTNER_HASH>' . urlencode($code)';
Параметры:
username
— уникальный логин в системе. Для поддержания уникальности желательно в него добавлять короткий префикс и идентификатор пользователя партнера. Например:acme-site.ru-11235813
;
hash
— уникальный 32-символьный случайный хеш пользователя. При этом его необходимо сохранить в БД для дальнейшего использования;
phone
— мобильный телефон пользователя в интернациональном формате. Например:+79551234567
;
suggestedDomain
— домен, который должен продвигаться в системе (без схемы), например:site.ru
,lenta.ru
,cnn.com
;
inviterUserId
— идентификатор пользователя в системе Партнера (используется для удобства отладки и решения проблем).
SUCCESS
{
"status": {
"code": 0,
"message": "ok"
},
"error": false,
"data": {
"cryptKey": "<CRYPT_KEY>"
}
}
где
CRYPT_KEY
— Ключ для шифрования-дешифрования данных пользователя. Необходимо сохранить в БД для дальнейшего использования. Формат: строка в 52 символа. Пример:ko808duypw6hxos6q4vihukgy4wpuzwwbwnerus676krgwcoi7u
FAIL
{
"status": {
"code": <ERROR_CODE>,
"message": "<ERROR_MESSAGE>"
},
"error": true
}
Коды ошибок:
0
— Нет ошибки
1
— Ошибка валидации данных
2
— Неверный ключ партнера
3
— Данный ключ пользователя уже занят - сгенерируйте новый
4
— Длина хеша должна быть 32 символа
GET https://<HOST>/<PARTNER_PATH>/cryptLogin ?
k=<PREFIX><USER_HASH><ENCRYPTED_DATA>&r=<PAGE>
где
PREFIX
—'zaa'
;
ENCRYPTED_DATA
— закодированные данные запроса.
PAGE
— экран, который откроется после логина, см. deeplinks (необязательный параметр).
Для авторизации создадим адрес GET-запроса:
//
$data = [
'login' => '<LOGIN>',
'hash' => '<USER_HASH>',
'paymentNotifyUrl' => '<PAYMENT_NOTIFY_URL>' // Необязятельный параметр
];
// генерируем URL
$k = json_encode($data);
$code = SimpleCrypt::encrypt($k, '<CRYPT_KEY>');
$url = 'https://sandbox.promopult.org/partners/acme/cryptLogin?k=zaa' . '<USER_HASH>' . urlencode($code) . '&r=<PAGE>';
где
LOGIN
— логин пользователя,
USER_HASH
— хэш пользователя,
PAYMENT_NOTIFY_URL
— URL на который будут отправлятся уведомления при пополнении счета (см. раздел Шаблон PAYMENT_NOTIFY_URL).
В результате переменная $url
будет содержать ссылку, которую можно подставлять в параметр src
тега iframe.
Пример:
https://sandbox.promopult.org/partners/acme/cryptLogin?k=zaaf3102ac1d0588bea1db5411f662826636ZTQo%2BDP4JOoltfdzJ7T0tTXoanh0Wba5s%2BkZKaYa2uqk6OS1dfV05RvV9uimaZn2dOm0qKZbgHaqaef2Metn2OX15elpWymnm6bk5yVluPNlqve1cbej7CEnaJmaaKfoaNlqpCmn6yWZ7OYppPr
GET https://<HOST>/<PARTNER_PATH>/archiveUser ?
k=<PREFIX><USER_HASH><ENCRYPTED_DATA>
Для архивации создадим следующий GET-запрос:
$data = [
'partner' => '<PARTNER_HASH>'
];
// генерируем URL
$k = json_encode($data);
$code = SimpleCrypt::encrypt($k, '<CRYPT_KEY>');
$url = 'https://sandbox.promopult.org/partners/acme/archiveUser?k=zaa' . '<USER_HASH>' . urlencode($code)';
SUCCESS
{
"status": {
"code": 0,
"message": "ok"
},
"error": false,
"data": {
"userHash": "<USER_HASH>",
"lastBillingDate": "<DATE>"
}
}
где
USER_HASH
— Хеш пользователя, который был заархивированPARTNER_HASH
— Хеш партнераDATE
— Дата до которой будут происходить списания
FAIL
{
"status": {
"code": <ERROR_CODE>,
"message": "<ERROR_MESSAGE>"
},
"error": true
}
Коды ошибок:
0
— Нет ошибки
1
— Ошибка валидации данных
2
— Неверный ключ партнера
4
— Длина хеша должна быть 32 символа
GET https://<HOST>/<PARTNER_PATH>/unarchiveUser ?
k=<PREFIX><USER_HASH><ENCRYPTED_DATA>
Для разархивации пользователя создадим следующий GET-запрос:
$data = [
'partner' => '<PARTNER_HASH>'
];
// генерируем URL
$k = json_encode($data);
$code = SimpleCrypt::encrypt($k, '<CRYPT_KEY>');
$url = 'https://sandbox.promopult.org/partners/acme/unarchiveUser?k=zaa' . '<USER_HASH>' . urlencode($code)';
SUCCESS
{
"status": {
"code": 0,
"message": "ok"
},
"error": false,
"data": {
"userHash": "<USER_HASH>",
}
}
где
USER_HASH
— Хеш пользователя, который был заархивированPARTNER_HASH
— Хеш партнера
FAIL
{
"status": {
"code": <ERROR_CODE>,
"message": "<ERROR_MESSAGE>"
},
"error": true
}
Коды ошибок:
0
— Нет ошибки
1
— Ошибка валидации данных
2
— Неверный ключ партнера
4
— Длина хеша должна быть 32 символа
GET https://<HOST>/<PARTNER_PATH>/doPayment ?
k=<PREFIX><USER_HASH><ENCRYPTED_DATA>
Создадим GET-запрос для проводки платежа:
$paymentData = array(
'paymentSum' => '<PAYMENT_COST>',
'paymentSumBonus' => '<PAYMENT_BONUS>',
'paymentHash' => '<PAYMENT_HASH>',
'userLogin' => '<LOGIN>',
);
$k = json_encode($paymentData);
$code = SimpleCrypt::encrypt($k, '<CRYPT_KEY>');
$url = 'https://<HOST>/<PARTNER_PATH>/doPayment?k=zaa' . '<USER_HASH>' . urlencode($code);
где
PAYMENT_COST
— Сумма платежа
PAYMENT_BONUS
— Сумма бонусного платежа
PAYMENT_HASH
— Хеш платежа. Уникальное случайное 32-символьное значение. Формат: md5-код.
LOGIN
— Логин пользователя в системе.
SUCCESS
{
"status": {
"code": 0,
"message": "ok"
},
"error": false,
"data": {
"paymentId": "<PAYMENT_ID>"
}
}
где
PAYMENT_ID
— Ид платежа в системе. +Обязательно нужно его привязать (сохранить) к платежу в партнерской системе. Пример:114163
.
FAIL
{
"status" : {
"code" : <ERROR_CODE>,
"message" : "<ERROR_MESSAGE>"
},
"error" : true
}
Обратите внимание, что платежи созданные методом doPayment
, подтверждать не требуется.
GET https://<HOST>/<PARTNER_PATH>/confirmPayment ?
k=<PREFIX><USER_HASH><ENCRYPTED_DATA>
Создадим GET-запрос для подтверждения платежа:
$dataJson = array(
'amount' => '<AMOUNT>',
'transactionId' => '<TRANSACTION_ID>',
);
$k = json_encode($dataJson);
$code = SimpleCrypt::encrypt($k, '<CRYPT_KEY>');
$url = 'https://<HOST>/<PARTNER_PATH>/confirmPayment?k=zaa' . '<USER_HASH>' . urlencode($code);
где
AMOUNT
— Сумма платежа
TRANSACTION_ID
— Идентификатор платежа переданный при создании платежа (см. Пополнение со счета Партнера).
SUCCESS
{
"status": {
"code": 0,
"message": "ok"
},
"error": false,
"data": {
"transactionId": "<TRANSACTION_ID>"
}
}
где
TRANSACTION_ID
— Идентификатор платежа в системе.
FAIL
{
"status" : {
"code" : <ERROR_CODE>,
"message" : "<ERROR_MESSAGE>"
},
"error" : true
}
GET https://<HOST>/<PARTNER_PATH>/declinePayment ?
k=<PREFIX><USER_HASH><ENCRYPTED_DATA>
Создадим GET-запрос для отклонения платежа:
$dataJson = array(
'transactionId' => '<TRANSACTION_ID>',
'errorCode' => <ERROR_CODE>, // Необязятельный параметр (больше не поддерживается)
'errorMessage' => '<ERROR_MESSAGE>', // Необязятельный параметр (больше не поддерживается)
'errorLink' => '<ERROR_LINK>', // Необязятельный параметр (больше не поддерживается)
);
$k = json_encode($dataJson);
$code = SimpleCrypt::encrypt($k, '<CRYPT_KEY>');
$url = 'https://<HOST>/<PARTNER_PATH>/declinePayment?k=zaa' . '<USER_HASH>' . urlencode($code);
где
TRANSACTION_ID
— идентификатор платежа переданный при создании платежа (см. Пополнение со счета Партнера).
SUCCESS
{
"status": {
"code": 0,
"message": "ok"
},
"error": false,
"data": {
"transactionId": "<TRANSACTION_ID>"
}
}
где
TRANSACTION_ID
— Идентификатор платежа в системе.
FAIL
{
"status" : {
"code" : <ERROR_CODE>,
"message" : "<ERROR_MESSAGE>"
},
"error" : true
}
GET https://<HOST>/<PARTNER_PATH>/getFinSummaryByDate?k=<PREFIX><USER_HASH><ENCRYPTED_DATA>
где
USER_HASH
— Хеш пользователя.
Создадим адрес GET-запроса:
$queryData = array(
'date' => '<DATE>'
);
$k = json_encode($queryData);
$code = SimpleCrypt::encrypt($k, '<USER_CRYPT_KEY>');
$url = 'https://sandbox.promopult.org/partners/acme/getFinSummaryByDate?k=zaa' . '<USER_HASH>' . urlencode($code);
SUCCESS
{
"status": {
"code": 0,
"message": "ok"
},
"error": false,
"data": {
"date": "<DATE>",
"balance": <USER_BALANCE>,
"income": <USER_INCOME>,
"outcome": <USER_OUTCOME>,
}
}
где,
DATE
— Дата в формате YYYY-MM-DD.
USER_BALANCE
— Баланс счёта пользователя.
USER_INCOME
— Сумма пополнений пользователя за день.
USER_OUTCOME
— Сумма списаний пользователя за день (со знаком минус).
FAIL
{
"status" : {
"code" : <ERROR_CODE>,
"message" : "<ERROR_MESSAGE>"
},
"error" : true
}
GET https://<HOST>/<PARTNER_PATH>/getUserData ?
k=<PREFIX><USER_HASH><ENCRYPTED_DATA>
где
USER_HASH
— Хеш пользователя.
Создадим адрес GET-запроса:
$queryData = array(
'partner' => '<PARTNER_HASH>'
);
$k = json_encode($queryData);
$code = SimpleCrypt::encrypt($k, '<PARTHER_CRYPT_KEY>');
$url = 'https://sandbox.promopult.org/partners/acme/getUserData?k=zaa' . '<USER_HASH>' . urlencode($code)
SUCCESS
{
"status": {
"code": 0,
"message": "ok"
},
"error": false,
"data": {
"hash": "<USER_HASH>",
"balance": <USER_BALANCE>,
"dailyBudget": <DAILY_BUDGET>,
"dailyExpense": <DAILY_EXPENCE>,
"url": "<URL>",
"keywords": <ARRAY_OF_KEYWORDS>,
"status": "<STATUS>",
"progress": "<PROGRESS>"
}
}
где,
USER_HASH
— Хэш пользователя.
USER_BALANCE
— Баланс счёта пользователя.
DAILY_BUDGET
— Дневной бюджет пользователя (считается как МЕСЯЧНЫЙ_БЮДЖЕТ / 30).
DAILY_EXPENCE
— Средний дневной расход средств.
URL
— Текущий хост продвигаемого проекта.
ARRAY_OF_KEYWORDS
— Массив клучевых фраз, в формате["слово1", "слово2"]
.
STATUS
— Статус пользователя, принимает значенияrun
,stopped
илиnew
.
PRGOGRESS
- Прогресс пользователя, принимает значенияWIZARD_STEP_1
,WIZARD_STEP_2
,WIZARD_STEP_3
,WIZARD_STEP_4
,CAMPAIGN_PAID
,CAMPAIGN_UNPAID
,UNKNOWN
.
FAIL
{
"status" : {
"code" : <ERROR_CODE>,
"message" : "<ERROR_MESSAGE>"
},
"error" : true
}
При необходимости можно получить данные всех пользователей партнера: баланс, статус проекта и ключевых слов.
Для этого необходимо запросить ключ шифрования партнера PARTNER_CRYPT_KEY
, т.к. метод не подразумевает использования ключа шифрования какого-либо пользователя системы.
GET https://<HOST>/<PARTNER_PATH>/getUsersData ?
k=<PREFIX><PARTNER_HASH><ENCRYPTED_DATA>
где
PARTNER_HASH
— Хеш партнера.
Создадим адрес GET-запроса:
$queryData = array(
'partner' => '<PARTNER_HASH>',
'createdOn' => date('Y-m-d h:i:s'),
);
$k = json_encode($queryData);
$code = SimpleCrypt::encrypt($k, '<PARTHER_CRYPT_KEY>');
$url = 'https://sandbox.promopult.org/partners/acme/getUsersData?k=zaa' . '<PARTNER_HASH>' . urlencode($code) . '&type=userInvite'
где
PARTHER_CRYPT_KEY
— Ключ который необходимо запросить. Уникален для партнера системы.
GET https://<HOST>/<PARTNER_PATH>/getUserMessages ?
k=<PREFIX><USER_HASH><ENCRYPTED_DATA>
Создадим урл GET-запроса для получения сообщений
$data = array(
'partner' => <PARTNER_HASH>,
'markRead' => <MARK_READ>,
);
$k = json_encode($data);
$code = SimpleCrypt::encrypt($k, '<CRYPT_KEY>');
$url = 'http://sandbox.promopult.org/partners/acme/getUserMessages?k=zaa' . '<USER_HASH>' . urlencode($code);
где
MARK_READ
— — Необязятельный параметр, если передан TRUE, сообщения буду как прочитанное.
SUCCESS
{
"status": {
"code": 0,
"message": "ok"
},
"error": false,
"data": {
"messages": <MESSAGES>
}
}
где
MESSAGES
— Массив сообщений в формате:[ ... { "id": "<MESSAGE_ID>", "userLogin": "<LOGIN>", "type": "<TYPE>", "title": "<TITLE>", "text": "<TEXT>", "params": "<PARAMS>", "templateId": "<TEMPLATE_ID>", "textTemplate": "<TEXT_TEMPLATE>", "titleTemplate": "<TITLE_TEMPLATE>" }, ... ]где,
MESSAGE_ID
— Идентификатор сообщения в системе.
LOGIN
— Логин пользователя.
TYPE
— тип сообщенияTITLE
— Заголовок (тема) сообщения.
TEXT
— Текст сообщения (Важно! в тексте могу содержаться Шаблоны ссылок на внутренние экраны iframe).
PARAMS
— Массив динамических свойств сообщения (используется для подстановки в шаблон сообщения партнера).
TEMPLATE_ID
— Целочисленный уникальный идентификатор шаблона сообщения.
TEXT_TEMPLATE
— Шаблон текста сообщения в формате mustache.
TITLE_TEMPLATE
— Шаблон заголовка (subject) сообщения в формате mustache.
FAIL
{
"status" : {
"code" : <ERROR_CODE>,
"message" : "<ERROR_MESSAGE>"
},
"error" : true
}
GET https://<HOST>/<PARTNER_PATH>/getMessages ?
k=<PREFIX><PARTNER_HASH><ENCRYPTED_DATA>
Создадим урл GET-запроса для получения сообщений
$data = array(
'partner' => <PARTNER_HASH>,
'markRead' => <MARK_READ>,
);
$k = json_encode($data);
$code = SimpleCrypt::encrypt($k, '<CRYPT_KEY>');
$url = 'http://sandbox.promopult.org/parnters/acme/getMessages?k=zaa' . '<PARTNER_HASH>' . urlencode($code);
где
MARK_READ
— Необязятельный параметр, если передан TRUE, сообщения буду как прочитанное.
SUCCESS
{
"status": {
"code": 0,
"message": "ok"
},
"error": false,
"data": {
"messages": <MESSAGES>
}
}
где
MESSAGES
— Массив сообщений в формате:[ ... { "id": "<MESSAGE_ID>", "userLogin": "<LOGIN>", "type": "<TYPE>", "title": "<TITLE>", "text": "<TEXT>", "params": "<PARAMS>", "templateId": "<TEMPLATE_ID>", "textTemplate": "<TEXT_TEMPLATE>", "titleTemplate": "<TITLE_TEMPLATE>" }, ... ]где,
MESSAGE_ID
— Идентификатор сообщения в системе.
LOGIN
— Логин пользователя.
TYPE
— тип сообщенияTITLE
— Заголовок (тема) сообщения.
TEXT
— Текст сообщения (Важно! в тексте могу содержаться Шаблоны ссылок на внутренние экраны iframe).
PARAMS
— Массив динамических свойств сообщения (используется для подстановки в шаблон сообщения партнера).
TEMPLATE_ID
— Целочисленный уникальный идентификатор шаблона сообщения.
TEXT_TEMPLATE
— Шаблон текста сообщения в формате mustache.
TITLE_TEMPLATE
— Шаблон заголовка (subject) сообщения в формате mustache.
FAIL
{
"status" : {
"code" : <ERROR_CODE>,
"message" : "<ERROR_MESSAGE>"
},
"error" : true
}
GET https://<HOST>/<PARTNER_PATH>/getMessageTemplates ?
k=<PREFIX><PARTNER_HASH><ENCRYPTED_DATA>
Создадим урл GET-запроса для получения сообщений
$data = array(
'partner' => <PARTNER_HASH>
);
$k = json_encode($data);
$code = SimpleCrypt::encrypt($k, '<CRYPT_KEY>');
$url = 'http://sandbox.promopult.org/parnters/acme/getMessageTemplates?k=zaa' . '<PARTNER_HASH>' . urlencode($code);
SUCCESS
{
"status": {
"code": 0,
"message": "ok"
},
"error": false,
"data": {
"messages": <MESSAGE_TEMPLATES>
}
}
где
MESSAGE_TEMPLATES
— Массив шаблонов сообщений в формате:[ ... { "templateId": "<TEMPLATE_ID>", "textTemplate": "<TEXT_TEMPLATE>", "titleTemplate": "<TITLE_TEMPLATE>" }, ... ]где,
TEMPLATE_ID
— Целочисленный уникальный идентификатор шаблона сообщения.
TEXT_TEMPLATE
— Шаблон текста сообщения в формате mustache.
TITLE_TEMPLATE
— Шаблон заголовка (subject) сообщения в формате mustache.
FAIL
{
"status" : {
"code" : <ERROR_CODE>,
"message" : "<ERROR_MESSAGE>"
},
"error" : true
}
POST https://<HOST>/<PARTNER_PATH>/readMessages ?
k=<PREFIX><PARTNER_HASH><ENCRYPTED_DATA>
POST BODY
ids=<IDS_COMMA_SEPARATED>
где
IDS_COMMA_SEPARATED
— строка чисел-идентификаторов сообщений, разделенных запятыми
SUCCESS
{
"status": {
"code": 0,
"message": "ok"
},
"error": false,
"data": {
"success": <SUCCESS_COUNT>
}
}
где
SUCCESS_COUNT
— количество успешно обработанных сообщений
GET https://<HOST>/<PARTNER_PATH>/changeUrl ?
k=<PREFIX><USER_HASH><ENCRYPTED_DATA>
Создадим урл GET-запроса
$data = array(
'url' => <NEW_URL>
);
$k = json_encode($data);
$code = SimpleCrypt::encrypt($k, '<CRYPT_KEY>');
$url = 'http://sandbox.promopult.org/partners/acme/changeUrl?k=zaa' . '<USER_HASH>' . urlencode($code);
где
NEW_URL
— Новый URL проекта, напримерhttp://my-new-domain.com
.
SUCCESS
{
"status": {
"code": 0,
"message": "ok"
},
"error": false,
"data": {
"newUrl": <NEW_URL>,
"oldUrl": <OLD_URL>
}
}
где
NEW_URL
— Новый URL
OLD_URL
— URL проекта до вызова метода
FAIL
{
"status" : {
"code" : <ERROR_CODE>,
"message" : "<ERROR_MESSAGE>"
},
"error" : true
}
GET https://<HOST>/<PARTNER_PATH>/attachYandexMetrikaCounter ?
k=<PREFIX><USER_HASH><ENCRYPTED_DATA>
Создадим урл GET-запроса
$data = array(
'counterId' => '<COUNTER_ID>',
'accessToken' => '<ACCESS_TOKEN>'
);
$k = json_encode($data);
$code = SimpleCrypt::encrypt($k, '<CRYPT_KEY>');
$url = 'http://sandbox.promopult.org/partners/acme/attachYandexMetrikaCounter?k=zaa' . '<USER_HASH>' . urlencode($code);
где
COUNTER_ID
— Номер счетчика.
ACCESS_TOKEN
— OAuth-токен для доступа в Яндекс.
SUCCESS
{
"status": {
"code": 0,
"message": "ok"
},
"error": false,
"data": {
"id": <INTERNAL_COUNTER_ID>
}
}
где
INTERNAL_COUNTER_ID
— Внутрений идентификатор счетчика в Integra.
FAIL
{
"status" : {
"code" : <ERROR_CODE>,
"message" : "<ERROR_MESSAGE>"
},
"error" : true
}
Для установки автоматической высоты встройки внутри страницы партнёра по высоте её внутреннего содержимого, необходимо на странице подключения iframe
добавить загрузку скрипта ресайзера с предлагаемого хоста.
<script type="text/javascript"
src="https://web.promopult.org/partners/default/iframeResizer.min.js"></script>
Либо подключить самостоятельно из github-репозитория файл iframeResizer.min.js.
<script type="text/javascript"
src="/iframeResizer.min.js"></script>
Далее, на событие onload
html
-элемента iframe
добавить вызов: iFrameResize({ checkOrigin: false }, this)
<iframe src="https://sandbox.promopult.org/partners/acme/cryptLogin?k=..."
scrolling="no"
seamless="seamless"
style="min-height: 600px"
onload="iFrameResize({ checkOrigin: false }, this)"></iframe>
Также, можно ознакомиться с репозиторием либы на github.com на предмет других возможностей.
Для организации deeplinks в методе cryptLogin
служит GET-параметр r
, который указывает на какой экран перейти после логина в iframe-е. Например, если необходимо открыть страницу пополнения для r
нужно передать значение go/payment
в URL-кодированном виде.
Пример:
https://sandbox.promopult.org/partners/acme/cryptLogin?k=...&r=go%2Fpayment
Для параметра r
доступны следующие значения:
/go/payment
/go/support
/go/help
В тексте сообщений может содержаться шаблон ссылки на один из внутренних экранов iframe-а, например, в сообщении с типом low_balance
есть ссылка на страницу пополнения счета.
Часть сообщения, содержащая ссылку, выглядит так:
...
Чтобы пополнить баланс перейдите по <a target="_blank" href="{{go/payment}}">ссылке</a>.
Атрибут href
содержит шаблон адреса экрана пополнения счета в iframe {{go/payment}}
, который, в зависимости от контекста вывода сообщения, необходимо заменить на deeplink через интерфейс Партнера в модуль продвижения.
После преобразования, для пользователя ссылка в сообщении может выглядеть так:
...
Чтобы пополнить баланс перейдите по <a target="_blank" href="http://my-cool-service.com/promotion?open=go/payment">ссылке</a>.
где http://my-cool-service.com/promotion?open=go/payment
адрес страницы модуля на сайте партнера, а GET-параметр open
пробросится в атрибут src
тега iframe:
...
<iframe src='https://sandbox.promopult.org/iframe/cryptLogin?k=...&r=go/payment'></iframe>
...
Обратите внимание, уведомления будут отправлятся только в случае Пополнения со счета Партнера.
Для возможности более гибкой интеграции предусмотрена шаблонизация уведомлений пополнения баланса. Шаблон представляет из себя обыкновенный URL с плейсхолдерами вида {amount}
, которые, перед вызовом, будут заменены на соответствующие значения.
Например для шаблона:
https://payment.acme.com/payment-notify?amount={amount}&transaction_id={id}
уведомление будет отправлено на:
https://payment.acme.com/payment-notify?amount=100&transaction_id=202cb962ac59075b964b07152d234b70
Поддердживаются следующие варинаты плейсхолдеров:
{id}
— внешний идентификатор транзакции (строка 32 символа){amount}
— сумма платежа{hash}
— хэш пользователя