PHP传入webhook处理

时间:2017-06-21 17:31:26

标签: php wordpress webhooks

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

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

在发送测试数据后,我无法从我的网站上看到任何请求..任何想法?

2 个答案:

答案 0 :(得分:2)

我会这样做来测试webhook。

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

这将在log.txt文件中返回var_dump数据,因为正如rickdenhaan在36分钟之前说的那样,您当前的webhook.php将数据返回到webhook而不是您的视图。

如果你没有正确的目录(755)

,你可能需要手动创建log.txt

我目前正在使用使用webhook的付款API。 Webhook将数据发送到X url,然后执行操作并将代码返回给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数据发送的内容执行操作。

答案 1 :(得分:1)

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

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

我的内容是JSON编码的,但我认为这样会很好:

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