本文档介绍了如何从 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. 可选更改。