用戶端參考資源

com.google.android.gms.wallet 說明文件包含多個 Google Pay API 版本的完整程式庫說明文件。以下摘要說明最適用於最新版 Google Pay API (2.0 版) 的物件和方法:

錢包

為測試或正式環境產生 PaymentsClient。

範例

mPaymentsClient = Wallet.getPaymentsClient(
  this,
  new Wallet.WalletOptions.Builder()
      .setEnvironment(WalletConstants.ENVIRONMENT_TEST)
      .build()
);

PaymentsClient

與 Google Pay API 互動的用戶端。

isReadyToPay(IsReadyToPayRequest)

使用 isReadyToPay(IsReadyToPayRequest) 方法,判斷使用者是否能從 Google Pay API 傳回付款方式。

如果裝置支援 Google Pay,且使用者已儲存付款方式或可新增付款方式,IsReadyToPay 會傳回 true。如要判斷使用者是否已在 Google Pay 中儲存付款方式,請將 IsReadyToPayRequest.existingPaymentMethodRequired 設為 true。

loadPaymentData(PaymentDataRequest)

顯示 Google Pay 付款畫面,讓使用者選取付款方式和選用參數。

IsReadyToPayRequest

建構適合與 PaymentsClient.isReadyToPay() 搭配使用的 IsReadyToPayRequest Java 物件。

fromJson(java.lang.String)

從 JSON 格式的字串建立 IsReadyToPayRequest Java 物件。如要瞭解所提供 JSON 格式字串的預期結構,請參閱 IsReadyToPayRequest 物件參考資料。

PaymentDataRequest

建構適合與 PaymentsClient.loadPaymentData 搭配使用的 PaymentDataRequest Java 物件。

fromJson(java.lang.String)

從 JSON 格式的字串建立 PaymentDataRequest Java 物件。如要瞭解所提供 JSON 格式字串的預期結構,請參閱 PaymentDataRequest 物件參考資料。

PaymentData

處理 Google Pay API 的 JSON 格式回應,以便在應用程式中使用。

toJson()

以 JSON 格式字串輸出 Google Pay API 回應。如要進一步瞭解 JSON 物件的結構,請參閱 PaymentData 物件參考資料。

PayButton

public void initialize(ButtonOption buttonOptions)

便利方法可用來初始化 Google Pay 付款按鈕,並套用最新的 Google Pay 品牌宣傳樣式。

引數

名稱 說明
buttonOptions 用於設定 Google Pay 付款按鈕的物件。如要瞭解可設定的屬性,請參閱 ButtonOptions。

範例:使用自訂設定初始化付款按鈕:

PayButton googlePayPaymentButton = layoutBinding.googlePayPaymentButton;
JSONArray paymentMethods = new JSONArray().put(getBaseCardPaymentMethod());
googlePayPaymentButton.initialize(
       ButtonOptions.newBuilder()
               .setButtonTheme(ButtonConstants.ButtonTheme.DARK)
               .setButtonType(ButtonConstants.ButtonType.BUY)
               .setCornerRadius(100)
               .setAllowedPaymentMethods(paymentMethods.toString())
               .build()
);

public void setVisibility(View view)

便利方法會設定付款按鈕的顯示設定。

引數

名稱 說明
View

View.VISIBLE 會將付款按鈕設為顯示 (預設)。

View.GONE 會對使用者隱藏按鈕。

範例:

payButton.setVisibility(View.VISIBLE);

public void setOnClickListener(View.OnClickListener listener)

使用者點選 Google Pay 付款按鈕時,系統會呼叫這個方法。

引數

名稱 說明
listener 點擊事件傳送至 Google Pay 付款按鈕時,要呼叫的事件監聽器回呼。

BasePaymentDataCallbacksService

基礎服務類別,用於託管 Google Play 服務在 PaymentsClient.loadPaymentData(PaymentDataRequest) 流程中啟動的付款資料回呼。

