【问题标题】:In-app purchase sandbox server returning multiple transactions for one receipt [duplicate]应用内购买沙箱服务器为一张收据返回多笔交易[重复]
【发布时间】:2015-03-12 14:25:40
【问题描述】:

现在,当我向沙盒服务器 (sandbox.itunes.apple.com) 发送一笔交易的收据时,我会收到与 Apple 帐户关联的所有交易的信息。这是预期的行为吗?有没有其他人遇到过这种情况?

【问题讨论】:

    标签: ios iphone ipad in-app-purchase storekit


    【解决方案1】:

    是的,收据包含有关应用程序进行的所有交易的信息。但是你应该考虑一个非常重要的问题:

    消耗品的应用内购买收据被添加到 购买时的收据。它保存在收据中,直到 您的应用程序完成了该交易。在那之后,它被删除 下次更新收据时从收据中提取 - 例如, 当用户进行另一次购买或您的应用明确时 刷新收据。

    非消耗品的应用内购买收据, 自动续订订阅、非续订订阅或免费 订阅无限期地保留在收据中。

    https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html

    【讨论】:

    • 当交易状态更新时,它将通过调用方法通知您注册为 SKPaymentTransactionObserver 的对象 - paymentQueue:updatedTransactions: 。之后,您应该查看交易状态,如果是“已购买”,您应该将购买的商品提供给用户。
    • 已更新的 SKPaymentTransaction 包含大量有关交易的信息,包括具有 productIdentifier 和其他有用属性的 SKPayment
    • 在您的服务器从 Apple 获得响应后,您应该解析整个响应并相应地更新您的服务器模型。您不能只获得收据的更改部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-19
    • 2013-07-20
    • 1970-01-01
    • 2011-09-30
    • 2020-05-13
    • 2016-08-31
    • 1970-01-01
    相关资源
    最近更新 更多