Como testar e depurar

Este documento explica como usar cURL e a API Google Pay for Passes Merchant Center para testar e depurar a integração da API Google Pay for Passes local e remotamente. Use essas ferramentas para testar a integração com muitos dos testes de aceitação obrigatórios para o lançamento.

Testes de aceitação

A integração precisa passar por todos os testes nas listas de verificação de testes de aceitação correspondentes para que seja possível iniciar. Trabalhe com o contato técnico do Google, após a conclusão do teste, para planejar o lançamento.

Testar classes e objetos usando cURL

O aplicativo usará a API REST para criar, recuperar e modificar classes e objetos. Use cURL a fim de enviar solicitações para testar os endpoints REST ou visualizar as respostas JSON brutas.

Receber um token de portador do OAuth2

Para conseguir um bearerToken, instale a ferramenta oauth2l e use-a no comando a seguir. Substitua pathToPrivateKey pelo caminho da chave da conta de serviço que você criou, conforme descrito na seção que discute a autenticação do OAuth 2.0.

oauth2l fetch --scope wallet_object.issuer --credentials pathToPrivateKey --cache ""

O bearerToken é usado como parte dos seguintes comandos cURL.

Receber uma classe ou um objeto específico

Use o comando cURL a seguir para receber uma classe ou um objeto específico para testar se ele está sendo inserido corretamente pelo aplicativo. Substitua walletObjectType pela classe ou pelo tipo de objeto (como loyaltyClass ou loyaltyObject) e substitua resourceId pelo resourceId com o ID do objeto ou da classe que você quer receber. Use os comandos cURL nas seções "Listar classes" e "Listar objetos" a seguir para receber uma lista de códigos. Em seguida, use um código com esse comando cURL para recuperar o objeto ou a classe específica.

curl GET https://walletobjects.googleapis.com/walletobjects/v1/walletObjectType/resourceId -H "Authorization: Bearer bearerToken"

Listar classes

Use o comando cURL a seguir para listar todas as classes de um issuerId específico ou comerciante para testar se o aplicativo está inserindo as classes corretas. Substitua classType pelo tipo de classe (como loyaltyClass) e issuerId pelo issuerId (o grande número encontrado na tela "Gerenciamento de contas" no Merchant Center da API Google Pay for Passes).

curl GET https://walletobjects.googleapis.com/walletobjects/v1/classType?issuerId=issuerId -H "Authorization: Bearer bearerToken"

Listar objetos

Use o comando cURL a seguir para listar todos os objetos associados a um classId específico e para testar se o aplicativo está inserindo os objetos corretos. Substitua walletObjectType pelo tipo de objeto (como loyaltyObject) e classId pelo classId pai do objeto.

curl GET https://walletobjects.googleapis.com/walletobjects/v1/walletObjectType?classId=classId -H "Authorization: Bearer bearerToken"

Atualizar um objeto ou uma classe

Use os seguintes comandos cURL para atualizar um objeto ou uma classe específica:

  1. Receba o objeto ou a classe e salve em um arquivo. Substitua walletObjectType pelo tipo de objeto (como offerObject ou loyaltyClass) e substitua resourceId pelo resourceId com o ID do objeto que você quer receber. Além disso, substitua myobjectfile.txt pelo nome do arquivo local que contém seu objeto.
    curl -X GET https://walletobjects.googleapis.com/walletobjects/v1/walletObjectType/resourceId -H "Authorization: Bearer bearerToken" > myobjectfile.txt
  2. Faça alterações nos valores dos campos no objeto ou na classe.
  3. Envie a atualização para o objeto ou a classe:
    curl -X PUT https://walletobjects.googleapis.com/walletobjects/v1/walletObjectType/resourceId -H "Authorization: Bearer bearerToken" -H "Content-Type: application/json" -d myobjectfile.txt

Adicionar uma mensagem

Use o seguinte comando cURL para adicionar uma mensagem a um objeto ou a uma classe específica: Substitua walletObjectType pelo tipo de objeto (como offerObject ou loyaltyObject) e substitua resourceId pelo resourceId com o ID do objeto que contém a mensagem você quer definir.

curl -X POST -H "Authorization: Bearer bearerToken" -H "Content-Type: application/json" -d '{"message":{"kind":"walletobjects#walletObjectMessage","header":"Welcome to Banconrista Rewards!","body":"Featuring our new bacon donuts.","displayInterval":{"kind":"walletobjects#timeInterval","start":{"date":"1985-04-12T23:20:50.52Z"},"end":{"date":"2085-04-12T23:20:50.52Z"}},"id":"1234"},"reviewStatus":"underReview"}'  https://walletobjects.googleapis.com/walletobjects/v1/walletObjectType/resourceId/addMessage

Criar uma classe

Use o comando cURL a seguir para criar uma classe. Substitua classType pelo tipo de classe (como loyaltyClass) e classJSON pela classe JSON gerada.

curl POST https://walletobjects.googleapis.com/walletobjects/v1/classType -H "Authorization: Bearer bearerToken" -H "Content-Type: application/json" -d  'classJSON'

Testar e depurar um JWT

Costuma ser útil examinar os JWTs criados. Para testar e depurar um JWT, siga estes passos:

  1. Copie o JWT para a área de transferência.
  2. Visite este site do decodificador JWT.
  3. Cole o JWT na caixa de texto.
  4. Pressione Decodificar JWT. O JWT é decodificado em duas seções: Cabeçalho e Declarações.
  5. Analise o payload e todos os campos próximos para garantir que o JWT esteja completo.