PayPal Webhook не отправляет данные POST - PullRequest
1 голос
/ 12 марта 2020

Сконфигурировал мой веб-крючок PayPal для успешного уведомления о всех событиях.

PayPal вызывает мой веб-крючок (простой сценарий), когда происходят события ... но не отправляет с ним никаких данных POST ....

Все PHP массивы пусты ( $ _ POST, $ _GET, $ _REQUEST ), кроме $ _ SERVER конечно.

Что происходит на? Симулятор webhook сообщает, что события успешно отправлены / поставлены в очередь ...

Массив $ _ SERVER содержит предложенные HTTP_PAYPAL _... заголовки и все ... ... но массив $ _ POST пуст.

Мой webhook записан следующим образом ...

<?php

require ('./ace-includes/ace_log.php');

ace_log(print_r($_POST, true));
ace_log(print_r($_REQUEST, true));
ace_log(print_r($_GET, true));
ace_log(print_r($_SERVER, true));

ace_sendlog("NOTIFY SCRIPT CALLED");

?>

1 Ответ

0 голосов
/ 12 марта 2020

Я понял это ...

Вы не можете использовать $ _POST для получения данных ....

Данные содержатся в файле HTTP, отправленном в сценарий.

В этом случае вы ДОЛЖНЫ использовать

file_get_contents('php://input');

для получения данных.

Так что для PayPal PHP webhooks вы бы сделали это ....

$json = file_get_contents('php://input');
$data = json_decode($json);

Это работает, и теперь я получаю все данные.

Это действительно должно быть задокументировано где-то ... где угодно ... но это не ... и не очевидно для начала PHP программист.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...