Уведомление о платеже
После успешной оплаты товаров EasyDonate отправит HTTP уведомление по указанному в настройках URL.
Метод уведомления: POST
Пример уведомления
{
"payment_id": 526480,
"shop_id": 4370,
"customer": "Player123",
"email": null,
"ip": "127.0.0.1",
"server": {
"id": 3176,
"name": "Выживание",
"ip": "127.0.0.1",
"port": "25565"
},
"cost": 90,
"income": 85.32,
"payment_type": "card",
"created_at": "2021-09-23 13:38:36",
"updated_at": "2021-09-23 13:38:36",
"products": [
{
"id": 48986,
"name": "Алмазный меч",
"description": "Убивайте мобов эффективней!",
"count": 1,
"cost": 100,
"commands": [
"give DontFollow minecraft:diamond_sword 1"
],
"custom_fields": [
{
"name": "email",
"type": "text",
"description": "Ваш Email",
"value": "[email protected]"
}
],
"image": "http://cp.easydonate.ru/storage/app/media/Diamond Sword-min.png",
"sales": {
"massSale": {
"value": 10,
"description": "Массовая акция \"Осенние скидки\"",
"target": {
"id": 359,
"name": "Алмазный меч",
"sale": 10,
"shop_id": 4370,
"start_at": null,
"expires_at": null,
"created_at": "2021-09-11 11:41:13",
"updated_at": "2021-09-11 11:41:13"
}
}
}
}
],
"signature": "e994bdf64e19be4266b416fe7c13dae1410b1106a004b10e226e62df7f903260"
}
Список передаваемых параметров
Параметр
Тип
Описание
payment_id
int
Идентификатор платежа в системе EasyDonate
shop_id
int
Идентификатор магазина в системе EasyDonate, в котором была совершена покупка
customer
string
Никнейм покупателя
string
Адрес электронной почты покупателя
ip
string
IP адрес покупателя
server
array
Массив данных о сервере, на котором была совершена покупка
cost
double
Стоимость платежа. Сумма, которую отдал покупатель (без учета комиссий)
income
double
Сумма, зачисленная на Ваш баланс в системе EasyDonate
payment_type
string
Способ оплаты. Возможные значения: yoomoney, webmoney, card, card_ua, card_kz, card_eu, card_world, advcash, beeline, mts, megafon, tele2, sbp, mc, test
created_at
datetime
Дата создания платежа
updated_at
datetime
Дата совершения оплаты
products
array
Массив данных о товарах, приобретенных покупателем
Важно! Всегда проверяйте цифровую подпись перед проведением своей логики обработки платежа. Подробнее
Цифровая подпись
Перед обработкой платежа мы настоятельно рекомендуем проверять цифровую подпись. Цифровая подпись генерируется путем хеширования алгоритмом HMAC-SHA256 строки с использованием уникального ключа магазина в качестве "соли".
Хешируемую строку можно получить, объединив параметры payment_id, cost и customer, разделив между собой символом "@": "payment_id@cost@customer".
Для генерации цифровой подписи на языке PHP рекомендуем использовать метод hash_hmac(), где первым параметром является sha256, вторым хешируемая строка, третьим — уникальный ключ магазина.
Пример генерации цифровой подписи
<?php
/**
* Уникальный ключ магазина.
*/
$shopKey = '9ee70b7987a7993046ac30a1556272c8';
/**
* Получаем входящие body параметры.
*/
$data = json_decode(file_get_contents('php://input'));
/**
* Генерация хешируемой строки.
*
* Аналог:
* $hashString = "{$data->payment_id}@{$data->cost}@{$data->customer}";
*/
$hashString = implode('@', [
$data->payment_id,
$data->cost,
$data->customer
]);
/**
* Генерация цифровой подписи алгоритмом HMAC-SHA256,
* где $shopKey — "соль".
*
* @link https://www.php.net/manual/ru/function.hash-hmac.php
*/
$signature = hash_hmac('sha256', $hashString, $shopKey);
Пример проверки цифровой подписи
<?php
function signature($shopKey, $data) {
$hashString = implode('@', [
$data->payment_id,
$data->cost,
$data->customer
]);
return hash_hmac('sha256', $hashString, $shopKey);
}
/**
* Уникальный ключ магазина.
*/
$shopKey = '9ee70b7987a7993046ac30a1556272c8';
/**
* Получаем входящие body параметры.
*/
$data = json_decode(file_get_contents('php://input'));
if (strcasecmp(signature($shopKey, $data), $data->signature) !== 0) {
exit('Bad signature.');
}
Last updated