Проверка подписи уведомления

По ссылке https://merchant.alikassa.com/cabinet/form/setting-api-certs сгенерируйте «API сертификат на уведомления», сохраните архив, распакуйте

  • public.pem

Оберните все GET данные в json(в том же порядке) и подпишите

$verif = openssl_verify(json_encode([
    'type' => $_GET['type'],
    'id' => (int) $_GET['id'],
    'order_id' => $_GET['order_id'],
    'payment_status' => $_GET['payment_status'],
    'amount' => $_GET['amount'],
    'payment_amount' => $_GET['payment_amount'],
    'is_partial_payment' => $_GET['is_partial_payment'],
    'account' => $_GET['account'],
    'service' => $_GET['service'],
    'desc' => $_GET['desc'],
]),
    base64_decode($_GET['sign']),
    file_get_contents('./certs/notification/public.pem'));

if (!$verif) {

    throw new \Exception;
}
Название Тип Описание
type string payment или payout
id int Id AliKassa
order_id string Ваш id
payment_status string Статус платежа
wait — в процессе оплаты
paid — успешно оплачено (финальный статус)
cancel — отменен (финальный статус)
fail — ошибка (финальный статус)
amount string Сумма
payment_amount string Выплаченная сумма
is_partial_payment bool Является ли выплата частичной
account string Аккаунт
service string Сервис (Счет, Способы приема)
desc string Описание
sign string Подпись запроса