配置出站 Webhook 以预订事件
您可以订阅SterlingStore Engagement事件,并将其发布到您的 Webhook 端点,这样您就能实时收到数据更新通知。
注意:与网络钩子相关联的事件消息的清除期为 90 天。
过程
- 使用下列其中一个授权协议来设置 Webhook 端点:
- OAuth
- JWT。 使用 RSA256 和 HMAC256
注意: Store Engagement 无法连接到带有自签名证书URL。 因此,若您将 HTTPS 和 TLS 指向安全 webhook,则必须使用由证书颁发机构签发且被 Java™ 11 JRE 接受的证书。 - 要使用 "
POST /tenantId/v1/webhooksAPI,请使用 "Create WebhookAPI 配置 webhook。- 若您使用 OAuth 作为身份验证方法,请参照以下示例:
API 名称:
POST /tenantId/v1/webhooksAPI 请求有效内容:{ "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/webhooksAPI 请求有效内容:{ "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 的受众。
- 若您使用 OAuth 作为身份验证方法,请参照以下示例:
- 预订您希望 Webhook 从 Sterling Store Engagement接收的事件。使用
Create Event Subscription AssociationAPI 来调用POST /tenantId/v1/events/eventCode/subscriptionAPI。例如,要订阅库存调整事件,请使用POST tenantId/v1/events/inventoryAdjustment/subscriptionAPI 请求有效内容:{ "webhooks": [ "webhook_ID_1", "webhook_ID_2" ] } - 访存事件消息。 有时,您可能希望获取以前发布的事件消息,以进行诊断。 您可以使用
Get Event Messages for Event Code或Get 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=1631028483epochMilli整数值提供。 - 使用
GET /tenantId/v1/events/eventCode/webhook/webhookId/messages?&failedToSend=false可获取针对特定eventCode和webhookId成功发布的所有事件消息。 例如,要获取成功发布到网络钩子webhook_id的库存调整事件的所有eventMessages,请使用GET tenantID/v1/events/inventoryAdjustment/webhook/webhook_id/messages?failedToSend=false
- 使用