如何在不刷新收据的情况下检测应用内购买的退款?

问题描述

我正在尝试找出如何检测非消耗性应用内购买的退款。问题是退款后,设备上的原始收据不会自动更新。

在应用启动期间,我每次都需要致电SKReceiptRefreshRequest,这可能会提示用户输入AppleID凭据。因此,这种解决方案是不够的,也不值得。

有什么方法可以将旧收据发送到后端并在那里进行刷新以获取cancellation_date属性(如果存在)?

也许https://buy.itunes.apple.com/verifyReceipt已经做到了吗?不幸的是,无法在沙盒环境中进行测试,因为我无法获得购买测试的退款。

解决方法

如果发生退款,您可以使用Apple服务器到服务器的通知来通知您的后端。 https://qonversion.io/blog/handling-refunds-server-to-server-notifications-skadnetwork-in-ios-14/