InApp订阅已过期,如何检查服务器端

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了InApp订阅已过期,如何检查服务器端相关的知识,希望对你有一定的参考价值。

我有一个过期的android InApp订阅,当我从Google API请求状态时,我得到了这个JSON

{"autoRenewing":false,"cancelReason":0,"countryCode":"UK","developerPayload":"","expiryTimeMillis":"1509398029890","kind":"androidpublisher#subscriptionPurchase","paymentState":null,"priceAmountMicros":"1390000","priceCurrencyCode":"EUR","startTimeMillis":"1508863149755","userCancellationTimeMillis":"1509313119197"}

paymentState字段是null而不是0,1或2

expiryTimeMillis字段过去,但这不是检测过期订阅的可靠方法,因为Google本身建议检查过去具有此字段的任何订阅的状态,有宽限期,用户仍然能够更新

我在官方文档上找不到关于如何检查订阅是否过期的任何明确指示。在移动应用程序上很容易检测到期:如果订阅没有显示它已过期,如果它显示在产品列表上,那么它没有过期

答案

如果有cancelReason订阅被取消(或设置为取消),如果expiryTimeMillis也已过去,则订阅现已完全取消。

如果订阅处于宽限期,则会将expiryTimeMillis动态更新为未来(到宽限期结束时)。

以上是关于InApp订阅已过期,如何检查服务器端的主要内容,如果未能解决你的问题,请参考以下文章

修改/删除现有的inapp订阅产品

已退款的应用内购买订阅是不是显示为已过期? [关闭]

在inAPP服务器模式购买中,服务器最后将哪些内容提供给设备进行订阅?

Android GCM 服务器错误:设备订阅已过期

如何从网络扩展中停用按需连接 ***?

如何检查 Google Play 订阅是不是在客户端或服务器端处于活动状态