更详细的解释-
1) 用户已经拥有订阅
在这种情况下,当您调用 billingClient.queryPurchases() 时,它会返回一个 PurchaseResult。这包含诸如purchaseToken 和sku 以及packagename 之类的详细信息。每次应用启动或恢复 MainActivity 时都会进行此调用,因为如果有人离线购买您的 IAP,您还需要 acknowledge 购买(更多关于此 here)
这意味着您也可以让用户“管理”订阅,因此链接到的深层链接是:
https://play.google.com/store/account/subscriptions?sku=skuName&package=packageName
2) 用户即将购买订阅:
执行此操作的方法是捕获您在 Play 控制台中创建的 SUBS IAP 的 productId 或 Sku。然后你构建flowParams,然后你就可以调用了
val flowParams = BillingFlowParams.newBuilder()
.setSkuDetails(skuDetails)
.build()
billingClient.launchBillingFlow(activity, flowParams)
如果成功,这意味着你会得到两个东西:BillingResult 和 MutableList<Purchase>。如果BillingResult是OK,并且返回的列表不为空,则购买成功。该对象还具有sku 和packageName,因此您可以使用与上述相同的深层链接,让用户访问Manage 他们的订阅。
3) 用户已取消订阅,并且订阅已过期,但处于Resubscribe 规定的任何here 期限条件内
这是您显示此深层链接的时间:
https://play.google.com/store/account/subscriptions,这样他们就可以恢复或重新订阅他们之前拥有的 Sku。
附言需要注意的一件事是Play Store 应用程序支持多个用户。因此,只有在 Play Store 应用选择了正确的用户时,深层链接才会起作用。