Ошибка Android Pay в loadMaskedWallet

Я пытаюсь совершить тестовый платеж с помощью Android Pay. Пока я настроил свое устройство для тестирования на основе этого ответа. настроил карту в приложении Android на моем устройстве и на основе этого кода:

Wallet.Payments.isReadyToPay(mGoogleApiClient, IsReadyToPayRequest.newBuilder()
                   .addAllowedCardNetwork(WalletConstants.CardNetwork.VISA)
                   .addAllowedCardNetwork(WalletConstants.CardNetwork.MASTERCARD)
                   .build())
                .setResultCallback(
                        booleanResult -> {
                           if (booleanResult.getStatus().isSuccess()) { // says true
...

Я создал свой пример на основе этих рекомендаций из лаборатории кода Google

private void initGoogleApi() {
    mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
            .addOnConnectionFailedListener(this)
            .enableAutoManage(getActivity(),0, this)
            .addApi(Wallet.API, new Wallet.WalletOptions.Builder()
                    .setEnvironment(WalletConstants.ENVIRONMENT_TEST)
                    .setTheme(WalletConstants.THEME_LIGHT)
                    .build())
            .build();
}

а потом:

    private void initAndroidPayView() {
    mWalletFragment = (SupportWalletFragment) getActivity().getSupportFragmentManager()
            .findFragmentByTag(WALLET_FRAGMENT_ID);

    if (mWalletFragment == null) {
        // Wallet fragment style
        WalletFragmentStyle walletFragmentStyle = new WalletFragmentStyle()
                .setBuyButtonText(WalletFragmentStyle.BuyButtonText.BUY_WITH)
                .setBuyButtonWidth(WalletFragmentStyle.Dimension.MATCH_PARENT);

        // Wallet fragment options
        WalletFragmentOptions walletFragmentOptions = WalletFragmentOptions.newBuilder()
                .setEnvironment(WalletConstants.ENVIRONMENT_TEST)
                .setFragmentStyle(walletFragmentStyle)
                .setTheme(WalletConstants.THEME_DARK)
                .setMode(WalletFragmentMode.BUY_BUTTON)
                .build();

        // Initialize the WalletFragment
        WalletFragmentInitParams.Builder startParamsBuilder =
                WalletFragmentInitParams.newBuilder()
                        .setMaskedWalletRequest(generateMaskedWalletRequest())
                        .setMaskedWalletRequestCode(MASKED_WALLET_REQUEST_CODE);
        //.setAccountName("Google I/O Codelab");//https://developers.google.com/android/reference/com/google/android/gms/wallet/fragment/WalletFragmentInitParams.Builder
        mWalletFragment = SupportWalletFragment.newInstance(walletFragmentOptions);
        mWalletFragment.initialize(startParamsBuilder.build());

        // Add the WalletFragment to the UI
        getActivity().getSupportFragmentManager().beginTransaction()
                .replace(R.id.androidPayContainer, mWalletFragment, WALLET_FRAGMENT_ID)
                .commit();
    }
}

я использую

PaymentMethodTokenizationType.NETWORK_TOKEN

и я сгенерировал publicKey, как написано в репозитории github

Теперь, когда я делаю платеж, я получаю этот код ошибки в onActivityResult: 10

В устройстве я вижу только это сообщение об ошибке:

Ошибка запроса Произошла непредвиденная ошибка. Пожалуйста, повторите попытку позже.

И когда я нажимаю ok в диалоговом окне ошибки, я получаю этот журнал:

06-01 12:18:05.739 11386 11386 W WalletMerchantError: Ошибка в loadMaskedWallet: Вы забыли установить среду тестирования Android Pay для PROD?

Я попытался также изменить переменные на производство, но все равно та же ошибка. У кого-нибудь есть какое-нибудь решение, или мне действительно нужно попробовать это позже?


person Ultimo_m    schedule 01.06.2017    source источник


Ответы (2)



Согласно этой проблеме, размещенной на Github

https://github.com/android-pay/androidpay-quickstart/issues/ 31

и других контактов есть аномалия с режимом Sandbox и тестовая карта не работает по крайней мере в Европе.

Ответ из вопроса содержит также альтернативное решение.

Проблема: тестовые карты (даже предоставленные Google) больше не работают (по крайней мере, за пределами США);

Решение: вам нужна настоящая карта, чтобы все заработало. С вас не будет взиматься плата за ENVIRONMENT_TEST.

person Ultimo_m    schedule 27.06.2017
comment
Привет, я добавляю Google Pay в свое приложение, после выбора карты выдает ошибку: Статус {statusCode=DEVELOPER_ERROR, разрешение=null} не могли бы вы мне помочь? - person chetan; 23.03.2018
comment
Обязательно следуйте этому github.com/google-pay/android-quickstart и, если у вас есть проблемы, вы можете открыть вопрос там - person Ultimo_m; 26.03.2018
comment
Благодарю вас! После добавления версии шлюза я смог запустить Google Pay. Еще раз спасибо за ваше время. - person chetan; 26.03.2018