订阅购买后的过期日期无效

时间:2013-07-29 08:31:57

标签: android google-play in-app-billing subscriptions

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

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

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

每月订阅的示例:

是:
initiationTimestamp:1374433559436(7:05 pm)
validUntilTimestamp:1377155159436(上午7:05) - >初始时间+ 1个月+12小时

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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

这就是我在app的后端如何解决它的问题。