用戶端參考資源

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.loadPaymentDat 使用的 PaymentDataRequest Java 物件。

fromJson(java.lang.String)

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

PaymentData

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

toJson()

將 Google Pay API 回應輸出為 JSON 格式字串。如要進一步瞭解 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)

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

引數

姓名 類型 說明
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

建構 PaymentDataRequestUpdate Java 物件,以便在 BasePaymentDataCallbacks.onPaymentDataChanged 中傳回。

fromJson(java.lang.String)

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

withUpdatedSavedState(Bundle)

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

PaymentAuthorizationResult

建構 PaymentAuthorizationResult Java 物件,以便在 BasePaymentDataCallbacks.onPaymentAuthorized 中傳回。

fromJson(java.lang.String)

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