在應用程式中擴充這項服務,並在 AndroidManifest.xml 中使用 com.google.android.gms.permission.BIND_PAYMENTS_CALLBACK_SERVICE 權限和 com.google.android.gms.wallet.callback.PAYMENT_DATA_CALLBACKS 的意圖篩選器宣告這項服務。

createPaymentDataCallbacks()

傳回 BasePaymentDataCallbacks 的實作,以處理傳入的回呼事件。每個回呼事件呼叫一次。

BasePaymentDataCallbacks

抽象基礎類別,包含商家實作的付款資料回呼處理常式,可支援動態價格更新和付款授權。

onPaymentDataChanged(intermediatePaymentData, onCompleteListener)

這個方法會處理付款畫面中的付款資料變更,例如運送地址和運送選項。

引數

hello
名稱 類型 說明
intermediatePaymentData IntermediatePaymentData 這個物件包含付款畫面中選取的地址和運送選項。詳情請參閱 IntermediatePaymentData。
onCompleteListener OnCompleteListener<PaymentDataRequestUpdate> 用於解析更新交易資訊、運送選項和付款資料錯誤的事件監聽器。將 PaymentDataRequestUpdate 例項傳遞至 complete()。

範例

override fun onPaymentDataChanged(
    intermediatePaymentData: IntermediatePaymentData,
    onCompleteListener: OnCompleteListener<PaymentDataRequestUpdate>
) {
    val paymentDataRequestUpdateJson = handlePaymentDataChanged(intermediatePaymentData.toJson())
    val update = PaymentDataRequestUpdate.fromJson(paymentDataRequestUpdateJson.toString())
    onCompleteListener.complete(update)
}

onPaymentAuthorized(paymentData, onCompleteListener)

在付款畫面中授權付款時,系統會呼叫這個方法。

引數

名稱 類型 說明
paymentData PaymentData 包含所要求購物者資料的物件。詳情請參閱 PaymentData。
onCompleteListener OnCompleteListener<PaymentAuthorizationResult> 用於解析授權結果的事件監聽器。將 PaymentAuthorizationResult 例項傳遞至 complete()。

範例

override fun onPaymentAuthorized(
    paymentData: PaymentData,
    onCompleteListener: OnCompleteListener<PaymentAuthorizationResult>
) {
    val paymentAuthorizationResultJson = handlePaymentAuthorized(paymentData.toJson())
    val result = PaymentAuthorizationResult.fromJson(paymentAuthorizationResultJson.toString())
    onCompleteListener.complete(result)
}

IntermediatePaymentData

處理傳遞至 BasePaymentDataCallbacks.onPaymentDataChanged 的中繼回呼資料。

toJson()

以 JSON 格式字串輸出回呼要求資料。如要進一步瞭解 JSON 物件的結構,請參閱 IntermediatePaymentData 物件參考資料。

getLastSavedState()

傳回 Bundle,其中包含先前疊代回呼期間儲存的狀態。

PaymentDataRequestUpdate

建構要在 BasePaymentDataCallbacks.onPaymentDataChanged 中傳回的 PaymentDataRequestUpdate Java 物件。

fromJson(java.lang.String)

從 JSON 格式的字串建立 PaymentDataRequestUpdate Java 物件。如要瞭解所提供 JSON 格式字串的預期結構,請參閱 PaymentDataRequestUpdate 物件參考資料。

withUpdatedSavedState(Bundle)

附加更新後的狀態 Bundle,以便在回呼叫用之間保留。

PaymentAuthorizationResult

建構要在 BasePaymentDataCallbacks.onPaymentAuthorized 中傳回的 PaymentAuthorizationResult Java 物件。

fromJson(java.lang.String)

從 JSON 格式的字串建立 PaymentAuthorizationResult Java 物件。如要瞭解所提供 JSON 格式字串的預期結構,請參閱 PaymentAuthorizationResult 回應物件參考資料。