Устранение неполадок

В руководстве по устранению неполадок на устройствах Android рассматриваются проблемы и вопросы, связанные со следующими темами:

Сейчас приложение работает в тестовой среде.

Когда пользователь выбирает платежную карту в диалоговом окне сведений об оплате, он может увидеть следующее сообщение:

Сейчас приложение работает в тестовой среде. Средства по транзакциям не списываются.

Эта ошибка означает, что приложение использует ENVIRONMENT_TEST и не получает реальные платежные данные, но получает личную информацию, которая включает платежный адрес, номер телефона, указанный в платежном адресе, адрес доставки и адрес электронной почты, если он запрошен.

Не удалось выполнить запрос

Одно из наиболее распространенных сообщений об ошибке – это OR_BIBED_06. В интерфейсе оно появляется в виде диалогового окна со следующим текстом:

Запрос не выполнен
Проблема с интеграцией Google Pay у продавца. Обратитесь к продавцу или выберите другой способ оплаты.

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

  1. Убедитесь, что на компьютере установлен Android Debug Bridge (adb).
  2. Убедитесь, что на вашем устройстве включена отладка по USB. Дополнительную информацию вы можете найти в разделе Отладка вашего приложения.
  3. Подключите устройство Android к компьютеру или запустите симулятор.
  4. Введите команду на терминале или в командной строке компьютера:

    adb logcat -s WalletMerchantError

В ответе указана причина ошибки. Например, вы можете увидеть:

02-26 17:41:28.133 14593 14593 W WalletMerchantError: Error in loadPaymentData: This
merchant profile does not have access to this feature.

Действия по устранению неполадок зависят от сообщения об ошибке.

Срок действия шлюза

В процессе интеграции вы можете столкнуться со следующими ошибками, связанными с действительностью шлюза: Ниже приведены советы по устранению этих ошибок.

OR_BIBED_06 Неизвестный шлюз 'yourgateway'
Значение свойства gateway, указанное в tokenizationSpecification, в настоящее время не поддерживается Google Pay API. Чтобы узнать больше об идентификаторе платежного шлюза и связанных с ним полях, например gatewayMerchantId, обратитесь к поставщику шлюза.
OR_BIBED_06 Шлюз example нельзя использовать в рабочем режиме.
Приведенное значение свойства шлюза используется только для тестирования и не может применяться, если для параметра среды WalletOptions задано значение WalletConstants.ENVIRONMENT_PRODUCTION. Чтобы узнать больше о параметрах gateway, которые необходимо использовать с Google Pay API, обратитесь к представителю платежного шлюза.

Регистрация и доступ

В процессе интеграции могут возникнуть следующие ошибки, связанные с регистрацией и доступом: Ниже приведены советы по устранению этих ошибок.

OR_BIBED_07 Для этого API требуется библиотека сервисов Google Play версии 8.4 или более поздней.
Убедитесь, что на устройстве, на котором запущено приложение, установлена последняя версия сервисов Google Play.
OR_BIBED_07 Для этого профиля продавца не найдено ключей
Чтобы завершить интеграцию типа DIRECT (свойство type объекта tokenizationSpecification), вам нужно зарегистрировать открытый ключ шифрования в Google с помощью Google Pay & Wallet Console.
OR_BIBED_07 У этого профиля продавца нет доступа к этой функции.
Вы не завершили регистрацию приложения для Google Pay API. Подробнее о том, как запросить доступ к рабочей версии…
OR_BIBED_10 Этот продавец находится в стране или регионе, где не поддерживается Google Pay.
Сервис Google Pay недоступен в регионе. Подробнее о поддерживаемых странах…
OR_BIBED_11 Этот продавец не зарегистрировался для использования Google Pay API. Чтобы проверить это, перейдите в консоль (https://pay.google.com/business/console).
Вы не завершили регистрацию приложения для Google Pay API. Подробнее о том, как запросить доступ к рабочей версии…
OR_BIBED_12 Эта интеграция Google Pay API отключена. Чтобы узнать больше, свяжитесь с нами (https://developers.google.com/pay/api/faq#how-to-get-support).
Чтобы узнать, как повторно включить Google Pay API для вашего аккаунта, свяжитесь с нами.
OR_BIBED_13Цифровые отпечатки ключа подписи{11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:11:22:33:44:55} не совпадают с данными, которые мы храним для этого приложения.
Google Pay API можно использовать в рабочем режиме, только если APK подписан правильным ключом. Дополнительную информацию вы найдете в статье Добавление подписи в приложения.

Проблемы с продавцами

В процессе интеграции с прямым продавцом могут возникнуть следующие ошибки: Ниже приведены советы по устранению этих ошибок.

Подтверждение подписи
Если merchantId указан неверно, может возникнуть ошибка проверки подписи. Это может произойти в среде TEST, если вы используете библиотеку Tink paymentmethodtoken. Чтобы избежать этой проблемы, задайте для свойства YOUR_MERCHANT_ID значение в следующих файлах:
.recipientId("merchant:YOUR_MERCHANT_ID")
Проблема с расшифровкой токена
Если вы используете библиотеку Tink paymentmethodtoken для расшифровки токена, обратите внимание на следующее:
  • Убедитесь, что среда ответа Google Pay API соответствует среде Tink. Например, если ответ Google Pay API был возвращен ENVIRONMENT_TEST, то Tink указывает на тестовую среду для расшифровки.
  • Не изменяйте ответ Google Pay API перед передачей в Tink. Убедитесь, что вы передаете весь токен, возвращенный в ответе Google Pay API. Подробности приведены ниже.
  • Используйте закрытый ключ, который связан с открытым ключом, зарегистрированным в Google.
Как создать пару из открытого и закрытого ключа в Windows
Если вы используете Windows и хотите выполнить действия, описанные в разделе Как создать пару из закрытого и открытого ключа с помощью OpenSSL, установите на компьютер Cygwin. Это нужно, чтобы выполнять команды Linux.

Android WebView;

OR_BIBED_15 Не удалось загрузить Google Pay, потому что в этом приложении используется WebView. Чтобы обеспечить работу Google Pay в Android WebView, разработчики должны следовать нашим инструкциям.
Следуйте инструкциям, чтобы включить Google Pay API для Android WebView.

CardInfo

Что такое функция CardInfo?
На кнопке оплаты через Google Pay показывается, какая карта будет использоваться для оплаты: ее бренд и последние четыре цифры номера.
Почему функция CardInfo не работает в моей реализации?

Чтобы функция CardInfo работала, должны быть выполнены следующие условия:

  • Вам необходимо реализовать API createButton.
  • Вам необходимо настроить параметр ButtonOptions.buttonType на значение buy, long или pay.
  • У пользователя должен быть доступный способ оплаты, как определено в объекте CardParameters.