3

我有一个带有应用内订阅的安卓应用。用户购买订阅后,我通过 Google API 通过我们的后端请求“validUntilTimestampMsec”和“initiationTimestampMsec”。

返回的时间戳“initiationTimestamp”是正确的,表示用户进行购买的时间,但返回的时间戳“validUntilTimestamp”与我需要的实际有效时间始终相差 +12 小时。我用来检索日期的函数与两个时间戳相似。

12 小时从哪里来,我怎样才能得到正确的时间。对于 Google Play 中的用户,过期日期也会显示错误。

每月订阅的示例:

是:
initiationTimestamp: 1374433559436 (7:05pm)
validUntilTimestamp: 1377155159436 (7:05am) -> init-time + 1 month + 12 hours

需要:
initiationTimestamp: 1374433559436 (7:05pm)
validUntilTimestamp: 1377111959 (7:05pm) -> init-time + 1 个月没有 12 小时

4

2 回答 2

2

我没有在任何地方看到这一点,但我认为谷歌在v1Shrinath 的例子中保持了 6 小时和现在的 12 小时v1_1(看起来像你的例子),基本上是为了保持时间缓冲从客户的账户中提取资金(真的谷歌负责的重要交易),以及取消和重试请求。除了显示警告说可能需要长达 12 小时才能看到新的东西或类似的东西,我没有看到任何解决方法。

于 2013-08-06T16:59:45.087 回答
1

编写一个计算“正确”的有效时间的函数。如果 Google 的回复不匹配,请使用您计算的回复,否则,请使用 Google 提供的回复。

此外,请注意 Google 总是增加额外的时间,而不是其他方式。因此,如果您的函数返回“大于”Google 的,则考虑 Google 的时间,否则您的函数的时间。

这就是我在应用程序的后端解决它的方法。

于 2013-08-05T12:14:19.590 回答