三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

沙盒环境下退款无REVOKE_REFUND_TRANSACTION通知

沙盒环境下退款无REVOKE_REFUND_TRANSACTION通知

问题背景

在沙盒环境下,对自动续费订阅商品申请退款后,退款成功仅收到REFUND事件通知,未收到REVOKE_REFUND_TRANSACTION撤销订阅事件通知。确认对该订阅仅执行了退款操作,未做其他变更。涉及订单:1786018359384.98A62EE4.xxxx,其中

currentProductId":"umns782HGJbmk298GJ11nbax"周期为「周」,1786018359384.98A62EE4.xxxx 支付成功时间 2026-08-06 20:12:47 通知类型:DID_NEW_TRANSACTION__INITIAL_BUY;1786018359384.98A62EE4.xxxx 退款时间2026-08-07 10:28:41 通知类型:REFUND。

原因分析

问题根本原因在于沙盒环境下的订阅时间换算机制与退款时机的叠加效应,分析如下:

关键因素拆解:

该退款是订阅过期后隔天完成的,且由于是沙盒订阅,根据沙盒时间换算,在退款之前,该订阅就已经超出保留期被系统自动清理(被清理等同于撤销)。后续的退款不会再触发REVOKE,预期在订阅过期时的EXPIRE通知,已经对该过期订阅完成了权益回收。

事件通知说明:

事件类型

触发时机

是否收到

EXPIRE

订阅到期进入保留期时触发

预期已收到(CP应在此阶段完成权益回收)

REFUND

退款成功时触发

已收到

REVOKE_REFUND_TRANSACTION

退款导致订阅撤销时触发

未收到(订阅已被清理,无需再撤销)

结论

属于预期行为,非系统缺陷。在订阅已超出保留期被自动清理后,退款不再触发撤销通知是正确逻辑,原因如下:

1. 订阅在过期时已通过 EXPIRE 通知告知开发者,开发者应在该阶段完成权益回收。

2. 订阅被清理后已不存在有效权益,退款操作仅产生退款资金记录。

3. 因此无需再次发送 REVOKE_REFUND_TRANSACTION 通知。

← 返回列表