Как получить http-уведомление (платеж) ЮMoney на несколько доменов? (wordpress)
Как получить http-уведомление (платеж) ЮMoney на несколько доменов? (wordpress)
На один домен без проблем получается, а вот на другие домены платеж не приходит, видимо из-за того что в http-уведомлении можно указать только один домен.
Как делать так, чтобы можно было получить http-уведомление для нескольких доменов с одним аккаунтом юmoney?
Пробовал писать такой код:
$ctx = stream_context_create([
"http" => [
"method" => $_SERVER["REQUEST_METHOD"],
"header" => "Content-Type: " . $_SERVER["HTTP_CONTENT_TYPE"],
"content" => file_get_contents("php://input")
]
]);
file_get_contents("https://site1.ru/url.php", false, $ctx);
file_get_contents("https://site2.ru/url.php", false, $ctx);
file_get_contents("https://site3.ru/url.php", false, $ctx);
Разместил его в index.php, но ничего не происходит. Куда в wordpress будет правильнее разместить такой код, в functions.php? Как делать правильно?
Ответы (1 шт):
Не знаток wordpress, однако, если говорите, что для уведомления можно указать только один домен, в таком случае, укажите какой-то сервисный домен, а на нем реализуйте логику отправки на остальные.
Код если честно, может быть до боли прост и реализовать его можно в плагине.
Так же, в доке ЮMoney сказано, что вам придет POST запрос и данные в формате application/x-www-form-urlencoded, в таком случае, можно написать что-то подобное:
foreach (
[
'https://site1.ru/url.php',
'https://site2.ru/url.php',
'https://site3.ru/url.php'
] as $url
) {
// parse request
$requestData = [];
parse_str(file_get_contents("php://input"), $requestData);
// send requests
$cURL = curl_init();
curl_setopt_array(
$cURL,
[
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $requestData
]
);
$response = curl_exec($cURL);
// обрабатываем ответ от других ваших доменов
if (is_bool($response)) { // т.к. строка может быть пустой, а функция вернет string|bool, по факту это string|false
// где-то выше ловите это исключение и в logger его
throw new \DomainException('Received a bad response from url: ' . $url);
}
curl_close($cURL);
}
Дока по созданию плагина: https://www.dreamhost.com/blog/how-to-create-your-first-wordpress-plugin/