问题解决的关键是使用正确的版本号,这是在初始化All-in-One SDK时设置的。下面是一个Java代码示例,它使用正确的版本号并显示UPI为支付选项。
PaymentsClient paymentsClient = PaymentsClient.newBuilder()
.setEnvironment(environment)
.setGooglePayVersion(GOOGLE_PAY_VERSION)
.build();
IsReadyToPayRequest.TransactionInfo transactionInfo = IsReadyToPayRequest.TransactionInfo.newBuilder()
.setTotalPriceStatus(TotalPriceStatus.FINAL)
.setTotalPrice("10.00")
.setCurrencyCode("USD")
.build();
IsReadyToPayRequest isReadyToPayRequest = IsReadyToPayRequest.newBuilder()
.setTransactionInfo(transactionInfo)
.addAllAllowedPaymentMethods(getAllowedPaymentMethods())
.build();
paymentsClient.isReadyToPay(isReadyToPayRequest)
.addOnCompleteListener((task) -> {
try {
boolean result = task.getResult(ApiException.class);
if (result) {
// Payment is possible
// UPI is shown as a payment method
}
}
请注意,关键部分是设置正确的GOOGLE_PAY_VERSION。在这个示例中,它被设置为“2019”(即版本“v2”)。