私はグーグルウェブストア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として)、同じクロスドメインエラーが発生します。