客户端参考文档

com.google.android.gms.wallet 文档包含适用于多个 Google Pay API 版本的库的完整文档。 以下是与最新版 Google Pay API(2.0 版)最相关的对象和方法的摘要:

Google 钱包

为测试环境或生产环境生成 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

基础服务类,用于在 PaymentsClient.loadPaymentData(PaymentDataRequest) 流程中托管由 Google Play 服务发起的付款数据回调。

在应用中扩展此服务,并在 AndroidManifest.xml 中使用 com.google.android.gms.permission.BIND_PAYMENTS_CALLBACK_SERVICE 权限和 com.google.android.gms.wallet.callback.PAYMENT_DATA_CALLBACKS 的 intent 过滤器声明此服务。

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 响应对象参考文档。