我已经阅读了很多关于iOS的应用内购买内容,包括所有Apple的文档,并且没有找到任何关于从后端服务器购买的内容。
困扰我的一块拼图是用户在iOS上购物的情况,在完成后,应用程序收到了收据。当用户丢失互联网连接时,它会将其发送到后端服务器以进行验证和自定义逻辑。接下来发生的事情是用户看到一个苹果的对话框说"购买已完成"虽然货物没有到达申请表(在我的情况下,它是可消耗的虚拟货币)。
所以我认为一个干净的解决方案就是与后端服务器进行通信以便进行购买,如果互联网连接丢失,则不会进行任何购买(可以通过多个通信步骤完成)。
在我上述情况的情况下,人们做了什么?向用户显示一个对话框,说"与服务器通信"只是为了让他在重试将收据发送到后端服务器时看到任何进展?
我会喜欢这方面的一些最佳实践提示。
一些信息:我的后端服务器是.NET 4.5 WCF Web服务
答案 0 :(得分:1)
答案很简单:NO。
这是因为使用Apple ID进行购买,Apple不希望您分享这些凭据。
在沟通/验证收据时,您应该自己关心所有可能出错的事情。
请记住,用户可以恢复以前的购买恢复交易,因为您购买的是消耗类型,您应该注意使已经消费的收据无效。
你可以实现这样的系统:
如果客户端由于错误或超时而从未收到经过验证的响应,您可以重试该操作或保留在队列中以进一步检查,通知用户存在错误。