首页 文章

Apple如何通知iOS应用程序退还应用程序内购买(IAP)?

提问于
浏览
42

我已经在我的应用程序中成功实现了Apple iOS IAP并在沙箱中进行了测试 . 效果很好 .

我担心用户可以用IAP购买东西,将其下载到我的应用程序中,然后向Apple投诉并获得退款 . 没有明显的退款方式报告给我的应用程序 . 它们是否被排除在“恢复”操作期间收到的产品列表之外?是否有一些未记录的交易类型会在退款时在我的SKPaymentTransactionObserver中异步显示?

现在我的运营假设我需要在执行恢复之前删除用户的IAP事务,并且退回的任何内容都不会出现在已恢复的事务列表中 . 这是正确的方法吗?有没有办法在沙箱中测试这个?

有没有人在 生产环境 环境中看到过退款并且可以解释它们是如何工作的?

4 回答

  • 4

    The in-app purchasing guide讨论了"cancellation"订阅的概念 . 这是我见过的唯一一个讨论这个主题的地方 .

    关于取消日期字段的Further details也可以在App Store收据验证文档中找到 .

    cancellation_date
    

    解码收据后,您可以获得取消日期,该日期将告诉您以下内容:

    对于Apple客户支持取消的交易,取消的时间和日期 .

  • 4

    已退款,但您的应用根本不会收到任何通知 . 无论是应用程序内购买,应用程序下载还是任何其他iTunes内容,即使用户要求退款,用户仍可以使用该内容 .

  • 4

    策略是:

    • 您在数据库中保存了与用户帐户关联的 latest_receipt ("MIIUJgYJKoZIhvc..." base64)字段 .

    • 每天查询apple以验证所有收据,方法是从已保存的 latest_receipt 字段向他们发送base64收据 .

    • 在收据中,检查是否有 cancellation_date 字段 . 如果找到它,请按documentation处理:

    对待已取消的收据,就像没有购买一样 .

    同样您还要检查订阅续订(请检查 expires_date_ms 字段) .

  • 9

    我今天收到了Apple Developer Relations的回复(2018年12月6日):

    Hello Johannes,遗憾的是,在回答您的问题时,没有支持的方法来检测用户是否已联系Apple Care并收到应用程序内购买耗材的退款 . 我可以推荐您的唯一选择是提交API的API增强请求,以便应用程序可以检测是否向应用内购买的用户提供了退款 . 目前,这种支持实际上仅适用于提供自动续订订阅应用程序内购买的应用程序 . 您可以使用Apple Developer Bug报告网页提交增强请求 - http // bugreport.apple.com由于这是一个增强请求类型问题,我将安排将此事件从您的帐户中扣除,以便在未来的问题 .

    因此,我们有它 .

相关问题