客户端参考文档

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.loadPaymentDataPaymentDataRequest 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 服务启动的付款数据回调 within a PaymentsClient.loadPaymentData(PaymentDataRequest) 流程。

在您的应用中扩展此服务,并在 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 响应对象参考文档