Как получить параметры веб-перехватчика - PullRequest
0 голосов
/ 06 мая 2020

С моего веб-сайта я пытаюсь сохранить данные на другом сервере, предварительный просмотр всего веб-перехватчика:

curl -H "Authorization: Token token=sfg999666t673t7t82" -H "Content-Type: application/json" -H 'Authorization: Bearer oibk2s757l0et81s47uhq47a89w7qbnv' -d '{   
   "entity":"order",
    "order_id":{{ item.entity_id }},
    "customer_id":{{ item.customer_id }},
    "increment_id":{{ item.increment_id }},
    "title": "New order placed",
    "message": "Your order has been placed , With Order Id {{ item.increment_id }} will let you know once processed",
    "type": 2
}' -X POST 'http://299.247.3.52/fcm/webhook/receive/index/'

Но следующий код не работает:

$json = json_decode(file_get_contents("php://input"), true);
Or 
print_r($_REQUEST)

Как сделать получить значения заголовка / сообщения?

Ответы [ 2 ]

0 голосов
/ 06 мая 2020
$json = json_decode(file_get_contents("php://input"), true);

Вам нужно перестать выполнять слишком много разных шагов за один go.

Здесь вы смешали две вещи вместе, каждая из которых может потерпеть неудачу по отдельности - вы не могли имеет любые фактические входные данные POST для чтения, или попытка декодирования того, что было прочитано как JSON, может потерпеть неудачу. В том виде, в каком вы это написали, вы можете посмотреть только то, что содержится в $json после, поэтому вы не сможете сказать , какой из этих двух шагов действительно не удался.

$request_body = file_get_contents("php://input");
$json = json_decode($request_body, true);

Теперь, если это не удается, вы можете проверить результат каждого шага отдельно. Вы можете сначала выполнить var_dump($request_body);, чтобы увидеть, действительно ли вы получили данные POSTed таким образом.

В этом случае вы, вероятно, обнаружите, что это было так, но попытаетесь декодировать его как JSON впоследствии не удалось.

И если вы действительно отправляете запрос cURL, как показано выше, то это не удивительно - потому что эти данные недействительны JSON для начала.

"order_id":{{ item.entity_id }},

Эти части в двойных фигурных скобках здесь определенно означают заполнители . Вам нужно сначала заменить их на фактические значения, прежде чем отправлять это. Здесь это должно быть что-то вроде "order_id":1234,, только тогда оно будет действительным JSON.

0 голосов
/ 06 мая 2020

сделайте запрос и в своем PHP коде. не в отдельном скрипте.

...