本文件說明如何從 Google Play 帳款服務程式庫 (PBL) 第 6 或 7 版改用第 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. 選用變更。