php - 使用 PHP 转换 WooCommerce Webhook 有效负载

标签 php json wordpress woocommerce webhooks

我已经使用 WooCommerce 设置了我的第一个 Webhook,以便在下新订单时通知我的数据库服务器。 Webhook 已设置并由我的服务器发送/接收 - 我不想编写一个 PHP 页面来解析 Webhook 的有效负载,以便我可以将带有订单详细信息的新记录写入我的 CRM 数据库。

我在获取 Webhook 的内容时遇到问题。根据 WooCommerce 内部 Webhook 的日志,请求详细信息为(我缩写了内容 JSON 数据):

Headers:

 user-agent: WooCommerce/2.6.4 Hookshot (WordPress/4.6.1)
 content-type: application/json
 x-wc-webhook-source: http://example.com/
 x-wc-webhook-topic: order.created
 x-wc-webhook-resource: order
 x-wc-webhook-event: created
 x-wc-webhook-signature: xxxxxxxxxxxxxxxxxxx=
 x-wc-webhook-id: 3233
 x-wc-webhook-delivery-id: 94

Content:

{"order":{"id":3242,"order_number":3242,"order_key":"wc_order_57f1dbe5bcf03","created_at":"2016-10-03T04:17:41Z", .....

它正在执行 POST 请求,但我无法检索 POST 数据,例如

$postData = var_export($_POST, true);       
error_log($postData, 0);

不返回任何 JSON 数据。我正在寻求以下方面的帮助:

  1. 检索 Webhook 在 POST 请求中发送的 JSON 数据
  2. 帮助了解如何解析 JSON 的每个元素以插入适当的数据库字段

最佳答案

这最终对我有用:

$webhookContent = "";

    $webhook = fopen('php://input' , 'rb');
    while (!feof($webhook)) {
        $webhookContent .= fread($webhook, 4096);
    }
    fclose($webhook);

关于php - 使用 PHP 转换 WooCommerce Webhook 有效负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39825053/

相关文章:

linux - 如何配置wordPress?

jquery - 在移动版本中禁用下拉菜单

wordpress - Docker wordpress multisite - 要公开哪些端口?

php - 无法使用 MAMP 通过本地主机建立与 MySQL 的连接

php - 无法使用 jquery 将 xml 数据发布到服务器端(php)

javascript - d3 Choropleth 的 JSON 格式

.net - 使用 serilog 记录 json

php - 如何禁用在 Laravel Jetstream 中为新注册用户创建新团队的功能?

php - JSON_NUMERIC_CHECK 根本行不通

javascript - 将 2D PHP 数组转换为 2D Json 对象以在图形上绘制