Pergunta

Estamos tentando integrar a Carteira virtual do Google para produtos digitais com o aplicativo php e há 2 dias, em 15 de novembro, conseguimos fazê-lo funcionar.Porém, ao verificar novamente no dia seguinte e ainda hoje, embora o código permanecesse o mesmo, não alteramos nenhuma letra nele, ainda não está funcionando, nos dando este erro:

Ah, ah.Havia um problema.

Não foi possível concluir sua compra devido a um problema técnico.

Detalhes do problema abaixo:Infelizmente, não foi possível confirmar sua compra no servidor do comerciante.Seu pedido foi cancelado.Entre em contato com o comerciante se o problema persistir.

O código que estamos usando é este:

    $response = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : file_get_contents("php://input");

    $response = substr_replace($response, "", 0, 4);   //remove "

    $response = JWT::decode($response, $sellerSecretKey);

    header("HTTP/1.1 200 OK");

e como eu disse funcionou bem há dois dias e tenho a sensação de que está funcionando agora também, porque em nosso arquivo de log imprimimos esta resposta

objeto stdclass ([ISS] => Google [request] => objeto stdclass ([nome] => Produto 1.[descrição] => Você está comprando um total de 1 produto em nossa Loja.Obrigado.Preço] => 9.99 [CurrencyCode] => USD [SellerData] => Nome do cliente, endereço de email)

[response] => stdClass Object
    (
        [orderId] => GWDG_S.c7a66f5b-4674-43f0-be16-2b72f69a7445
    )

[typ] => google/payments/inapp/item/v1/postback/buy
[aud] => 03083876603093172875
[iat] => 1384689627
[exp] => 1384689647

)

O URL de postback está especificado corretamente e estamos usando sandbox para fazer os testes.

Isso é um problema do Google?Eles estão trabalhando no software ou algo assim e é isso que está causando o problema?Ou estamos fazendo algo errado aqui?

Qualquer ajuda seria muito apreciada.Obrigado.

Foi útil?

Solução

Queria comentar mas não cabe...

Esse erro aponta para algo em seu Manipulador de postback.Acabei de experimentar o sandbox e tudo parece bem.

Eu sou não um desenvolvedor php, então isso pode ser impreciso - você está respondendo ao Postback com o orderId?Novamente, isso se baseia apenas na minha leitura do código acima (eu pensar Eu só vejo http 200?)

A única outra coisa em que consigo pensar é que o atraso para você responder é de mais de 10 segundos (?) - o que poderia explicar por que poderia ser outro motivo você registrou dados, mas Google ainda cancelou.

*Atacar texto:você obteria dados para registrar porque o Google enviará os dados. O que importa é se você responde adequadamente ou não

Depois de decodificar o JWT com seu segredo do vendedor, você pode ter certeza de que a compra do bolo está correta e registrá-la. Dentro de 10 segundos de receber o postback, seu servidor deve enviar uma resposta 200 OK onde o único conteúdo é o valor do campo "orderId".Caso contrário, o Google cancela a transação.

REFERÊNCIA: https://developers.google.com/commerce/wallet/digital/docs/postback#responding

Hth.

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