gpt4 book ai didi

php - 如何捕获 Shopify Webhook 发送的 HTTP POST 请求

转载 作者:IT王子 更新时间:2023-10-29 00:20:41 37 4
gpt4 key购买 nike

我有点菜鸟,并且不怕承认,我正在从事这个项目作为一种学习经验,以便更好地使用 php 和服务器端脚本/ing 处理。

我正在尝试想出一种使用 Shopify 并在每次从我的 Shopify 购物车完成订单时同时更新服务器外数据库的方法。因此,例如,有人从我的在线商店购买了东西,我希望它更新我的家庭数据库库存以显示它现在少了一件商品。

我得出的结论是,最好的方法是设置一个 webhook notification向我的服务器发送 HTTP POST 请求,然后我会让我的服务器捕获 POST 并将其解析为 XML。然后,我将通过更新我的数据库的 php 脚本读取 XML。

我对 php 没有问题,但我似乎无法弄清楚如何在我的服务器上捕获 webhook。 Webhook 要求我提供一个 URL 来发送 POST 请求,我的问题是;网址是什么?

我做了一些研究,发现您可以通过多种方式捕获 POST 请求,通过 html、php、Access-Control-Allow-Origin 等。但是,由于我对此还是个新手,所以我真的不明白如何做这些。我试过使用 HTML 隐藏操作表单,但似乎无法让它捕获 XML。

我想要做的就是让 webhook 发送其 POST 请求,并将其捕获为 .xml。这样我就可以在每天结束时读取 xml,并相应地更新数据库。

如果您能想到更好或更简单的方法来做到这一点,请务必给我您的建议。我希望这是安全的,所以像 Access-Control-Allow-Origin 这样的方法是不可能的。

长话短说:我必须在我的服务器上做什么才能捕获 webhook 通知?我的服务器上应该有什么脚本来提供给 webhook?如何编写回调脚本?

最佳答案

http://example.com/whatever.php 创建一个公共(public) URL ,其中 example.com 是您的域名,whatever.php 是您可以编辑的 PHP 文件。

然后把这段代码放到whatever.php中:

<?php
$webhookContent = "";

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

error_log($webhookContent);
?>

然后在 Shopify 后台您可以创建一个新的 webhook 并将其指向 http://example.com/whatever.php ,当您单击 Shopify 后台中的“测试 webhook”按钮时,Shopify 将 POST 到您上面的脚本,该脚本应依次将 webhook 的主体写入您的 PHP 错误日志。

关于php - 如何捕获 Shopify Webhook 发送的 HTTP POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10937198/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com