Пример обработчика на PHP

Оповещение о выполнении либо отмене вывода

<?php
$secret = 'secret_webhook_payoff'; // Секретный ключ для проверки подлинности уведомления из настроек аккаунта

if($_SERVER['REQUEST_METHOD'] !== 'POST') {
	die("wrong request method");
}

if(!in_array(@$_POST['status'], ['cancel', 'success'])) {
	die("wrong status");
}

function getIP() {
	$ip = $_SERVER['REMOTE_ADDR'];
		
	if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
		$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
	}
		
	if(isset($_SERVER['HTTP_X_REAL_IP'])) {
		$ip = $_SERVER['HTTP_X_REAL_IP'];
	}
	
	if(isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {
		$ip = $_SERVER['HTTP_CF_CONNECTING_IP'];
	}

	$explode = explode(',', $ip);
		
	if(count($explode) > 1) {
		$ip = $explode[0];
	}
	
	return trim($ip);
}
	
// Проверка на IP адрес сервиса (по желанию)
$ctx = stream_context_create([
	'http' => [
		'timeout' => 10
    	]
]);

$ips = json_decode(file_get_contents('https://aaio.io/api/public/ips', false, $ctx));
if (isset($ips->list) && !in_array(getIP(), $ips->list)) {
	die("hacking attempt");
}
// Конец проверки на IP адрес сервиса

$sign = hash('sha256', implode(':', [$_POST['id'], $secret, $_POST['amount_down']]));

if (!hash_equals($_POST['sign'], $sign)) {
	die("wrong sign");
}

// Код который необходимо выполнить на Вашей стороне

die('OK');

Last updated