Я пытаюсь следовать этим простым примерам, приведенным в документации API веб-магазина Google.
К сожалению, их минимальный пример PHP содержит много вещей, которые мне не нужны (и не имеют настройки).
Итак, я смотрю, как жестко запрограммировать базовый материал в HTML-файл, просто чтобы получить связь с работающими серверами Google:
Мой код выглядит так:
<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.
Что мне нужно сделать, чтобы этот простой пример работал?
Добавление:
Я нашел более хороший пример из Google:
https://sandbox.google.com/checkout/customer/gadget/inapp/demo.html
Однако сохранение источника на моем компьютере и локальный доступ к нему (как http://localhost/google_iap/google_demo.html) приводит к той же междоменной ошибке.