Work task 使用 PayPal 支付时,PayPal capture 可能先进入 PENDING,后端会把本地 PayPal checkout session 标记为 processing,并创建 paypal_processing 页面事件。
本次变更新增 PayPal processing 后续终态页面事件:当同一笔 PayPal checkout session 已经进入 processing,之后再进入失败或成功终态时,后端会额外创建对应的页面事件,用于提示 user 和 artist 当前 processing 结果。
| type | 说明 |
|---|---|
paypal_processing_failed | PayPal capture 已经从 processing 变为失败终态 |
paypal_processing_success | PayPal capture 已经从 processing 变为成功终态 |
这两个事件只在 PayPal checkout session 之前已经是 processing 时创建。
| PayPal 后续状态 | 新增页面事件 | 发送对象 |
|---|---|---|
PAYMENT.CAPTURE.DENIED / DECLINED / FAILED | paypal_processing_failed | user 和 artist 各一条 |
PAYMENT.CAPTURE.COMPLETED | paypal_processing_success | user 和 artist 各一条 |
普通的直接失败或直接成功不会创建这两个事件。也就是说,如果支付没有先经历 PayPal capture pending / 本地 processing,就不会生成 paypal_processing_failed 或 paypal_processing_success。
POST /api/worktask_page_event_list/list
type=paypal_processing_failed 或 type=paypal_processing_success 的页面事件。data 均返回对应 order 的 busable_info,包含 pay_type / work_task_id / price_change_id。POST /api/artist_center/worktask_page_event_list/list
type=paypal_processing_failed 或 type=paypal_processing_success 的页面事件。data 均返回对应 order 的 busable_info,包含 pay_type / work_task_id / price_change_id。| 字段 | 类型 | 说明 |
|---|---|---|
type | string | 新增 paypal_processing_failed / paypal_processing_success |
data_id | null | PayPal processing 相关事件不绑定独立业务表 id |
data | object | 当前支付 order 的 busable_info |
data.pay_type | string | stage_pay / full_pay / price_change |
data.work_task_id | number | work task id |
data.price_change_id | number or null | 改价支付时为 price change id,否则为 null |
is_close | boolean | 新事件创建时为 false,前端手动关闭后变为 true |
说明:列表接口当前只返回 is_close=false 的事件。因此 paypal_processing_success 如果要展示并允许用户手动关闭,初始 is_close 也是 false。
paypal_processing:展示 PayPal 支付处理中,通常不允许继续支付或取消原支付。paypal_processing_failed:展示 PayPal processing 已失败;work task 场景下原 order 已取消,用户可以重新发起支付并重新选择支付渠道。paypal_processing_success:展示 PayPal processing 已成功;该消息可以通过现有 page event close 接口手动关闭。event.data.pay_type 区分 stage_pay / full_pay / price_change。worktask.refresh 后应重新拉取 work task info 或 page event list。paypal_processing 的返回结构。