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

Android 订阅购买后的过期日期无效,android,google-play,in-app-billing,subscriptions,Android,Google Play,In App Billing,Subscriptions,我有一个android应用程序,上面有应用内订阅。 在用户购买订阅后,我通过我们的后端通过Google API请求“validUntilTimestampMsec”和“InitiationTimestamMSEC” 返回的时间戳“initiationTimestamp”是正确的,表示用户进行购买的时间,但返回的时间戳“ValidUntiltTimeStamp”始终与我需要的实际有效时间相差+12小时。我用于检索日期的函数与这两个时间戳相似 这12个小时是从哪里来的?我怎样才能得到正确的时间。过期

我有一个android应用程序,上面有应用内订阅。 在用户购买订阅后,我通过我们的后端通过Google API请求“validUntilTimestampMsec”和“InitiationTimestamMSEC”

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

这12个小时是从哪里来的?我怎样才能得到正确的时间。过期日期也将在Google Play中错误显示给用户。

每月订阅的示例:

是:
启动时间戳:1374433559436(下午7:05)
ValidUnitTimeStamp:1377155159436(上午7:05)->初始时间+1个月+12小时

需要:
启动时间戳:1374433559436(下午7:05)

ValidUnitTimeStamp:1377111959(7:05pm)->初始时间+1个月(不含12小时)

编写一个函数,计算“正确”的有效时间。如果谷歌的回答不匹配,使用你计算的答案,否则,使用谷歌给出的答案

另外,请注意谷歌总是增加额外的时间,而不是其他方式。因此,如果你的函数返回“大于”谷歌,那么考虑谷歌的时间,否则你的函数的时间。
这就是我在应用程序后端解决问题的方法

我没有看到任何地方提到过这一点,但我认为谷歌在Shrinath的例子中保持了
v1
中的6个小时,现在在
v1
中保持了12个小时(就像你的例子中一样),基本上是为了保留一个时间缓冲区,以便从客户的账户中提取资金(这是谷歌负责的一项非常重要的交易),以及取消和重试请求。我看不出有什么办法可以解决这个问题,除了发出警告说可能需要12个小时才能看到新东西之类的东西

你从哪里得到validUntil?我似乎找不到重新运行它的api调用。这表示谷歌只支持每月和每年一次,这让人非常困惑。。正如你所看到的,谷歌返回了自epoch以来的过期时间,但我很感兴趣的是,这里有人问我12个小时的延迟:但由于主题无关而关闭,但他提到了6个小时,所以你可以试着问他是否得到了答案,但我认为额外的时间是取消的宽限期,重试请求等。感谢您的提示。我对谷歌的支持感到非常恼火。我把同样的问题贴了3次到相应的谷歌群组,没有被版主解锁。Android Bugtracker引导我找到了Google Play服务支持,支持人员回答:这是一个开发者问题,请咨询Google小组。手动计算过期日期不是问题,但它不能解决问题。在后端项目过期后,它仍然会在play store中保留几个小时(在我的例子中是+12小时)。用户将无法扩展订阅(他将收到消息:“已购买”),因此无法使用相应的内容。一旦检测到到期,立即启动订阅取消?:)我们还构建了一个CRON,它每15分钟运行一次,并重置即将过期的用户的订阅。这样,您最多会延迟用户购买15分钟。您确定吗?我认为,取消订阅并不意味着订阅不能立即提供。取消意味着:订阅将一直可用,直到达到正常的过期时间,但不会自动延长。它允许您在取消订阅后进行另一次订阅。这是我们想要的效果,所以我们选择使用它。我最近将版本从v1更改为v1_1。对我来说,差别是一样的。我只是想知道,对于这种行为没有官方的声明。你在6小时内也一样吗?还是改成了12?是的,我在任何谷歌网站上都看不到它。如果你愿意,我会认为这真的是一个超时时间。由于系统的固有性质,大型公司通常会在涉及支付责任时保留它。只是另一种想法,可能是某个地方的时区差异可能会导致这种情况:)但我不认为你会得到一个正式的答案,直到赏金不幸用完。谢谢你的承诺!1) v1和v1_1都得到了+12小时2)我检索到的initiationTimestamp是正确的,因此我暗示我这边没有对话问题3)苹果也是一家大公司,返回过期时间时不需要额外订阅。我更愿意自己选择:/Ohk。有趣的是,我环顾四周,看到许多其他国家的开发人员说v1需要6小时(有一个链接到一个俄罗斯安卓开发人员论坛,在翻译过程中,开发人员抱怨他发现了6小时的差异),所以可能有一些差异。苹果也是如此,但我认为Android/google play问题会随着Android实现的惊人碎片化而成倍增加,不同的版本和设备实现了不同的版本,这与iphone、ipad和ipad mini:D完全不同。如果找到解决方案,请在此处更新答案:)