Проверка подписи уведомления
По ссылке 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 | Подпись запроса |