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

How to detect a refund of an in-app purchase without refreshing receipt?

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

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

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

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

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