0

Google io 2012以降、アプリ内支払いでGoogleウォレットを使用しています。

最近、次のエラーが表示されます。

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
4

1 に答える 1

0

いくつかの追加の検索の後(これも質問を書くプロセスのため)、解決策が見つかりました:

https://developers.google.com/in-app-payments/docs/tutorial#3を参照してください

重要: API ライブラリが読み込まれていない場合、buy() の呼び出しは失敗します。手順 3 でボタンの onClick ハンドラを指定し、Google ローダーのコールバック オプションを使用して、この問題を回避できます。google.load() でオプション設定を使用する方法の詳細については、Google ローダー デベロッパー ガイドを参照してください。

競合状態を避けるために、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(...);
   }
  }
于 2012-12-07T19:03:53.680 に答える