如何找到iOS上用户丢失的应用内购买商品?

时间:2019-10-03 14:22:50

标签: ios itunes-store

所以我遵循了官方手册并执行了此操作:

https://developer.apple.com/library/archive/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html#//apple_ref/doc/uid/TP40010573-CH104-SW1

  1. 用户在应用中付费
  2. 应用程序从Apple获取收据信息
  3. 此收据信息已发送到我的服务器
  4. 我的服务器通过调用Apple API验证了收据并激活了客户端的成员身份

明显的问题是3.可能会失败。我有客户抱怨他们付了钱,他们要向我发送被扣除的金额,但我的服务器从未收到通知。而且我无法找到这些用户。是否可以通过客户电子邮件或交易ID搜索某些CP,以检查这是Photoshop截图还是有效的?

是否可以调用一些API来按客户的产品和电子邮件列出交易?

https://appstoreconnect.apple.com/-Apple CP对此毫无用处

2 个答案:

答案 0 :(得分:0)

没有任何方法可以将客户详细信息与您的交易详细信息相关联。只有苹果可以做到这一点。

我的第一个怀疑是您在购买过程中可能会遇到逻辑问题。如果实施正确,则第3步中的瞬态故障无关紧要。

您应该:

  1. 在应用启动后立即创建事务队列观察器。这样可以将任何待处理的交易发送给您的观察员
  2. 在观察者中进行购买交易时,您需要与服务器进行验证
  3. 仅当服务器收到您的购买记录已成功记录后,您才致电finishTransaction

这样,如果服务器出现问题或应用崩溃,则事务仍在队列中挂起。

如果您使用的是自动续订和/或非消耗性IAP,则我     强烈建议您在自己的网站上提供“恢复购买”按钮     用户界面。如果出现问题或何时出现错误,这对用户来说很简单     他们将移至新设备。

如果您有用户声称他们没有得到付款,那么您可以将他们推荐给Apple App Store支持人员,他们可以退款。

答案 1 :(得分:0)

如果第三步失败,则可以退回到本地验证,然后让用户通过此会话(或要求成功的一定数量的会话)。不幸的是,由于收据已加密,因此本地身份验证很麻烦。有关示例,请参见此链接:https://github.com/andrewcbancroft/SwiftyLocalReceiptValidator。您还可以将第3步的失败报告给您的分析工具,这样您就可以看到实际受到此问题影响的人(显然,只有在分析最终获得Internet连接后,此方法才有效。