Использование файла примера Google Кошелька дает ошибку

Я реализовал пример кода, который можно найти по адресу https://code.google.com/p/iap-php/ на моем тестовом сайте http://whatisthesite.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: и нигде в коде нет определения протокола. Любой совет будет оценен, спасибо!

ОБНОВИТЬ:

Это как-то связано с использованием в этом примере синтаксиса Here Doc для использования встроенных переменных 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>

Но теперь выдает еще более расплывчатую ошибку.

1 ответ

Решение

Для ошибок диалога, таких как "В настройке для вашей покупки есть ошибка", соответствующий код ошибки возвращается клиентскому обработчику ошибок:

https://developers.google.com/wallet/digital/docs/jsreference

В вашем случае код ошибки - MERCHANT_ERROR, который указывает на плохо отформатированный JWT. Это может быть связано с использованием неверного КЛЮЧА ПРОДАВЦА или СЕКРЕТА для подписания JWT.

Другие вопросы по тегам