我已经在我的应用程序中成功实现了Apple iOS IAP并在沙箱中进行了测试 . 效果很好 .
我担心用户可以用IAP购买东西,将其下载到我的应用程序中,然后向Apple投诉并获得退款 . 没有明显的退款方式报告给我的应用程序 . 它们是否被排除在“恢复”操作期间收到的产品列表之外?是否有一些未记录的交易类型会在退款时在我的SKPaymentTransactionObserver中异步显示?
现在我的运营假设我需要在执行恢复之前删除用户的IAP事务,并且退回的任何内容都不会出现在已恢复的事务列表中 . 这是正确的方法吗?有没有办法在沙箱中测试这个?
有没有人在 生产环境 环境中看到过退款并且可以解释它们是如何工作的?
4 回答
The in-app purchasing guide讨论了"cancellation"订阅的概念 . 这是我见过的唯一一个讨论这个主题的地方 .
关于取消日期字段的Further details也可以在App Store收据验证文档中找到 .
解码收据后,您可以获得取消日期,该日期将告诉您以下内容:
已退款,但您的应用根本不会收到任何通知 . 无论是应用程序内购买,应用程序下载还是任何其他iTunes内容,即使用户要求退款,用户仍可以使用该内容 .
策略是:
您在数据库中保存了与用户帐户关联的
latest_receipt
("MIIUJgYJKoZIhvc..." base64)字段 .每天查询apple以验证所有收据,方法是从已保存的
latest_receipt
字段向他们发送base64收据 .在收据中,检查是否有
cancellation_date
字段 . 如果找到它,请按documentation处理:同样您还要检查订阅续订(请检查
expires_date_ms
字段) .我今天收到了Apple Developer Relations的回复(2018年12月6日):
因此,我们有它 .