【问题标题】:ERROR_CODE_MERCHANT_ACCOUNT_ERROR (405) while trying Android Pay in TEST environment using Google Sample CodeERROR_CODE_MERCHANT_ACCOUNT_ERROR (405) 在测试环境中使用 Google 示例代码尝试 Android Pay
【发布时间】:2016-03-10 17:59:02
【问题描述】:

使用https://github.com/android-pay/androidpay-quickstart 试用 Android Pay。 以下是我通过示例中的默认 Google 钱包实现为 Android 支付所做的小改动。

  1. 在我的设备中安装了最新版本 (8.4.89) 的 Google Play 服务

  2. 将 build.gradle 文件中的依赖项更改为使用 8.3 版本

    编译'com.google.android.gms:play-services-wallet:8.3.0'

  3. 在我的设备上,从 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);

通过这样做,我可以在 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();

请注意,我尚未在 Play 商店中发布此应用程序,并且我仅在本地盒子中尝试并且不希望对示例应用程序进行预授权。因此,我没有按照https://developers.google.com/android-pay/preauth 中提到的步骤进行操作。因此,我无法验证“提供给 Google 的指纹与用于签署 Android 应用程序的密钥的指纹相匹配”,如https://developers.google.com/android-pay/best-practices

中的“无效的签名密钥指纹”部分所述

不确定我犯了什么错误或错过了成功运行它的必要步骤。任何帮助都将不胜感激,因为我热衷于将其展示为 POC 并在我们的生产应用程序中实现它。

【问题讨论】:

  • 你解决了吗..??以及如何。??

标签: android android-pay


【解决方案1】:

您是否将这些行放在您的 AndroidManifest.xml 中?

    <meta-data
        android:name="com.google.android.gms.wallet.api.enabled"
        android:value="true" />

【讨论】:

  • 这解决了我的问题。我忘记将此元数据添加到 AndroidManifest.xml 文件中。谢谢你,J. Lin。
  • 是的@Abhishek,这对我有用。这样就解决了 Google Pay 片段无法加载的问题。
【解决方案2】:

Android Pay 文档中对此进行了说明

记得使用发布密钥为您的应用签名

当您的应用指向 Android Pay 生产环境时, Android Pay API 返回 ERROR_CODE_MERCHANT_ACCOUNT_ERROR (405) 如果 用于签署 Android 应用程序的签名密钥指纹不 与在 Google Play 中注册的释放密钥指纹匹配。这 通常发生在开发中的应用程序从测试切换之后 环境转生产环境

https://developers.google.com/android-pay/deployment

【讨论】:

    猜你喜欢
    • 2021-02-25
    • 1970-01-01
    • 1970-01-01
    • 2014-12-30
    • 2014-10-16
    • 1970-01-01
    • 2017-02-04
    • 2013-11-12
    • 2021-03-23
    相关资源
    最近更新 更多