文章

处理退款通知

响应用户就消耗型项目、非消耗型项目以及非续期订阅产品申请退款期间创建的通知。

概览

当顾客收到 App 内购买项目的退款时,App Store 服务器会发送近实时通知。如果您会跨多个平台提供内容 (例如游戏中的宝石或金币),并会在自己的服务器上更新玩家帐户余额,则能够接收退款通知就变得非常重要。解读并处理退款信息,并在 app 中告知顾客您在退款后采取的任何操作,以响应退款通知。

接收一次性购买的顾客退款通知

顾客会以多种方式请求退款,例如:

  • 联系 Apple 顾客支持并要求退款

  • 登录并使用 Apple 的自助服务工具 reportaproblem.apple.com (英文) 来请求退款

  • 向付款方式发行方申请退款

当 App Store 处理退款时,App Store 服务器会通过您配置的 URL 向您的服务器发送 REFUND 通知。您的服务器必须以 200 响应代码来回复这个 POST。要启用通知,请参阅“启用 App Store 服务器通知”。

REFUND 通知仅适用于消耗型项目、非消耗型项目和非续期订阅项目。要检测自动续期订阅项目的退款,请参阅“检测退款 (英文)”。

解读并处理退款通知

您的服务器负责解析并解读从 App Store 服务器发来的所有通知。对于 REFUND 通知,可从响应中识别具体的交易、产品 ID 和相关日期:

  • 通过查看 purchase_date 来选择最新交易,从而查找 unified_receipt.latest_receipt_info 中的 product_id 的最新交易。

  • App Store 发放退款的日期在这笔交易的 cancellation_date_ms 栏位中。

有关该响应的更多信息,请参阅“App Store 服务器通知 (英文)”。

在收到 REFUND 通知后,您要负责存储和监控每笔退款的交易,并采取适当的操作。例如,您可以构建自己的游戏内货币余额调整逻辑,通过将通知与玩家帐户或会话关联来处理已退款的交易。

请在 app 内显示关联信息,以告知顾客您在退款后采取的任何操作。

识别退款滥用

通过将 REFUND 通知映射到您服务器上的玩家帐户,减少退款滥用并识别一再退款的购买。监控和分析您的数据,以识别可疑的退款活动。

如果您跨多个平台提供内容,可在自己的服务器上随时更新用户帐户的余额。利用 App Store 服务器通知,针对会对您的顾客造成影响的交易获取近实时状态更新。