我有一个可更新的每月订阅的Android应用程序。在这个应用程序中,我想在下个月他的订阅继续时通知用户一些信息。
正如我可以看到商家中心的续订(orderId以例如.0,..1结尾),但在查询库存时,我的采购订单ID与当前情况相同。
{
"orderId": "GPA.XXXX-YYYY-XXXX-ZZZZZ",
"packageName": "my.packageName",
"productId": "my.sku",
"purchaseTime": 1456398623654,
"purchaseState": 0,
"developerPayload": "mypayload",
"purchaseToken": "token",
"autoRenewing": true
}
令我烦恼的是,buyTime也不会改变。
所以我的问题是:如果有任何方法可以在应用程序中检测到更新发生了吗?
编辑:
我正在使用Google Play Developer API获取订阅信息,然后自行计算续订次数。
答案 0 :(得分:7)
所有重复的订单ID在orderId
JSON字段的INAPP_PURCHASE_DATA
字段中返回(在V3中),每个周期性事务都附加一个整数。
为了帮助您跟踪与给定订阅相关的交易, Google付款为所有人提供基本商家订单号 订阅的重复发生并表示每个重复交易 通过附加一个整数,如下所示:
GPA.1234-5678-9012-34567 (base order number)
GPA.1234-5678-9012-34567..0 (first recurrence orderID)
GPA.1234-5678-9012-34567..1 (second recurrence orderID)
GPA.1234-5678-9012-34567..2 (third recurrence orderID) ...
但由于local caching,您可能无法获得最新信息。因此,请尝试从应用程序管理器清除缓存,首先查看您是否获得了正确的购买信息。
由于购买查询方式不可靠,因此从后端调用Google Play开发人员Purchases.subscriptions: get API以获取Purchases.subscriptions resource将更有意义,该{{3}}将返回当前订阅的expiryTimeMillis
。< / p>
{
"kind": "androidpublisher#subscriptionPurchase",
"startTimeMillis": long,
"expiryTimeMillis": long,
"autoRenewing": boolean,
"priceCurrencyCode": string,
"priceAmountMicros": long,
"countryCode": string,
"developerPayload": string,
"paymentState": integer,
"cancelReason": integer
}
答案 1 :(得分:4)
订阅的购买数据仅在订阅处于活动状态时返回。 如果订阅到期,那么当您查询库存时,您将无法获得此购买数据。
摘自link
如果定期付款失败(例如,因为客户的付款 信用卡已变为无效),订阅不续订。该 getPurchases()方法不会返回失败或过期的订阅。