【问题标题】:Receiving empty string on webhook request PHP在 webhook 请求 PHP 上接收空字符串
【发布时间】:2022-01-15 10:31:45
【问题描述】:

我正在尝试从 webhook 中提取客户信息,但是当我尝试打印时收到空字符串。这是我的端点 URL:

这是我的 PHP 代码:

<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
$data = file_get_contents('php://input');
$acion=json_decode($data,true);

var_dump($acion);
exit();
?>

我的网页上打印了 NULL。非常感谢任何帮助。

【问题讨论】:

  • 你如何调用/测试端点?
  • 我认为这一行是为此服务的:$data = file_get_contents('php://input'); ?
  • 该行仅表示您的脚本需要一个 JSON 编码的请求正文,而不是您如何测试它。 NULL 表示它没有得到那个 JSON。
  • 那我该怎么办?
  • 在下面查看我的答案并开始了解 HTTP 请求。

标签: javascript php api rest webhooks


【解决方案1】:

您的脚本需要一个有效的 JSON 编码请求正文,因此您应该相应地对其进行测试。您不能简单地在 Web 浏览器中访问 URL,因为没有以这种方式发送的请求正文。相反,您需要使用一些能够发送此类请求的工具,例如邮递员:

正如你在上面的截图中看到的,给定正确的输入,输出也是正确的。

【讨论】:

  • 我现在将在 Postman 中检查它。我可以从端点以某种方式访问​​ PHP 数据,因为我需要在网页上打印它吗?谢谢。
  • 我需要从支付提供商那里接收客户信息,我仍然在邮递员中获得 NULL 值。
【解决方案2】:

您的代码没有错误。 您获得 NULL 的原因可能是您收到的数据不是 JSON 格式。 您可以通过打印 $data 变量而不用json_decode() 解码来检查它

<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
$data = file_get_contents('php://input');

echo $data;
exit();
?>

第二个原因可能是您通过 GET 请求接收数据。然后您可以使用$_GET[] 访问数据。

【讨论】:

    猜你喜欢
    • 2013-07-08
    • 2020-12-25
    • 2013-09-02
    • 1970-01-01
    • 2015-05-23
    • 2013-05-31
    • 2021-10-12
    • 2021-06-14
    • 1970-01-01
    相关资源
    最近更新 更多