使用https://github.com/android-pay/androidpay-quickstart尝试 Android Pay。以下是我为 Android pay 所做的微小更改,以绕过示例中的默认 Google 钱包实现。
在我的设备中安装了最新版本 (8.4.89) 的 Google Play 服务
将 build.gradle 文件中的依赖项更改为使用 8.3 版本作为
编译 'com.google.android.gms:play-services-wallet:8.3.0'
在我的设备上,从 Play 商店下载了“Android Pay”应用程序并成功添加了一张支持的银行卡。
和
WalletFragmentStyle walletFragmentStyle = new WalletFragmentStyle()
.setBuyButtonText(BuyButtonText.BUY_WITH_GOOGLE)
.setBuyButtonAppearance(WalletFragmentStyle.BuyButtonAppearance.ANDROID_PAY_LIGHT)
.setMaskedWalletDetailsLogoImageType(WalletFragmentStyle.LogoImageType.ANDROID_PAY)
.setBuyButtonWidth(Dimension.MATCH_PARENT);
Run Code Online (Sandbox Code Playgroud)
通过这样做,我可以在 CheckOutActivity 屏幕中获得 Android Pay 标志,类似于https://developers.google.com/android-pay/payment-flows 中的支付流程部分下的第一张图片。但是当我点击“ Buy With Android(logo) Pay ”时,我收到错误代码405。根据https://developers.google.com/android-pay/best-practices 中的“无效签名密钥指纹”部分, 这通常发生在开发中的应用程序从沙盒环境切换到生产环境之后。
我已确保在代码中将环境设置为 TEST (WalletConstants.ENVIRONMENT_TEST),如下所示
WalletFragmentOptions walletFragmentOptions = WalletFragmentOptions.newBuilder()
.setEnvironment(WalletConstants.ENVIRONMENT_TEST)
.setFragmentStyle(walletFragmentStyle)
.setTheme(WalletConstants.THEME_LIGHT)
.setMode(WalletFragmentMode.BUY_BUTTON)
.build();
Run Code Online (Sandbox Code Playgroud)
请注意,我尚未在 Play 商店中发布此应用程序,我只是在我的本地盒子中尝试使用,并且不想对示例应用程序进行预授权。因此,我没有遵循https://developers.google.com/android-pay/preauth 中提到的步骤。因此,我无法验证“提供给 Google 的指纹与用于签署 Android …