Google 钱包:加载 FullWallet 仅在更改 MaskedWallet 后有效
Google Wallet: loading FullWallet only works after changing MaskedWallet
我正在 Google 钱包中实现一个 Android 应用程序,运行 遇到一个奇怪的问题。
我可以很好地加载 MaskedWallet 请求,但是当我准备下订单并尝试加载 FullWallet 时,我收到 ERROR_CODE_INVALID_PARAMETERS 错误响应。但是,如果我之后立即调用 changeMaskedWallet
方法,然后创建与我第一次尝试时相同的 FullWalletRequest,FullWallet 就会正常运行。
知道这里会发生什么吗?
编辑:
我创建 FullWalletRequest 的代码如下所示:
return FullWalletRequest.newBuilder()
.setGoogleTransactionId(googleTransactionId)
.setCart(Cart.newBuilder()
.setCurrencyCode("USD")
.setTotalPrice(String.format("%.2f", totalPrice))
.setLineItems(buildLineItems(cartModel))
.build())
.build();
当我调用 changeMaskedWallet
时,我收到相同的 googleTransactionId 并将其传递给此构建器。另外,我尝试添加商家交易 ID,但这没有帮助。不幸的是,我无法 post 生成订单项的逻辑,但我基本上使用 LineItem.newBuilder()
生成器来创建我需要添加的每个项目。
所以基本上我没有正确设置行项目,但很难判断,因为没有错误记录到 LogCat。我改为使用 Gson 序列化 Wallet 对象,并通过肉眼检查生成的 Json。不是最好的方法,但对我有用。
我正在 Google 钱包中实现一个 Android 应用程序,运行 遇到一个奇怪的问题。
我可以很好地加载 MaskedWallet 请求,但是当我准备下订单并尝试加载 FullWallet 时,我收到 ERROR_CODE_INVALID_PARAMETERS 错误响应。但是,如果我之后立即调用 changeMaskedWallet
方法,然后创建与我第一次尝试时相同的 FullWalletRequest,FullWallet 就会正常运行。
知道这里会发生什么吗?
编辑: 我创建 FullWalletRequest 的代码如下所示:
return FullWalletRequest.newBuilder()
.setGoogleTransactionId(googleTransactionId)
.setCart(Cart.newBuilder()
.setCurrencyCode("USD")
.setTotalPrice(String.format("%.2f", totalPrice))
.setLineItems(buildLineItems(cartModel))
.build())
.build();
当我调用 changeMaskedWallet
时,我收到相同的 googleTransactionId 并将其传递给此构建器。另外,我尝试添加商家交易 ID,但这没有帮助。不幸的是,我无法 post 生成订单项的逻辑,但我基本上使用 LineItem.newBuilder()
生成器来创建我需要添加的每个项目。
所以基本上我没有正确设置行项目,但很难判断,因为没有错误记录到 LogCat。我改为使用 Gson 序列化 Wallet 对象,并通过肉眼检查生成的 Json。不是最好的方法,但对我有用。