PHP 传入的 webhook 处理

PHP incoming webhook handling

我有一个第 3 方网站,其中包含发送到特定 url 的 webhook。我将其设置为发送到我网站上的空白页面(示例:www.mysite.com/webhook.php)

我在 webhook.php 中设置了一个 var_dump,它应该在 post 中显示任何信息或得到..我是 webhooks 的新手,可能只是不明白它们是如何工作的工作。我假设我可以在我的 php 文件中包含 var_dump($_POST) 来显示到达我网站的 HTTP 请求数组。

发送测试数据后,我在我的站点上看不到任何请求。有什么想法吗?

这是我如何将内容发送到我的应用程序:

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

嗯,我的内容是 JSON 编码的,但我认为这没问题:

$varname = file_get_contents('php://input');

我会这样做来测试 webhook。

<?php 
$fWrite = fopen("log.txt","a");
$wrote = fwrite($fWrite, var_dump($_POST));
fclose($fWrite);
?>

这将在 log.txt 文件中 return var_dump 数据,因为正如 rickdenhaan 36 分钟前所说,您当前的 webhook.php return 数据到 webhook不是你的观点。

如果您没有目录 (755)

的权限,您可能需要手动创建 log.txt

我目前正在处理使用 webhook 的付款 API。 Webhook 将数据发送到 X url 然后执行操作并将 return 代码发送到 webhook。所以 webhook.php 是我的订单是否已付款的地方...这是我所做的:

if ($payment->isPaid() == TRUE)
{
    /*
     * At this point you'd probably want to start the process of delivering the product to the customer.
     */
    $con->query("UPDATE orders SET bankno = '$bankno', status = 'paid' WHERE ordertr = '$ids'");


}
elseif ($payment->isOpen() == FALSE)
{
    /*
     * The payment isn't paid and isn't open anymore. We can assume it was aborted.
     */
    $con->query("UPDATE orders SET bankno = '$bankno', status = 'closed' WHERE ordertr = '$ids'");

}

因此,如果订单已付款,则在数据库中标记为已付款,如果未标记为已关闭。这显示了 webhook 的使用。根据 webhook 数据发送的内容执行操作。