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

时间:2017-11-01 09:15:37

标签: android mobile google-api in-app-purchase in-app-billing

我的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本身建议检查过去有此字段的任何订阅的状态,有宽限期用户仍然可以续订

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

1 个答案:

答案 0 :(得分:1)

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

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