Мой Authorize.net webhook настроен правильно на стороне A.net, и когда я запускаю событие, чтобы получить уведомление, я получаю это в журнале ошибок:
Неустранимая ошибка PHP: необработанное исключение
«JohnConde \ Authnet \ AuthnetInvalidJsonException» с сообщением «Неверно»
JSON отправил уведомление Webhook в /…/AuthnetWebhook.php:67
Трассировки стека:
0 /…/webhook.php(23): JohnConde \ Authnet \ AuthnetWebhook -> __ construct (‘xxxxxxxxxxx …’, »,
Array)
1 {main} добавлено в /…/AuthnetWebhook.php в строке 67
Я могу успешно настроить webhook и получить историю уведомлений через библиотеку на Github. Вот код, который я использую в качестве моей конечной точки. Оба параметра allow_url_fopen и allow_url_include включены на моем сервере.
<?php
namespace myapplication;
use JohnConde\Authnet\AuthnetWebhook;
require('.../config.inc.php');
require('.../autoload.php');
$headers = getallheaders();
$payload = file_get_contents("php://input");
$webhook = new AuthnetWebhook(AUTHNET_SIGNATURE, $payload, $headers);
if ($webhook->isValid()) {
$transactionId = $webhook->payload->id;
$fp = fopen('results.json', 'w');
fwrite($fp, json_encode($webhook));
fclose($fp);
// Access notifcation values
// echo $webhook->eventType;
}
?>
Спасибо за любую помощь!
Ваша полезная нагрузка — пустая строка. Вы можете увидеть это в ошибке.
AuthnetWebhook->__construct('xxxxxxxxxxx...', '', Array)
Так
new AuthnetWebhook(AUTHNET_SIGNATURE, $payload, $headers);
Я не знаком с AuthnetWebhook
но я бы поспорил (если бы я был игроком), что переменная полезной нагрузки не должна быть пустой.
Решаемые. URL-адрес конечной точки был неверным. У меня был mysite.com/webhook.php и мне нужно www.mysite.com/webhook.php.