概览
当顾客收到 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
通知后,你要负责存储和监控每笔退款的交易,并采取适当的操作。例如,你可以构建自己的游戏内货币余额调整逻辑,通过将通知与玩家账户或会话关联来处理已退款的交易。
重要信息
当你通过含有已退款交易的收据调用 verifyReceipt (英文) 端点时,JSON 响应中不会出现这些已退款交易,但自动续期订阅除外。
请在 App 内显示关联信息,以告知顾客你在退款后采取的任何操作。
识别退款滥用
通过将 REFUND
通知映射到你服务器上的玩家账户,减少退款滥用并识别一再退款的购买。监控和分析你的数据,以识别可疑的退款活动。
如果你跨多个平台提供内容,可在自己的服务器上随时更新用户账户的余额。利用 App Store 服务器通知,针对会对你的顾客造成影响的交易获取近实时状态更新。