Pergunta

Implementei o código de exemplo encontrado em https://code.google.com/p/iap-php/ no meu site de teste http://whatisthesite.com.Como você pode ver, há uma mensagem de erro vaga quando o botão "Comprar" é clicado:

There is an error in the setup for your purchase. Please contact the merchant with this error message: Expected 3 components in jwt: $jwtToken

O console fornece:

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

O site de demonstração http://iap-php.appspot.com/ não é https:nem há nenhum lugar no código para definir o protocolo.Qualquer conselho seria apreciado, obrigado!

ATUALIZAR:

Tem algo a ver com o uso da sintaxe "Here Doc" no exemplo para usar variáveis ​​PHP embutidas em funções JS.Alterada esta sintaxe:

echo <<< INDEX <button id='runDemoButton' value='buy' class='buy-button' onclick='DemoButton("$jwtToken");'><b>Purchase</b></button> INDEX;

para isso:

<button id='runDemoButton' value='buy' class='buy-button' onclick='DemoButton("<?php echo $jwtToken;?>");'><b>Purchase</b></button>

Mas agora dá um erro ainda mais vago.

Foi útil?

Solução

Erros de caixa de diálogo como "Há um erro na configuração da sua compra" têm um código de erro correspondente retornado ao manipulador de falhas do lado do cliente:

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

No seu caso, o código de erro é MERCHANT_ERROR que indica um JWT mal formatado.Isso pode ser devido ao uso da CHAVE DE VENDEDOR ou SECRETO incorreto para assinar o JWT.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top