如何在 iOS 上查找用户丢失的应用内购买?
Posted
技术标签:
【中文标题】如何在 iOS 上查找用户丢失的应用内购买?【英文标题】:How to find user's lost in-app purchases on iOS? 【发布时间】:2019-10-03 14:22:50 【问题描述】:所以我按照官方手册,实现了这个:
https://developer.apple.com/library/archive/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html#//apple_ref/doc/uid/TP40010573-CH104-SW1
-
用户在应用内付款
应用从 Apple 获取收据信息
此收据信息已发送到我的服务器
我的服务器通过调用 Apple API 验证收据并为客户端激活会员资格
明显的问题是 3. 可能会失败。我有客户抱怨他们付款了,他们向我发送了被扣除金额的 SS,但我的服务器从未收到通知。而且我没有办法找到这些用户。是否有一些 CP,我可以通过客户电子邮件或交易 ID 进行搜索,以检查这是 Photoshop 截图还是有效截图?
是否有一些 API 可以调用来按产品和客户的电子邮件列出交易?
https://appstoreconnect.apple.com/ - Apple CP 对这个没用
【问题讨论】:
【参考方案1】:没有任何方法可以将客户详细信息与您的交易详细信息关联起来。只有苹果可以做到这一点。
我的第一个怀疑是您的购买过程中可能存在逻辑问题。如果正确实施,步骤 3 中的暂时性故障无关紧要。
你应该:
-
在您的应用程序启动后立即创建您的事务队列观察器。这将使任何待处理的交易都能够交付给您的观察者
当您在观察者中获得购买交易时,您会与您的服务器进行验证
只有在您从服务器收到成功记录购买的响应后,您才会致电
finishTransaction
。
这样,如果您的服务器出现问题或应用程序崩溃,事务仍会在队列中等待处理。
如果您使用的是自动续订和/或非消耗性 IAP,那么我 强烈建议您在您的 用户界面。如果出现问题或何时 他们转移到新设备上。
如果您有用户声称他们没有得到他们所支付的费用,那么您可以将他们推荐给可以为交易退款的 Apple App Store 支持。
【讨论】:
【参考方案2】:如果第三步失败,您可以退回到本地验证,然后让用户通过此会话(或在您要求它成功之前的一些会话)。不幸的是,本地身份验证很麻烦,因为收据是加密的。有关示例,请参见此链接:https://github.com/andrewcbancroft/SwiftyLocalReceiptValidator。您还可以将第 3 步的失败报告给您的分析工具,这样您就可以看到谁实际上受到了此问题的影响(显然,这仅在分析最终获得 Internet 连接时才有效。
【讨论】:
以上是关于如何在 iOS 上查找用户丢失的应用内购买?的主要内容,如果未能解决你的问题,请参考以下文章