2017-06-05 145 views
0

我已经创建了shopify应用程序,其中我使用了webhook进行结帐/更新。 Webhook工作正常,但我收到此错误消息。Shopify webhook无法成功回复

您在https://www.smsblitz.io/smsblitz/abondoned?shop=smsblitz.myshopify.com&user=iman%5Egemconsultinginc.org的检出/更新 网络挂接是 未能返回成功response.This网络挂接一直 尝试23次。如果您的webhook继续失败,将删除 ,并且您的应用程序将不会再收到任何通知。

请帮我解决这个问题。

谢谢

回答

0

你的webhook不能正常工作。它没有回应Shopify。所以,直到你解决这个问题,Shopify才会对失败进行计数并让你知道,不久之后,他们将停止Webhook,并且你将不得不重新创建它。

要解决这个问题,请将webhook发送到您的端点并验证它是否会返回200 OK。

+0

大卫你好, 感谢您的答复。 在我的webhook中,我已经放弃购物车数据,并使用php睡眠功能等待5分钟,然后发送短信给客户,这是工作正常。那么,你能否再解释一下我现在需要做什么? 谢谢 – TBI

+0

接收Webhook。触发后台工作来处理客户。发送Shopify 200 OK。确保你对Shopify的响应时间<5秒。您的问题是您使用SLEEP,这意味着Shopify永远不会获得您的200OK,这意味着它们会删除您的webhook。 –

0

最初我遇到了同样的问题。以下事情可能会被解决,以解决上述问题。

  • 不要等到处理通知中的数据时。在获取webhook数据后不久,发回200 OK状态代码,然后进行进一步处理。
  • 确保在php标记之前没有空白区域,或者在发送200状态代码以购物之前没有可用的回显语句,因为这将以错误标题已发送结束。
  • 不要随着定时器睡觉,因为shopify会等待5秒的时间窗口,并期望您的200状态码在该时间间隔之间。
  • 您可以将处理过的数据/标识保存到数据库中。 Shopify在19日左右发布了一个webhook通知(他们说,但有时候更多是真实的)。因此,您可以先与您的数据库一起检查webhook通知是否已由您处理。如果处理立即发送200 OK。

通过API创建的Webhooks比通过Shopify管理员手动创建的Webhook更可靠。 (虽然shopify声称他们对待他们一样。)

+0

Hello Debashis Dash, 感谢您的回复。 你的意思是说,当我从webhook收到响应,并收集数据后,我需要发送响应shopify像头(“HTTP/1.1 200 OK”);然后在相同的函数中做进一步的处理。好吗? $ Data = file_get_contents(“php:// input”); 此行后我需要添加标题(“HTTP/1.1 200 OK”);然后继续进一步的功能? 谢谢 – TBI

+0

绝对。并确保与webhook相关联的链接必须是全球可访问的链接。它不应该是一个本地链接。最好的做法是维护webhook数据获取和发送头在一个单独的php文件。发送标题200后,您可以通过CURL调用该函数。 (写入webhook数据的逻辑操作。) –

+0

Hello Debashis Dash, 感谢您的回应。你能否给我简单的例子,以便我可以帮助我更好地理解。 谢谢 – TBI