Как предотвратить ошибку Blocked a frame при использовании Google Pay?

Я настроил Google Pay для сайтов, и он отлично работает в Google Chrome. Но когда я пытаюсь использовать его в любом другом браузере, у меня возникает проблема: при нажатии кнопки оплаты Google открывает окно pay.google.com, затем я нажимаю оплату, и предварительный загрузчик никогда не останавливается (обратный вызов onPaymentAuthorized никогда не вызывается).

Я попробовал пример Google https://jsfiddle.net/34wxopb2/, и он отлично работает. Единственное различие на моем сайте, которое я обнаружил, - это ошибка Unhandled Promise Rejection: SecurityError: Blocked frame with origin ... которая происходит при нажатии кнопки Google Pay. Итак, я думаю, это проблема, потому что мой код идентичен приведенному выше примеру jsfiddle. Как это решить?

<script async
  src="https://pay.google.com/gp/p/js/pay.js"
  onload="onGooglePayLoaded()"></script>

person Vadim    schedule 28.02.2021    source источник


Ответы (1)


Проблема была не в Google Pay, как я ожидал. Я передал экземпляр paymentsClient в данные Vue, которые изменили его структуру (сделали его прокси), и это вызвало проблему.

person Vadim    schedule 01.03.2021