应用内结算:ProductID和SubscriptionID是否相同?

Bev*_*vor 6 android in-app-purchase in-app-billing google-play-developer-api

我目前正在设计我的实施策略,以便在应用内结算中进行可能的状态更新(从已购买的状态到已取消的状态等等),这是一个非常令人头疼的问题,并且存在一个混乱:

我在应用程序中获取getPurchases().这给了我INAPP_PURCHASE_DATA包含表6的字段,其中包含以下字段:

autoRenewing,orderId,packageName,productId,purchaseTime,purchaseState,developerPayload,purchaseToken.

我想将一些变量发送到我的服务器(虽然只是buyToken似乎很有用),但有一些我不清楚的事情:
在服务器端,我想不断检查购买是否有效.我计划通过https://developers.google.com/android-publisher/api-ref/purchases/subscriptions/get执行此操作

但是这个请求需要packageName,subscriptionIdtoken.令牌是purchaseTokengetPurchases() ,但是是subscriptionId的productIdgetPurchases()

当您在Google Play中调用用于创建产品列表的手册时,可以在此处的标题中看到此处在步骤4 中将项目一次添加到产品列表单击"创建被管理产品"或"根据需要创建订阅".你必须在第5步设置productId.

如果productId == subscriptionId,为什么有两个Google Play Developer API请求,一个用于"产品",一个用于"订阅",那么订阅是不是产品呢?看到:

https://developers.google.com/android-publisher/api-ref/purchases/products/get https://developers.google.com/android-publisher/api-ref/purchases/subscriptions/get

第一个请求采用productId,但第二个请求是我没有的subscriptionId,但productId和subscriptionId是相同的.这非常令人困惑.

Bev*_*vor 14

差不多5(!)个月后,我在我的应用程序和后端服务器上完成了整个应用内计费实施.我现在可以确认productId == subscriptionId == sku.