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