【问题标题】:When does app receipt get new transaction?应用收据何时获得新交易?
【发布时间】:2017-12-06 21:02:21
【问题描述】:

我有一个应用程序一直在使用现在已弃用的 pre-iOS 7 方法来实现 IAP,方法是查看到达我们的事务队列观察器的事务中包含的 transactionReceipt。那效果很好。观察者的新实现只跟踪是否报告了任何新事务(状态为SKPaymentTransactionStatePurchased),如果在队列中找到任何新事务,它会获取应用程序收据(不是@987654323 @) 并将其发送到服务器。

直到今天,我发现新交易始终在我从 Apple 收到的解密应用收据的“in_app”字段中。今天我正在测试订阅(据我所知),但注意到当我订购非订阅、非消耗性产品时,它的交易出现在“应用收据中的 in_app" 数组,直到我订购 另一个 非订阅、非消耗性产品。此时,我在“in_app”数组中看到了先前订购的产品,但没有看到新订购的产品。

Both以前购买的和新购买的物品都存在于“latest_receipt_info”数组中。我只会使用该数组而不是“in_app”,但直到我开始测试订阅后我才开始看到“latest_receipt_info”,所以我认为它并不总是存在。

问题:我错过了一步吗?在使用之前,我是否应该在我的事务队列观察器中刷新我的应用程序收据?如果我这样做,它会不会莫名其妙地提示用户输入他们的 Apple ID 凭据(他们只是下了订单并输入了他们的凭据;我不希望他们再次这样做)?

【问题讨论】:

    标签: ios in-app-purchase receipt-validation


    【解决方案1】:

    我不认为你错过了一个步骤。我确实认为消耗品购买没有立即显示在磁盘收据上很奇怪,但这可能是正常行为,我不确定。

    您总是可以触发收据刷新。如果用户刚刚购买了非消耗品,并且完成了购买流程,他们不应该看到另一个登录弹出窗口。

    另一种选择是使用服务器端的latest_receipt_info 作为您的事实来源。仅当您在请求 JSON 的 password 字段中发送您的 iTunes Connect 应用程序特定共享密钥时,此字段才会出现。

    就个人而言,我会使用latest_receipt_info

    【讨论】:

    • 我想你是这里唯一了解 IAP 的人。 :-)
    猜你喜欢
    • 2022-07-09
    • 1970-01-01
    • 1970-01-01
    • 2017-12-19
    • 2013-07-20
    • 2017-11-20
    • 2013-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多