0

私はグーグルウェブストアAPIドキュメントで与えられたこの簡単な例に従おうとしています。残念ながら、彼らの最小限のPHPの例には、私が必要としない(そしてセットアップがない)ものがたくさん含まれています。

だから私は、グーグルサーバーとの通信を機能させるために、基本的なものをHTMLファイルにハードコーディングすることを検討しています:

私のコードは次のようになります。

<html>
  <head>
  </head>
  <body>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
      purchase = function() { console.log("Old purchase function"); }
        generatedJwt = "..."; // I use a real JWT here....
        google.load('payments', '1.0', {
          'packages': ['sandbox_config'],
          callback: function()
          {
            //Success handler
            var successHandler = function(purchaseAction){
              if (window.console != undefined) {
                console.log("Purchase completed successfully.",purchaseAction);
           }
          }

          //Failure handler
          var failureHandler = function(purchaseActionError)
          {
             if (window.console != undefined)
             {
            console.log("Purchase did not complete.", purchaseActionError);
         }
           }

           var purchase = function()
           {
          goog.payments.inapp.buy({
                 'jwt'     : generatedJwt,
                 'success' : successHandler,
                 'failure' : failureHandler
              });
           }
        }
      });
   </script>
   <button class="buy-button" id="buybutton1" name="buy" type="button" onClick="purchase()">
      Buy
   </button>
 </body>

購入ボタンをクリックすると、Googleからエラーメッセージがポップアップ表示され、コンソールに次のエラーが表示されます。

Unsafe JavaScript attempt to access frame with URL   
http://localhost/google_iap/buy_page.html 
from frame with URL
https://sandbox.google.com/checkout/inapp/static/gwt/payments.html?viewportScreenCenterX=-857.5&viewportScreenCenterY=611#id=I1_1324454042050&parent=http%3A%2F%2Flocalhost&rpctoken=166967692&_methods=onPurchaseActionStatus%2CgetJwt%2C_ready%2C_close%2C_open%2C_resizeMe.
Domains, protocols and ports must match.

この簡単な例を機能させるには、何をする必要がありますか?

補遺:

私はグーグルからより良い例を見つけました:

https://sandbox.google.com/checkout/customer/gadget/inapp/demo.html

ただし、ソースを自分のマシンに保存してローカルにアクセスすると(http://localhost/google_iap/google_demo.htmlとして)、同じクロスドメインエラーが発生します。

4

1 に答える 1

0

グーグルサンドボックスが壊れたようです。これは現在再び機能しているため、例は正しく機能しているようです。ただし、クロスサイトアクセスに関する警告は引き続き存在します。

于 2011-12-22T08:17:20.800 に答える