Laravel Cashier中WebhookReceived与WebhookHandled的区别是什么?
Laravel Billing 中
WebhookReceived 与 WebhookHandled 的核心区别 二者核心差异集中在触发时机、适用场景、携带数据三个维度,你觉得表现一致通常是因为只用到了原始webhook载荷,没有接触到时序和处理结果相关的逻辑:
- 触发时机不同
WebhookReceived是Billing组件刚接收到webhook请求、还未执行任何内置默认处理逻辑时触发,是整个webhook处理流程的最前置节点。WebhookHandled是Billing组件完成了对应webhook事件的所有内置默认处理(比如修改订阅状态、记录支付记录、处理逾期逻辑等)之后才触发,是webhook处理流程的后置节点。 - 适用场景不同
WebhookReceived适合做前置操作:比如全量webhook请求日志落库、自定义来源校验、特殊事件拦截(如果你不想让系统执行某类webhook的默认逻辑,可以在这个事件的监听器中直接终止流程)。WebhookHandled适合做后置扩展操作:比如订阅续费成功后给用户发通知、支付完成后给账户加权益、同步处理结果到内部业务系统等,这时候获取到的业务数据已经经过内置逻辑处理,不会出现时序错误。 - 携带数据差异
WebhookReceived仅携带未修改的原始webhook请求载荷。WebhookHandled除了原始载荷之外,还会携带内置处理器的处理结果、关联业务模型实例(比如订阅模型、支付单模型)、处理状态标识等扩展数据。
内容的提问来源于stack exchange,提问作者I am L
相关产品推荐
相关产品推荐

