新一代平台

配置出站 Webhook 以预订事件

您可以订阅SterlingStore Engagement事件,并将其发布到您的 Webhook 端点,这样您就能实时收到数据更新通知。

注意:与网络钩子相关联的事件消息的清除期为 90 天。

过程

  1. 使用下列其中一个授权协议来设置 Webhook 端点:
    • OAuth
    • JWT。 使用 RSA256 和 HMAC256
    注意: Store Engagement 无法连接到带有自签名证书URL。 因此,若您将 HTTPS 和 TLS 指向安全 webhook,则必须使用由证书颁发机构签发且被 Java™ 11 JRE 接受的证书。
  2. 要使用 "POST /tenantId/v1/webhooksAPI,请使用 "Create WebhookAPI 配置 webhook。
    • 若您使用 OAuth 作为身份验证方法,请参照以下示例:

      API 名称: POST /tenantId/v1/webhooks

      API 请求有效内容:
      {
        "url": "http://host:11500/example",
        "credentials": {
          "clientId": "client id, Required for `OAUTH` authentication",
          "clientSecret": "client secret, Required for `OAUTH` authentication",
          "oauthURL": "http://host:11500/oauthToken"
        },
        "authenticationType": "OAUTH"
      在此处,
      • url 指的是用于接收事件消息URL。
      • clientId 指用于获取 OAuth 令牌的客户端ID。
      • clientSecret 指用于获取 OAuth 令牌的客户端密钥。
      • oauthURL 指的是用于获取 OAuth 令牌的 URL。
    • 如果使用 JWT 作为认证方法,请使用以下示例:

      API 名称: POST /tenantId/v1/webhooks

      API 请求有效内容:
      {
        "url": "http://host:11500/example",
        "credentials": {
          "iss": "The issuer of the JWT. Required for `JWT` authentication",
          "sub": "The subject of the JWT. Required for `JWT` authentication",
          "privateKey": "The private key to sign the JWT. Required for RSA256 algorithm",
          "privateKeyId":"The private key ID",
          "algorithm": "The algorithm to use for signing the JWT. Required for `JWT` authentication, possible values are RSA256,HMAC256",
          "secret": "The secret to sign the JWT. Required for HMAC256 algorithm",
          "audience": "The recipients for whom the JWT is intended"
        },
        "authenticationType": "JWT"
      }

      在此处,

      • iss 是 JWT 的签发者。
      • sub 是 JWT 的主题。
      • privateKey 是用于加密 JWT 的专用密钥。
      • privateKeyId 是用于加密 JWT 的专用密钥标识。
      • algorithm 是用于加密 JWT 的算法。

        仅支持RSA256和HMAC256两种加密类型。

      • 如果使用的是HMAC256 算法,secret是签署 JWT 的密文。
      • audience 是 JWT 的受众。
  3. 预订您希望 Webhook 从 Sterling Store Engagement接收的事件。
    使用 Create Event Subscription Association API 来调用 POST /tenantId/v1/events/eventCode/subscription API。
    例如,要订阅库存调整事件,请使用
    POST  tenantId/v1/events/inventoryAdjustment/subscription
    API 请求有效内容:
    {
        "webhooks": [
          "webhook_ID_1",
          "webhook_ID_2"
        ]
      }
  4. 访存事件消息。 有时,您可能希望获取以前发布的事件消息,以进行诊断。 您可以使用 Get Event Messages for Event CodeGet Event Messages for Webhook ,如以下示例中所示:
    • 使用 GET /tenantId/v1/events/eventCode/messages 可获取特定 eventCode的所有事件消息。 例如,要获取所有 eventMessages 以进行库存调整,请使用以下命令:
      GET  /tenantId/v1/events/inventoryAdjustment/messages
    • 使用 GET /tenantId/v1/events/eventCode/ messages?startDate=XXX&endDate=YYY 可获取在特定时间段内发布的特定 eventCode 的所有事件消息。 例如,要获取在日期范围之间发布的库存调整的所有 eventMessages :
      GET https://tenantId/v1/events/inventoryAdjustment/messages?startDate=1630510372&endDate=1631028483
      开始日期和结束日期以 "epochMilli整数值提供。
    • 使用 GET /tenantId/v1/events/eventCode/webhook/webhookId/messages?&failedToSend=false 可获取针对特定 eventCodewebhookId成功发布的所有事件消息。 例如,要获取成功发布到网络钩子 webhook_id 的库存调整事件的所有 eventMessages ,请使用
      GET tenantID/v1/events/inventoryAdjustment/webhook/webhook_id/messages?failedToSend=false