платежи в приложении кошелька Google: Uncaught ReferenceError: goog не определен. google.payments против google.payments

мы используем платежи через приложение google wallet с google io 2012.

Недавно мы видим эту ошибку:

Uncaught ReferenceError: goog не определен

Код очень прост:

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
  google.load('payments', '1.0', {

    'packages': ['production_config']

  })

Затем мы используем обратный вызов jquery document.ready для вызова goog.payments.inapp.buy, но кажется, что к тому времени объект goog еще не создан. Похоже, это состояние гонки. функция покупки просто вызывает goog.payments.inapp.buy

 $(document).ready(function() {
      purchase('Item1'); //function to call goog.payments.inapp.buy
       });

Это также сбивает с толку, потому что эта страница https://sandbox.google.com/checkout/customer/gadget/inapp/demo.html показывает, что призыв к покупке:

google.payments.inapp.buy

а эта страница https://developers.google.com/in-app-payments/docs/tutorial#3 показывает, что призыв к покупке выглядит следующим образом:

goog.payments.inapp.buy

person Ralph Yozzo    schedule 07.12.2012    source источник


Ответы (1)


После некоторого дополнительного поиска (также из-за процесса написания вопроса) было найдено решение:

См. https://developers.google.com/in-app-payments/docs/tutorial#3

Важно: если библиотека API не загружена, вызов buy() завершится ошибкой. Вы можете избежать этой проблемы, указав обработчик кнопки onClick на шаге 3, используя опцию обратного вызова Google Loader. Подробнее об использовании дополнительных настроек с google.load() см. в Руководстве разработчика Google Loader.

Важно использовать обратный вызов вызова google.load, чтобы избежать условий гонки.

google.load('payments', '1.0', {
  'packages': ['production_config']

  ,"callback": function() {
          // wait for goog object to exist before using it.
          //goog.payments.inapp.buy(...);
   }
  }
person Ralph Yozzo    schedule 07.12.2012