是的,可以在安卓应用程序中使用Google Pay作为次要支付方式。以下是使用Google官方提供的API进行这项操作的示例代码:
2.创建Google Pay客户端: private fun createGooglePayClient(activity: Activity): PaymentsClient { val walletOptions = Wallet.WalletOptions.Builder() .setEnvironment(WalletConstants.ENVIRONMENT_TEST) // 使用测试环境 .build() return Wallet.getPaymentsClient(activity, walletOptions) }
集成Google Pay支付: private fun requestPayment(activity: Activity) { val googlePayClient = createGooglePayClient(activity) val request = createPaymentsRequest() googlePayClient.loadPaymentData(request) .addOnCompleteListener { task -> when { task.isSuccessful -> { val paymentData = task.result!! handlePaymentSuccess(paymentData) } task.result?.errorCode == AutoResolveHelper.RESULT_ERROR -> { val status = AutoResolveHelper.getStatusFromIntent(task.result?.intent!!) handlePaymentError(status.statusCode) } else -> { handlePaymentError(0) } } } }
创建付款请求: private fun createPaymentsRequest(): PaymentDataRequest { val transactionInfo = PaymentDataRequest.TransactionInfo.newBuilder() .setTotalPriceStatus(WalletConstants.TOTAL_PRICE_STATUS_FINAL) .setTotalPrice("10.00") .setCurrencyCode("USD") .build() val merchantInfo = PaymentDataRequest.MerchantInfo.newBuilder() .setMerchantName("Merchant Name") .build() return PaymentDataRequest.newBuilder() .setTransactionInfo(transactionInfo) .setMerchantInfo(merchantInfo) .build() }
处理支付成功: private fun handlePaymentSuccess(paymentData: PaymentData) { val paymentMethodToken = paymentData.paymentMethodToken if (paymentMethodToken != null) { val tokenJson = JSONObject(paymentMethodToken.token) val tokenId = tokenJson.getJSONObject("cardInfo") .getString("cardDetails") .getString("