从 Google Play 结算库版本 6 或 7 迁移到版本 8

本文档介绍了如何从 Google Play 结算库 (PBL) 6 或 7 迁移到 PBL 8,以及如何与新的可选订阅功能集成。

如需查看版本 8.0.0 的完整变更列表,请参阅版本说明

概览

PBL 8 改进了现有 API,并移除了之前已弃用的 API。此版本的库还包含一次性商品的新 API。

PBL 升级的向后兼容性

如需迁移到 PBL 8,您需要更新或移除应用中的一些现有 API 引用,如版本说明和本迁移指南的后续部分中所述。

从 PBL 6 或 7 升级到 PBL 8

如需从 PBL 6 或 7 升级到 PBL 8,请执行以下步骤:

  1. 更新应用 build.gradle 文件中的 Play 结算库依赖项版本。

    dependencies {
      def billingVersion = 8.0.0
      implementation "com.android.billingclient:billing:$billingVersion"
    }
    
  2. (仅适用于从 PBL 6 升级到 PBL 8)。在应用中处理与订阅相关的 API 变更。

    下表列出了在 PBL 8 中移除的与订阅相关的 API,以及您必须在应用中使用的相应替代 API。

    在 PBL 8 中移除了之前已弃用的 API 要使用的替代 API
    setOldSkuPurchaseToken setOldPurchaseToken
    setReplaceProrationMode setSubscriptionReplacementMode
    setReplaceSkusProrationMode setSubscriptionReplacementMode
  3. 更新 queryProductDetailsAsync 方法的实现。

    ProductDetailsResponseListener.onProductDetailsResponse 方法的签名发生了变化,这需要您在应用中更改 queryProductDetailsAsync 实现。如需了解详情,请参阅显示可供购买的产品

  4. 处理已移除的 API。

    从以下版本升级

    PBL 8 不再支持下表中列出的 API。 如果您的实现使用了任何这些已移除的 API,请参阅下表了解其对应的替代 API。

    在 PBL 8 中移除了之前已弃用的 API 要使用的替代 API
    queryPurchaseHistoryAsync API 请参阅查询购买历史记录
    querySkuDetailsAsync queryProductDetailsAsync
    enablePendingPurchases()(不带参数的 API) enablePendingPurchases(PendingPurchaseParams params)
    请注意,已废弃的 enablePendingPurchases() 在功能上等同于 enablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build())
    queryPurchasesAsync(String skuType, PurchasesResponseListener listener) queryPurchasesAsync
    BillingClient.Builder.enableAlternativeBilling BillingClient.Builder.enableUserChoiceBilling
    AlternativeBillingListener UserChoiceBillingListener
    AlternativeChoiceDetails UserChoiceDetails

    从以下版本升级

    下表列出了 PBL 8 中移除的 API,以及您必须在应用中使用的相应替代 API。

    在 PBL 8 中移除了之前已弃用的 API 要使用的替代 API
    queryPurchaseHistoryAsync API 请参阅查询购买历史记录
    querySkuDetailsAsync queryProductDetailsAsync
    enablePendingPurchases()(不带参数的 API) enablePendingPurchases(PendingPurchaseParams params)
    请注意,已废弃的 enablePendingPurchases() 在功能上等同于 enablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build())
    queryPurchasesAsync(String skuType, PurchasesResponseListener listener) queryPurchasesAsync

  5. (推荐)启用自动服务重新连接。

    如果在服务断开连接时进行 API 调用,Play 结算库可以尝试自动重新建立服务连接。如需了解详情,请参阅启用自动重新连接服务

  6. 可选更改。