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

В руководстве по устранению неполадок в Интернете рассматриваются проблемы и вопросы, связанные со следующими темами.

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

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

У этого продавца нет поддержки Google Pay.
Для API Google Pay требуется идентификатор Google MerchantId для сайтов, настраивающих PaymentsClient для PRODUCTION среды. Идентификатор Google merchantId связан с одним или несколькими полными доменами через консоль Google Pay & Wallet . Для получения дополнительной информации проверьте возвращаемые сведения об ошибке.
Этот продавец не зарегистрировался для использования Google Pay API. Для подтверждения перейдите в консоль (https://pay.google.com/business/console).
Вы не завершили процесс регистрации своих веб-сайтов в Google Pay API. Запросите доступ к рабочей версии , чтобы зарегистрироваться с помощью консоли Google Pay & Wallet и запросить проверку использования Google Pay API вашим веб-сайтом.
У этого профиля продавца нет доступа к этой функции.
Google не настроил ваш сайт для использования API Google Pay. Запросите доступ к рабочей версии , чтобы запросить проверку использования API Google Pay вашим сайтом через консоль Google Pay & Wallet .
Интеграция с Google Pay API отключена. Свяжитесь с нами для получения дополнительной информации (https://developers.google.com/pay/api/faq#how-to-get-support).
Свяжитесь с нами , чтобы узнать больше о необходимых действиях по повторному включению API Google Pay для вашего аккаунта Google.
Ваш домен «example.com» не зарегистрирован для использования этого API.
Домен, на котором размещена ваша касса, не связан с используемым вами merchantId . Убедитесь, что параметр merchantId указан верно и ваш домен зарегистрирован через консоль Google Pay & Wallet .
API Google Pay следует вызывать в безопасном контексте!
API Google Pay можно использовать только на веб-сайтах в безопасном контексте. Подробнее см. в разделе Безопасные контексты .
Для этого профиля продавца ключи не найдены.
Вам необходимо зарегистрировать свой открытый ключ шифрования в Google через консоль Google Pay & Wallet, чтобы завершить DIRECT интеграцию type tokenizationSpecification .

merchantId

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

merchantId должен быть установлен!
Параметр merchantId в PaymentDataRequest должен быть установлен на значение, предоставленное с помощью консоли Google Pay & Wallet . Параметр merchantId требуется только при использовании PaymentsClient , настроенного для среды PRODUCTION . Ознакомьтесь с нашим контрольным списком интеграции , чтобы запросить проверку использования API Google Pay вашим сайтом и получить свой merchantId .
merchantId не является строкой
Параметр merchantId в PaymentDataRequest всегда должен быть строкой. Перед вызовом API убедитесь, что используемый вами параметр merchantId имеет строковый тип.
merchantId не зарегистрирован.
Параметр merchantId в PaymentDataRequest должен быть предоставлен через консоль Google Pay & Wallet . Для получения дополнительной информации ознакомьтесь с разделом «Запрос на доступ к рабочей среде» .

Действительность шлюза

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

Неизвестный шлюз 'yourgateway'
Параметр шлюза, указанный вами в параметре paymentMethodTokenizationParameters.parameters , в настоящее время не поддерживается Google. Обратитесь к своему шлюзу за дополнительной информацией об идентификаторе шлюза и связанных полях, таких как gatewayMerchantId .
Шлюз «пример» не может использоваться в производственном режиме.
Пример значения параметра шлюза используется только для тестирования и не может использоваться с PaymentsClient настроенным для PRODUCTION среды. Обратитесь к своему шлюзу за дополнительной информацией о значениях параметров PaymentMethodTokenizationSpecification , которые необходимо задать для использования с API Google Pay.

Объектная валидность

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

Запрос PaymentDataRequest от Google Pay не является допустимым JSON-файлом.
Параметр, предоставленный для loadPaymentData , всегда должен быть допустимым объектом PaymentDataRequest .
transactionInfo должен быть установлен!
Параметр transactionInfo внутри PaymentDataRequest всегда должен быть допустимым объектом TransactionInfo .

Прямые торговцы

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

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

Объекты ошибок

Объекты ошибок — это объекты, возвращаемые отклоненным обещанием из клиентского метода JavaScript.

PaymentsError
Этот объект содержит сведения об ошибках, возвращаемых клиентскими методами JavaScript. Ошибки могут не отображаться в диалоговом окне, доступном пользователю.
Свойство Тип Описание
statusCode Нить Короткий код, описывающий тип ошибки.
statusMessage Нить Сообщение для разработчика, описывающее обнаруженную ошибку и возможные шаги по ее исправлению.
Распространенные ошибки
Этот объект отображает ошибки, которые могут возникнуть во всех методах JavaScript. Проверьте консоль разработчика на наличие дополнительных сообщений об ошибках.
Код статуса Описание
BUYER_ACCOUNT_ERROR Текущий пользователь Google не может предоставить платежную информацию.
DEVELOPER_ERROR

Переданный параметр имеет неверный формат. В консоли браузера может появиться сообщение об ошибке для всех настроенных сред.

MERCHANT_ACCOUNT_ERROR

У сайта, обращающегося к API Google Pay, нет необходимого разрешения. Это может быть связано с неправильной конфигурацией или неверным идентификатором продавца, указанным в запросе. Подробнее см. в поле statusMessage . Если проблема не устранена, обратитесь в службу поддержки .

INTERNAL_ERROR Общая ошибка сервера.

CardInfo

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

Для работы функции CardInfo необходимы следующие условия:

  • Вам необходимо реализовать API createButton .
  • Необходимо настроить ButtonOptions.buttonType на buy , long или pay .
  • У пользователя должен быть доступный способ оплаты, определенный объектом CardParameters .
Почему кнопка оплаты Google Pay загружается бесконечно?
Не удаляйте обработчики событий onLoad . Если вы удалите обработчики событий onLoad , кнопка оплаты через Google Pay может загружаться бесконечно.
Почему после нажатия кнопки оплаты через Google Pay не появляется запрос на оплату?
Назначьте обратный вызов прослушивателя событий событию ButtonOptions.onClick .

OR_BIBED_15 ошибок

На каком-то этапе интеграции вы можете столкнуться с ошибкой OR_BIBED_15 . Этот список содержит полезные советы по устранению неполадок в случае её возникновения.

Работа с WebViews
Следуйте инструкциям для Android и iOS , чтобы убедиться, что ваша интеграция совместима с WebViews.
Заголовок ответа HTTP Cross-Origin-Opener-Policy
Если заголовок HTTP-ответа Cross-Origin-Opener-Policy имеет значение same-origin это может помешать браузеру открыть всплывающее окно, необходимое пользователям для завершения транзакции. Попробуйте изменить значение заголовка на same-origin-allow-popups чтобы уменьшить эти проблемы.
Задержки между событием нажатия кнопки пользователем и вызовом loadPaymentData()
Если между нажатием кнопки Google Pay (или аналогичной кнопки оформления заказа) и вызовом loadPaymentData() возникает задержка (например, setTimeout() , дополнительные сетевые вызовы или аналогичная долго выполняющаяся логика), это может привести к срабатыванию механизма блокировки всплывающих окон браузера. Мы рекомендуем не устанавливать задержек между нажатием кнопки пользователем и вызовом loadPaymentData() .