构建应用程序
快速启动
指导
教程
建筑渠道
快速启动
指导
教程
建筑店面
管理货币
指导
合作伙伴信息
成为合作伙伴
入门
POS解决方案
ERP解决方案
PIM解决方案
OMS的解决方案
营销解决方案
运输解决方案
付款解决方案

人则概述

Webhooks在BigCommerce商店上发生特定事件时通知应用程序。例如:

  • 创建一个订单,
  • 产品的库存变化
  • 一件商品被添加到购物者的购物车中

本文是BigCommerce上的Webhook行为概述。有关完整的Webhook API参考,请参阅API参考> Webhooks。有关为某些商店事件创建Webhook的逐步Webhooks教程,请参阅人教程

创建Webhook.

要创建Webhook,请发送一个邮政请求/商店/ {{STORE_HASH}} / v2 /钩子

Webhooks Post请求标题和身体

https://api.bigcommerce.com/stores/ {store_hash}} }/v2/hooks.X-auth-token:{{ACCESS_TOKEN}}内容类型:应用/ JSON.接受:应用/ JSON.{“范围”“存储/订单/更新”“目的地”“https://665b65a6.ngrok.io/webhooks”“is_active”真正的}

在请求赛道中打开

响应

{“created_at”1580329317.“目的地”“https://665b65a6.ngrok.io/webhooks”“头”“ID”20172984“is_active”真正的“范围”“存储/订单/ *”“stort_hash”“{{store_hash}}”“更新_at”1580329317.}

笔记

在创建Webhook之后,大型信息可以花一分钟开始制作邮政请求到目标服务器。

回调的有效载荷

当webhook被触发时,BigCommerce将会邮政轻型有效负载,其中包含发送到目标服务器的事件详细信息。例如,数据对象存储/订单/ statusUpdated只包含订单ID

statusUpdated POST请求正文

{“stort_id”11111.“生产者”“商店/ abcde”“范围”“商店/订购/ stateUpdated”“数据”{“类型”“秩序”“ID”173331}“哈希”“3F9EA420AF83450D8F9F78B08C8AF25B2213637”}

然后可以进行请求/订单/ {id}获取完整的订单详情。

有关特定webhook事件及其有效负载的更多信息,请参见Webhook事件

处理回调

要确认已收到回调而无需问题,目标服务器必须返回一个http 200.响应 - 没有响应,或者在外面的任何响应200范围表示未收到回调。如果发生这种情况,Webhook服务将使用重试机制如下面所描述的。

需要建立一个快速webhook目的URL测试?看到用于调试和测试webhook的工具

回调重试机制

Webhooks服务将尽最大努力将事件提供给目的地回调URI。在采取任何其他速度的动作之前,应用程序响应回调是最好的做法。换句话说,触发了BigCommerce的回调重试机制。

WebHook服务可以快速地连续将许多有效载荷发送到单个URI。因此,我们在2分钟的窗口中使用滑块**来计算每个远程目标的回调响应成功率。当Webhook服务收到A时2xx.响应时,目的地的成功计数将增加。如果没有响应或远程服务器超时,则目的地的失败计数将增加。根据这两个数字,计算出一个成功率。

以下过程将确定目标URI是否被列入黑名单:

  1. 一旦webhook被触发,服务会检查你的回调URI是否在黑名单上
  2. 如果不是,我们基于其成功/失败计数计算远程服务器的成功比率两分钟的窗口
  3. 如果在两分钟窗口中的任何点,则下面的成功/故障比率90%,目的地URI的域将被列入黑名单三分钟
  4. 在此时间触发的Webhook事件将发送到我们的重试队列以后稍后在域名不再被列入黑名单,并且一旦重试队列时间经过

一旦域不再被列入黑名单,就会在发生时发送所有新的WebHook请求。将根据重试队列计划发送到黑名单期间发送到重试队列的事件请求。

然后,Webhook Dispatcher将尝试多次重试(在越来越多的间隔),直到达到最大重试限制。

队列 间隔
派遣.Retries.60 60秒后重试
dispatches.retries.180 180秒后重试
派遣.300 300秒后重试
dispatches.retries.600 600秒后重试
dispatches.retries.900 900秒后重试
dispatches.retries.1800 1800秒后重试
派遣.3600 3600秒后重试
dispatches.retries.7200 7200秒后重试
dispatches.retries.21600 21600秒后重试
派遣.Retries.50400. 在50400秒后重试
dispatches.retries.86400 86400秒后重试

在最后一次重试尝试之后(累计)48小时在第一次投递尝试后),webhook将被取消激活,并会发送一封电子邮件到订阅应用程序注册的电子邮件地址。要重新激活webhook,设置is_active回到真正的通过制作A.请求/钩/ {id}

