事件
支付、游戏会话、KYC 检查、奖金、玩家资料或其他对象发生变化的记录。
建立系统间可靠的状态和事件投递:从消息创建和签名验证,到接收确认、重新投递及错误监控。
指定标识符、类型、时间、对象、状态及相关数据。
通过 HTTPS 发送带签名且具有有限超时时间的事件。
验证后保存事件,并快速返回成功的 HTTP 响应。
以逐步增加的间隔重试投递,并保留未投递事件以供排查。
发送方可能重试投递,因此接收方必须验证来源、确认接收,并确保每个事件仅应用一次。
支付、游戏会话、KYC 检查、奖金、玩家资料或其他对象发生变化的记录。
接收方验证并可靠保存事件后返回成功的 HTTP 响应。
重新投递和对账有助于在任一系统暂时不可用后恢复数据。
统一的消息结构可简化验证、路由、防重复及对不同事件类型的支持。
系统用于识别重复投递并查询处理历史的唯一值。
清晰、稳定的名称,用于定义发生的变化及其处理方式。
事件创建的日期和时间,使用约定格式和时区。
支付、玩家、回合、请求、奖金或其他对象的类型及标识符。
版本号有助于安全修改消息结构,而不影响现有集成。
原始请求、交易、会话或相关操作链的标识符。
品牌、项目、市场、环境、提供商及正确路由所需的其他数据。
处理变化或执行后续 API 请求所需的最小字段集合。
在改变 JSON 格式前,针对原始请求正文验证签名。
若事件时间超出允许窗口,应拒绝请求。
使用约定密钥以及 HMAC 或数字签名算法。
确认事件尚未应用,并保存验证结果。
发送方必须区分成功接收、临时错误和永久失败,接收方则应快速、明确响应。
确认事件已验证并可靠保存,可供后续处理。
响应发送方前不要执行耗时处理,应先保存事件。
在临时网络错误、服务不可用或无响应后重新尝试投递。
逐步延长尝试间隔,避免产生额外负载。
所有尝试用尽后,保留事件用于诊断及人工处理。
运营人员可重新发送选定事件,而无需创建新操作。
跟踪尝试次数、响应、最新错误及下一次投递时间。
当错误增加、重试用尽或队列中事件堆积时通知团队。
接收方不得依赖单次投递或严格的事件顺序。
测试成功投递、无效签名、重复事件、慢响应、乱序事件及故障后的恢复。
消息被修改、未知密钥、时间戳过期及不支持的算法。
同一事件会在处理完成前后多次到达。
接收方响应时间过长、连接中断,或确认响应未送达发送方。
最终状态先于中间状态到达,旧事件又晚于新事件被投递。
测试 HTTP 5xx 错误、DNS、TLS、请求频率限制以及重试次数完全耗尽的情况。
应能通过事件标识符查询所有尝试、响应、错误及人工重新投递结果。
验证安全、防重复、重新投递及错误监控后,才启用生产环境事件投递。