我们有一台服务器,除了其他东西之外,还需要从第三方购买东西(通过API调用),然后再将耗材退回给用户。显然它会预先检查Apple收据。
处理服务器端应用内故障的最佳方法是什么,比如第三方服务是否失败?在这一点上,用户的体验是付费但没有收到消费品,再次尝试会使他们花更多的钱。
到目前为止,我已提出:
在设备上
然后在服务器上
提前致谢!
答案 0 :(得分:0)
我的方法是将其作为一种交易:
将您的步骤2拆分为2a,2b,2c和2d并涉及客户端服务器
=> 2a =检查我们是否没有使用收据(在我们的二手和已交付货物的内部数据库中)
- >如果不使用则送出
- >得到购买并做2b
=> 2b告诉服务器我们收到了数据!
=> 2c:等待客户确认 => 2cd =将收据标记为已烧毁(在我们的数据库中),因为我们已经交付了它
答案 1 :(得分:0)
据我了解,您的主要问题是与购买耗材相关的UI / UX。
我不知道您的耗材对用户是“可见/可用”的,但对我而言,关键是让用户明白与服务器的交易进入“暂时失败”状态。当您的应用程序下载遇到任何障碍时,这与App Store中的情况相同。它可以被标记为“加载/等待”,如果不是“购买”,你可以明确表示只需要下载耗材(“安装/重试/下载/回收”而不是“购买”,这将是一件好事。 )。
在同一个地方找到“在遇到问题时联系我们”选项也是非常好的。我不知道为什么你的第三方连接可能会失败,但如果它以不太零星的方式进行,我打赌不止一些用户需要抱怨。
关于问题的客户端 - 服务器协议方面,你所描述的对我来说似乎很好。这里的关键点是服务器跟踪已经成功声明的收据;客户原则上可以尝试多次重复使用收据,它只会在第一次尝试时成功(在服务器将收据标记为已交付之前)。如果您想要更高的弹性,我会从客户端向服务器引入明确的确认阶段,确认已成功考虑耗材。
希望它有所帮助。