笔记

  • 域名对给定滑动窗口的成功率才计算到One hundred.发送Webhook请求 - 这意味着域名将不会被列入第一款One hundred.在时间窗口内发送webhooks(不管响应如何),因为所有的webhook都是在当前时间窗口达到最小阈值之前发送的。
  • webhook调度程序根据整个订阅域的响应来决定是否需要重试,而不是根据特定的钩子。例如,domain.com/webhook-1.domain.com/webhook-2.由于两个url属于同一个域,因此失败和重试时会相互影响。

app后卸载操作

为避免累积未使用的Webhooks,BigCommerce会自动删除应用程序卸载的已注册的Webhooks。

安全

为了确保webhook回调请求的安全性,BigCommerce采取了以下预防措施:

  • Webhook有效载荷包含有关商店和事件的最小信息
  • Webhook有效载荷被发送过来TLS-encrypted联系
  • 创建Webhook请求接受可选标题对象,可用于验证回调请求

POST包含头对象的请求

{“范围”“商店/购物车/ LIEITEM / *”“目的地”“{{destanct_url}}”“is_active”真正的“头”{“用户名”“你好”“密码”“再见”}}

BigCommerce将在向目标服务器进行回调请求时发送指定的标头 - 这允许通过基本身份验证保护Webhook目的地URI。

故障排除

没有接收Webhook事件回调

如果你的应用程序没有返回http 200.收到webhook事件载荷后,BigCommerce认为这是一个失败。BigCommerce将继续努力48个多小时。最后,BigCommerce会发送一封电子邮件到应用程序注册时设置的电子邮件地址,并通过设置is_active国旗为false。

要查看webhook是否仍然是活动的,做一个得到请求/钩/ {id}并检查值is_active响应的财产。

如果你收到一封电子邮件,或者发现is_active错误的,尝试以下内容:

  • 验证应用程序正在响应回调函数200回复。
  • 通过访问https://globalsign.ssllabs.com/验证目标服务器是否有有效的TLS/SSL设置。以下任何一个都将导致TLS/SSL握手失败:
    • 自签名证书
    • 证书上的主机名与DNS设置中的主机名不匹配
    • 密钥和信任商店未配置所需的中间证书

一旦问题解决,设置is_active真正的通过制作A.请求/钩/ {id}- BigCommerce开始再次发送事件回调请求。

做的时候没有200个应答邮政/钩子

  • 检查机器制作时检查TLS / SSL配置邮政请求。
  • 核实邮政请求包含所需的http.标题:

创建钩子发布请求

https://api.bigcommerce.com/stores/ {store_hash}} }/v2/hooks.接受:应用/ JSON.内容类型:应用/ JSON.X-auth-token:{{ACCESS_TOKEN}}

工具

以下是一个集合,可用于帮助开发,测试和调试Webhooks:

工具 描述
ngrok 轻松设置隧道之间本地主机ngrok用于测试机器上的回调请求的公共URL
Webhook测试仪 测试webhook和其他类型的http.在您的浏览器中请求

相关资源伟德棋牌大全

文章

端点