Использование файла образец Google Wallet дает ошибку
-
21-12-2019 - |
Вопрос
Я реализовал пример код, найден на https://code.google.com/P / IAP-PHP / На моем тестовом сайте http://whatsite.com .Как вы сможете увидеть, что есть сообщение об ошибке, когда нажата кнопка «Покупка»:
There is an error in the setup for your purchase. Please contact the merchant with this error message: Expected 3 components in jwt: $jwtToken
.
Консоль дает:
Uncaught SecurityError: Failed to read the 'contentDocument' property from 'HTMLIFrameElement': Blocked a frame with origin "http://whatisthesite.com" from accessing a frame with origin "https://sandbox.google.com". The frame requesting access has a protocol of "http", the frame being accessed has a protocol of "https". Protocols must match.
markdown-here.js:33
findFocusedElem markdown-here.js:33
intervalCheck
.
Демо-сайт http://iap-php.appspot.com/ не HTTPS:Нет нигде в коде, чтобы определить протокол.Любой совет будет оценен, спасибо!
Обновление:
Он имеет отношение к использованию образца «здесь Doc» Syntax для использования встроенных переменных PHP в функциях JS.Изменен этот синтаксис:
echo <<< INDEX <button id='runDemoButton' value='buy' class='buy-button' onclick='DemoButton("$jwtToken");'><b>Purchase</b></button> INDEX;
.
к этому:
<button id='runDemoButton' value='buy' class='buy-button' onclick='DemoButton("<?php echo $jwtToken;?>");'><b>Purchase</b></button>
.
Но теперь дает еще более расплывчатую ошибку.
Решение
Диалоговые ошибки, такие как «Есть ошибка в настройке для вашей покупки», имеет соответствующий код ошибки, возвращаемый к обработчику сжатия на стороне клиента:
https://developers.google.com/wallet/digital/docs/JSreference # неудача Handler
В вашем случае код ошибки - Merchant_Error, что указывает на плохо отформатированное JWT.Это может быть связано с использованием неправильного ключа продавца или секрет, чтобы подписать JWT.