Shopify Webhook被多次调用

时间:2016-07-26 04:52:18

标签: cakephp shopify webhooks

在我的shopify商店中,我已经设置了订单创建webhook。 webhook指向Cakephp操作URL,该URL从webhook接收数据如下: -

$content = file_get_contents ( "php://input" );

之后,它将此订单数据保存到应用程序数据库: -

$orderData =array('order'=>$data['order_number'],'details'=>$content);
$orders = new Order ();
$orders->saveall($orderData);

现在的问题是,对于创建的每个单个订单,多次调用webhook。尽管它在第一次尝试中执行必要的操作,但Shopify无法识别呼叫成功并且一次又一次地调用它直到达到限制。达到限制后,webhook将从商店中删除。

我的问题是,在执行必要的操作后,我们是否需要向webhook调用发送任何类型的状态或响应。因为shopify webhook文档不是很清楚。他们声明webhook调用成功是根据HTTP状态200确定的。如何检查webhook调用返回的状态是什么?如何通过我的应用程序代码确保Shopify通知webhook成功,并且它不会调用对webhook的进一步调用?

2 个答案:

答案 0 :(得分:0)

为了澄清其他问题,您必须显式返回2XX HTTP代码,否则它将在48小时内重试19次,然后删除超出此范围的webhook。

答案 1 :(得分:0)

是的,您需要在5秒钟内向Shopify发送200条响应。否则,Shopify将在短时间内发送请求。

官方指南建议您存储Webhook数据并使用队列,线程或您喜欢的任何方式对其进行处理。之后,您会立即向Shopify返回200响应。

IMO,如果有许多Webhook请求发送给您,最好将Webhook接收者与应用服务器分开。您可以使用AWS Lambda或docker swarm进行此操作,以使webhook请求不会中断您的应用服务器。

来源:

  1. 时间限制:enter link description here
  2. 使用AWS Lambda的Webhooks:enter link description here