1

首先,谢谢大家。

前提条件:我在申请中提供消耗品产品:

  1. 项目清单
  2. 用户通过 iap 购买商品。
  3. 在我的应用程序收到更新的Trancactions (Transaction) 之前,网络已断开连接。

所以我的服务器没有数据来验证收据。用户也无法获得“虚拟货币”。

谁能告诉我如何解决这个问题,或者给我一些提示。非常感谢。

4

1 回答 1

1

它是标准的客户端-服务器问题。如果客户端和服务器之间的连接被切断(由于超时或其他原因),常见的方法是重试请求。但是,如果您的 API 调用不是幂等的,并且多次调用 API 会多次影响您的系统状态,那么我们必须求助于做一些更聪明的事情。你有一些选择 -

  1. 有本地数据库。发生购买时,首先更新本地数据库中的状态。延迟将数据库从客户端同步到服务器,我听说 coredata 或 sqlite 非常好。用户不知道这一点,因为数据库是本地的,所以用户界面对用户来说会更加活泼。
  2. 第二种方法是 - 在 HTTP 调用失败的情况下。您不断重试,直到呼叫成功。
  3. 如果 API 是非幂等的,那么您需要有一个令牌的概念。即,如果初始调用成功,则首先在服务器端检查具有多次调用的相同令牌的 API 调用,仅当它再次执行失败时。前任。这在银行解决方案中非常重要。想象一下由于超时而从您的银行帐户中多次借记,并且有人编程为继续重试!

这就是我现在能想到的。试一试,告诉我们什么对你有用……

于 2013-02-22T08:02:05.793 回答