2

在客户端中使用Google Play 计费库( GPBL ) 2时,第一个续订 实时开发者通知( RTDN )在订阅到期22 小时后到达。

这种差距可能会导致拒绝我们为用户提供服务。

使用客户端中的GPBL 1.2.2,续订RTDN在订阅到期前 2 小时到达。

重现步骤:

在 android 客户端应用程序中使用任何GPBL版本 2+。(使用GPBL 2.0.3、2.1.0、2.2.0测试)

1) 在 Google Play 上购买订阅(在客户端)

经测试:

  • 7 天试用付费订阅。

  • 5 分钟、15 分钟、30 分钟测试订阅(对于测试订阅,使用GPBL 2 时, RTDN 会在到期后 10 秒到达,而使用GPBL 1时会在到期前 2 分钟到达。)

以下示例中使用的5 分钟测试订阅:

2)验证购买(后端)

GET https://www.googleapis.com/androidpublisher/v3/applications/[packageName]/purchases/subscriptions/[subscriptionId]/tokens/[token]
  • 回复:
{
  "expiryTimeMillis": 1584703350967, // "2020-03-20T11:22:30.967Z"
  "autoRenewing": true,
  "priceCurrencyCode": "CZK",
  "priceAmountMicros": 159990000,
  "paymentState": 1,
  "orderId": "GPA.3399-3829-9285-87596",
  "acknowledgementState": 0
}

3)确认购买(后端)

POST https://www.googleapis.com/androidpublisher/v3/applications/[packageName]/purchases/subscriptions/[subscriptionId]/tokens/[token]:acknowledge

{
  "developerPayload": null
}
  • 响应 200(空体)

4)等待续订通知(后端)

  • 收于 1584703361173 纪元毫秒// "2020-03-20T11:22:41.173Z"
{
  "countryCode":"CZ",
  "developerPayload":"",
  "kind":"androidpublisher#subscriptionPurchase",
  "orderId":"GPA.3399-3829-9285-87596..0",
  "priceCurrencyCode":"CZK",
  "autoRenewing":true,
  "expiryTimeMillis":1584703770967, // "2020-03-20T11:29:30.967Z"
  "startTimeMillis":1584702935111, // "2020-03-20T11:15:35.111Z"
  "priceAmountMicros":159990000,
  "paymentState":1,
  "purchaseType":0
}

通知比原来的过期时间晚了 10 秒!

我知道的唯一区别是 Android 客户端中的不同GPBL版本和GPBL 2所需的购买确认调用。

只有第一个续订通知会延迟。随后的续订通知是准时的,每次到期前 2 分钟。

问题:

有什么办法可以在到期前获得第一次续订通知吗?

感谢您的任何提示或建议!

4

0 回答 0