com.google.android.gms.wallet documentation包含了多个 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 |
|
示例:
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 的 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 响应对象参考文档。