iOS自动续订订阅:收据验证流程

15

我正在实现自动续订的订阅场景,其中收据验证将由我的服务器端代码处理。根据苹果的文档,我将从NSBundle获取收据数据,并将该数据传递给我的服务器,服务器将联系苹果验证收据并通知应用程序结果。

现在,我的问题与收据验证相关的必要流程有关:

  1. 如果用户购买了订阅,我的收据会自动更新以包含来自该购买的信息吗?如果是这样,是否需要在购买后立即验证该收据或者直接“解锁”应用程序?

  2. 什么情况下我的收据会丢失在NSBundle中?如果发生这种情况,我应该使用SKReceiptRefreshRequest刷新收据,并将其发送到服务器进行验证。

  3. 如果用户在不同设备上安装应用程序并还原其购买restoreCompletedTransactions,我会同时自动获得收据吗?我想在还原后验证收据以确保有有效订阅,对吧?

  4. 当我的服务器尝试验证收据时,如果该收据无效,在应用程序端应该发生什么?刷新收据(这将要求用户提供凭据),然后再次将其传递给服务器进行新的重新验证?


瑞,你已经弄清楚这个的所有细节了吗?如果你(或其他人)能回答这个问题就太好了。 - the_critic
您还可以查看有关收据验证的常见问题解答:https://blog.apphud.com/receipt-validation/ - apphud
1个回答

15
当服务器试图验证一个无效的收据时,应用应该提示用户出现问题并要求重新登录、刷新收据并再次将其传递到服务器进行验证。

我建议告知用户您不认为收据有效,并提供重试选项。调用SKReceiptRefreshRequest,再次将收据发送到您的服务器。如果仍然失败,则再次显示该选项。

如果用户进行了欺诈交易,我怀疑他们不会向您或苹果发起投诉。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接