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

Перечисленные ниже проблемы возникают в сети Google Pay API, когда объект Promise, возвращаемый loadPaymentData, отклонен. Руководство по устранению неполадок содержит ошибки, связанные с информацией из списка ниже.

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

Продавец не зарегистрирован в сервисе Google Pay.
Google Pay API требуется полученный от Google идентификатор merchantId для конфигурации параметра PaymentsClient в среде PRODUCTION на сайте. Идентификатор merchantId Google связан с одним или более доменами через профиль разработчика Google Pay. Для получения более подробной информации прочитайте описание ошибки.
Не закончена регистрация для использования API.
Вы не завершили процесс регистрации сайта. Воспользуйтесь Контрольным списком интеграции, чтобы зарегистрироваться и запросить проверку сайта для использования Google Pay API.
Профиль продавца не имеет доступа к запрашиваемой функции.
Ваш сайт не настроен для использования Google Pay API. Ознакомьтесь с Контрольным списком интеграции, чтобы запросить проверку сайта для использования Google Pay API и внести его в белый список.
Продавец отключен. Пожалуйста, свяжитесь с нами для получения дополнительной информации.
Наши специалисты помогут повторно активировать Google Pay API на вашем аккаунте Google.
Домен example.com не зарегистрирован, а потому не может использовать API.
Домен, на котором размещена страница оплаты, не связан с вашим идентификатором merchantId. Убедитесь, что параметр merchantId указан верно. Свяжитесь с нами, чтобы получить более подробную информацию о регистрации доменов в Google Pay API.
Google Pay API нужно вызывать в безопасном контексте.
Google Pay API можно использовать на сайтах только в безопасном контексте. Более подробную информацию можно найти в разделе Безопасные контексты.
Для профиля продавца нет ключей.
Вам нужно зарегистрировать открытый ключ шифрования через профиль разработчика Google Pay, чтобы завершить интеграцию tokenizationType: 'DIRECT'. Воспользуйтесь Контрольным списком интеграции, чтобы запросить проверку сайта для использования Google Pay API и предоставить открытый ключ шифрования.

Идентификатор продавца

Параметр merchantId не настроен.
Параметр merchantId объекта PaymentDataRequest должен иметь значение, указанное в вашем профиле разработчика Google Pay. Параметр merchantId необходим только для использования объектом PaymentsClient в среде PRODUCTION. Воспользуйтесь Контрольным списком интеграции, чтобы запросить проверку сайта для использования Google Pay API и получить merchantId.
Параметр merchantId не является строкой.
Параметр merchantId объекта PaymentDataRequest должен быть строкой. Перед вызовом API убедитесь, что используемый вами параметр merchantId – строка.
Параметр merchantId не зарегистрирован.
Параметр merchantId объекта PaymentDataRequest должен быть связан с активным профилем разработчика Google Pay. Воспользуйтесь Контрольным списком интеграции, чтобы запросить проверку сайта для использования Google Pay API и получить merchantId.

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

Неизвестный шлюз yourgateway.
Указанный вами параметр шлюза в объекте paymentMethodTokenizationParameters.parameters в данный момент не поддерживается Google. Свяжитесь со шлюзом, чтобы получить дополнительную информацию об идентификаторе шлюза, а также о поле gatewayMerchantId и других связанных с ним полях.
Шлюз example не может быть использован в рабочей версии.
Пробное значение параметра шлюза нельзя использовать при настройке объекта PaymentsClient в среде PRODUCTION. Чтобы получить дополнительную информацию о значениях параметра PaymentMethodTokenizationSpecification, необходимых для работы с Google Pay API, свяжитесь со шлюзом.

Срок действия объекта

Объект Google Pay PaymentDataRequest не является действительным объектом json.
Указанный в объекте loadPaymentData параметр должен быть действительным объектом PaymentDataRequest.
Параметр transactionInfo не настроен.
Параметр transactionInfo объекта PaymentDataRequest должен быть действительным объектом TransactionInfo.

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

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

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

Так называют объекты, которые были отклонены методами клиента JavaScript.

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

Неверный формат переданного параметра. Сообщение об ошибке может появиться в консоли браузера в любой настроенной среде.

MERCHANT_ACCOUNT_ERROR

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

INTERNAL_ERROR Стандартная ошибка сервера.