Cra*_*aig 45 in-app-purchase ios
我已经在我的应用程序中成功实现了Apple iOS IAP并在沙箱中进行了测试.效果很好.
我担心用户可以用IAP购买东西,将其下载到我的应用程序中,然后向Apple投诉并获得退款.没有明显的退款方式报告给我的应用程序.它们是否被排除在"恢复"操作期间收到的产品列表之外?是否有一些未记录的交易类型会在退款时在我的SKPaymentTransactionObserver中异步显示?
现在我的运营假设我需要在执行恢复之前删除用户的IAP事务,并且退回的任何内容都不会出现在已恢复的事务列表中.这是正确的方法吗?有没有办法在沙箱中测试这个?
有没有人在生产环境中看到过退款并且可以解释它们是如何工作的?
应用内购买指南讨论了"取消"订阅的概念.这是我见过的唯一一个讨论这个主题的地方.
有关取消日期字段的更多详细信息,也可以在App Store收据验证文档中找到.
cancellation_date
Run Code Online (Sandbox Code Playgroud)
解码收据后,您可以获得取消日期,该日期将告诉您以下内容:
对于Apple客户支持取消的交易,取消的时间和日期.
策略是:
您将latest_receipt("MIIUJgYJKoZIhvc..." base64) 字段保存在与用户帐户关联的数据库中。
每天您通过从保存的latest_receipt字段向 Apple 发送 base64 收据来查询 Apple 以验证所有收据。
在收据中,您检查是否有cancellation_date字段。如果找到,请根据文档进行处理:
将取消的收据视为从未进行过购买。
您还可以以同样的方式检查订阅续订(检查expires_date_ms字段)。
我今天(2018年12月6日)收到Apple开发者关系的回复:
你好约翰尼斯,
不幸的是,在回答您的问题时,没有支持的方法来检测用户已联系Apple Care并从应用内购买消耗品获得退款。我可以推荐给您的唯一选择是提交API增强请求,以使API可用于应用程序,以检测是否向应用程序内购买用户提供了退款。目前,此支持实际上仅适用于提供可自动续订的应用内购买的应用。
您可以使用Apple Developer Bug Report网页-http://bugreport.apple.com提交增强请求。
由于这是一个增强请求类型的问题,因此我将安排从您的帐户中扣除此事件,以备将来使用。
因此,我们有它。
退款已提供,但您的应用根本没有收到任何通知。无论是应用内购买、应用下载还是任何其他 iTunes 内容,即使用户要求退款,他们仍然可以使用这些内容。