使用https://github.com/android-pay/androidpay-quickstart试用Android Pay。 以下是我通过样本中的默认Google钱包实施对Android付费所做的微小更改。
在我的设备中安装了Google Play服务的最新版本(8.4.89)
更改build.gradle文件中的依赖项以将8.3版本用作
编译com.google.android.gms:play-services-wallet:8.3.0'
在我的设备中,已下载" Android Pay"来自Play商店的应用程序并成功添加了一张支持的银行卡。
和
WalletFragmentStyle walletFragmentStyle = new WalletFragmentStyle()
.setBuyButtonText(BuyButtonText.BUY_WITH_GOOGLE)
.setBuyButtonAppearance(WalletFragmentStyle.BuyButtonAppearance.ANDROID_PAY_LIGHT)
.setMaskedWalletDetailsLogoImageType(WalletFragmentStyle.LogoImageType.ANDROID_PAY)
.setBuyButtonWidth(Dimension.MATCH_PARENT);
通过这样做,我可以在CheckOutActivity屏幕中获得类似于https://developers.google.com/android-pay/payment-flows中“付款流程”部分下的第一张图片的Android Pay徽标。但是当我点击" 购买Android(徽标)支付"我收到错误代码 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();
请注意我没有在Play商店发布此应用程序,我只在我的本地方框中尝试,并且不希望对示例应用程序进行预授权。因此,我没有按照https://developers.google.com/android-pay/preauth中提到的步骤进行操作。因此,我无法验证提供给Google的指纹是否与用于签署Android应用程序的密钥的指纹相匹配。如第34节中所述; 无效的签名密钥指纹"在https://developers.google.com/android-pay/best-practices
不确定我正在做什么错误或错过了成功运行此操作的必要步骤。任何帮助将不胜感激,因为我渴望将其显示为POC并在我们的生产应用程序中实现相同的。
答案 0 :(得分:4)
您是否将这些行放在AndroidManifest.xml中?
<meta-data
android:name="com.google.android.gms.wallet.api.enabled"
android:value="true" />
答案 1 :(得分:1)
这是从Android Pay文档
中说明的请务必使用发布密钥对您的应用进行签名
当您的应用指向Android Pay生产环境时, 如果,Android Pay API会返回ERROR_CODE_MERCHANT_ACCOUNT_ERROR(405) 用于签署Android应用程序的签名密钥指纹没有 匹配在Google Play注册的发布密钥指纹。这个 通常在开发中的应用程序从测试切换后发生 环境到生产环境