EasyDonate API
v3
v3
  • Введение
  • Начало работы
  • Требования к HTTP запросам
  • Отличия от API v2
  • Коды ошибок
  • Работа с магазином
    • Информация о магазине
    • Список товаров
    • Информация о товаре
    • Список серверов
    • Информация о сервере
    • Массовые акции
    • Список купонов
    • Список удачных платежей
    • Информация о платеже
    • Создание платежа
  • Работа с плагинами
    • Доплата
    • Последние покупки
    • Кастомные сообщения
    • Виджет Discord канала
    • Виджет сообщества ВКонтакте
    • Новости из сообщества ВКонтакте
    • Сообщения сообщества ВКонтакте
    • Яндекс.Метрика
  • Callback API
    • Описание
    • Уведомление о платеже
Powered by GitBook
On this page
  • Пример уведомления
  • Список передаваемых параметров
  • Цифровая подпись
  • Пример генерации цифровой подписи
  • Пример проверки цифровой подписи
  1. Callback API

Уведомление о платеже

После успешной оплаты товаров 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": "admin@easydonate.ru"
            }
         ],
         "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

Никнейм покупателя

email

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

Массив данных о товарах, приобретенных покупателем

signature

string

Цифровая подпись

Перед обработкой платежа мы настоятельно рекомендуем проверять цифровую подпись. Цифровая подпись генерируется путем хеширования алгоритмом HMAC-SHA256 строки с использованием уникального ключа магазина в качестве "соли".

Хешируемую строку можно получить, объединив параметры payment_id, cost и customer, разделив между собой символом "@": "payment_id@cost@customer".

Пример генерации цифровой подписи

<?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.');
}
PreviousОписание

Last updated 11 months ago

Цифровая подпись платежа.

Важно! Всегда проверяйте цифровую подпись перед проведением своей логики обработки платежа.

Для генерации цифровой подписи на языке PHP рекомендуем использовать метод , где первым параметром является sha256, вторым хешируемая строка, третьим — уникальный ключ магазина.

hash_hmac()
Подробнее
Подробнее