Com a API Google Wallet, os usuários podem adicionar um objeto da Web à Carteira do Google. Os usuários podem adicionar os cartões diretamente pelo site.
Esta referência fornece detalhes sobre o elemento HTML g:savetoandroidpay que
renderiza um botão da API Google Wallet
e o JSON Web Token
que descreva seu serviço da Web para o Google.
JavaScript da API Google Wallet
Para analisar automaticamente as tags HTML g:savetoandroidpay no carregamento, inclua o parâmetro
    JavaScript
<script src="https://apis.google.com/js/platform.js" type="text/javascript"></script>
Para aplicativos AJAX e renderização explícita dos botões da API Google Wallet, inclua o parâmetro "parsetags": "explicit".
<script src="https://apis.google.com/js/platform.js" type="text/javascript">
  {"parsetags": "explicit"}
</script>Tag HTML g:savetoandroidpay
    A tag de namespace g:savetoandroidpay define
      posicionamento e vários atributos da opção
      Botão "Carteira do Google".  Use essa tag se você estiver renderizando HTML e JWTs
      lado do servidor.
<g:savetoandroidpay jwt="JWT" onsuccess="successHandler" onfailure="failureHandler" />
| Campo | Tipo | Obrigatório | Descrição | 
|---|---|---|---|
| height | String | N | Altura do botão a ser exibido.  Os valores possíveis são: small(30 px de altura) estandard(38 px de altura). O padrão deheightésmall.
          Consulte os botões da API Google Wallet.
          para conferir exemplos de botões com diferentes configurações deheight. | 
| jwt | String | S | JWT da API Google Wallet. | 
| onsuccess | String | N | String com nome da função gerenciadora de callback de sucesso na gravação. | 
| onfailure | String | N | Nome da string da função do gerenciador de callback de falha na gravação. Essa função recebe um que contém um errorCode e errorMessage. | 
| onprovidejwt | String | N | Nome da string da função do gerenciador JWT fornecido. O objetivo dessa função é
        interceptar e talvez manipular os dados do JWT antes que o objeto seja adicionado à Carteira do Google.
        Essa função não recebe nenhum parâmetro e precisa retornar o JWT como String.
        Ao implementar o manipulador de eventos, os dados do JWT originais podem ser recuperados
        no campo this.getOpenParams().renderData.userParams.jwt. | 
| size | String | N | Largura do botão a ser exibido.  Você pode definir sizecomomatchparentpara que a largura corresponda à largura do elemento pai. Ou saia dosizeindefinido para que a largura se estenda para se ajustar à largura da configuração detext.
        Consulte os botões da API Google Wallet.
        para conferir exemplos de botões com diferentes configurações desize. | 
| text | String | N | Suspenso | 
| textsize | String | N | Quando textsize=largeé especificado, mostra
          o tamanho do texto aumenta drasticamente
         tamanho do botão, para casos com requisitos especiais de interface. | 
| theme | String | N | Tema do botão a ser exibido.  Os valores possíveis são: darkelight. O tema padrão édark. Consulte
        Botões da API Google Wallet
        para conferir exemplos de botões com diferentes configurações detheme. | 
JWT da API Google Wallet
O JWT da API Google Wallet define os objetos e as classes a serem salvos.
Representação JSON
{ "iss": "example_service_account@developer.gserviceaccount.com", "aud": "google", "typ": "savetowallet", "iat": 1368029586, "payload": { "eventTicketClasses": [{ ... //Event ticket Class JSON }], "eventTicketObjects": [{ // Event ticket Object JSON }], "flightClasses": [{ // Flight Class JSON }], "flightObjects": [{ // Flight Object JSON }], "giftCardClasses": [{ // Gift card Class JSON }], "giftCardObjects": [{ // Gift card Object JSON }], "loyaltyClasses": [{ // Loyalty Class JSON }], "loyaltyObjects": [{ // Loyalty Object JSON }], "offerClasses": [{ // Offer Class JSON }], "offerObjects": [{ // Offer Object JSON }], "transitClasses": [{ // Transit Class JSON }], "transitObjects": [{ // Transit Object JSON }] }, "origins": ["http://baconrista.com", "https://baconrista.com"] }
Campos
| Campo | Tipo | Obrigatório | Descrição | 
|---|---|---|---|
| iss | String | S | O endereço de e-mail gerado pela conta de serviço do Google Cloud. | 
| aud | String | S | Público-alvo. O público-alvo dos objetos da API Google Wallet será sempre google: | 
| typ | String | S | Tipo de JWT. O público-alvo dos objetos da API Google Wallet será sempre savetowallet: | 
| iat | Número inteiro | S | Emitido em tempo hábil, em segundos, desde o período. | 
| payload | Objeto | S | Objeto de payload. | 
| payload.eventTicketClasses | Matriz | N | Classe de ingresso de evento a ser salva. | 
| payload.eventTicketObjects | Matriz | N | Objeto de ingresso de evento a ser salvo. | 
| payload.flightClasses | Matriz | N | Classe de voo a ser salva. | 
| payload.flightObjects | Matriz | N | Objeto de voo a ser salvo. | 
| payload.giftCardClasses | Matriz | N | Classe de vale-presente a ser salva. | 
| payload.giftCardObjects | Matriz | N | Objeto de vale-presente a ser salvo. | 
| payload.loyaltyClasses | Matriz | N | Classe de fidelidade a ser salva. | 
| payload.loyaltyObjects | Matriz | N | Objeto de fidelidade a ser salvo. | 
| payload.offerObjects | Matriz | N | Objeto de oferta a ser salvo. | 
| payload.offerClasses | Matriz | N | Classe de oferta a ser salva. | 
| payload.transitObjects | Matriz | N | Objeto de transporte a ser salvo. | 
| payload.transitClasses | Matriz | N | Classe de transporte a ser salva. | 
| origins | Matriz | S | Matriz de domínios aprovados para a funcionalidade de salvamento do JWT. API Google Wallet
    O botão não será renderizado quando o campo originsnão estiver definido. Você pode
    pode receber uma mensagem de
"Carregamento negado por X-Frame-Options" ou "Exibição recusada" no
    console do navegador quando o campo de origem não está definido. | 
O JWT codificado pode ser semelhante ao seguinte exemplo:
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJnb29nbGUiLCJvcmlnaW5zIjpbImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MCIsImh0dHA6Ly93d3cuZ29vZ2xlLmNvbSJdLCJpc3MiOiJzMmFwLXRvb2wuZ29vZ2xlLmNvbUBhcHBzcG90LmdzZXJ2aWNlYWNjb3VudC5jb20iLCJpYXQiOjE1NTE5ODcxNTEsInR5cCI6InNhdmV0b3dhbGxldCIsInBheWxvYWQiOnsib2ZmZXJPYmplY3RzIjpbeyJpZCI6IjMyMDI0MTMyNDE4NDM2OTk0MDEuMDFfT2ZmZXJPYmplY3RJZCJ9XX19.maHX40WWT29TC_kEb90EKQBH9AiTYAZR3153K8UI7fznVnfjVdlwsH_GKTECV3PGXdNnKCcmatUbKsONC0bxrnAHYG02kuvA1D3hSctz_amU66ntsvGIDe13mpxTzhI8fPvt9KMP1iaO7uOJuLQIHwipu4uRFAjyFaHGVaSFaP9c53qQyb_Zgyyk50M-MhH2n4kDpstNCqUJKWaadQkOWjrtMjwGzQ_ME04lbR4wb_mfK1A7Rc1UieWkxM9aMl5TOPubBKxKRRk_CqillN8XoTl9MI5RRGPuElVO28zGpYlFS6BarzDaaUfmbRZGvfF8ZiKrHZKxVrJjfZIJ2TCcDw
Função gapi.savetoandroidpay.render
    Essa função permite renderizar explicitamente o botão da API Google Wallet.
gapi.savetoandroidpay.render("dom-container",{
  "jwt": "JWT",
  "onsuccess": "successHandler",
  "onfailure": "failureHandler"
});| Campo | Tipo | Obrigatório | Descrição | 
|---|---|---|---|
| dom-container | String | S | ID do contêiner onde o botão da API Google Wallet será colocado. | 
| jwt | String | S | JWT que define o conteúdo a ser salvo. | 
| onsuccess | String | N | String com nome da função gerenciadora de callback de sucesso na gravação. | 
| onfailure | String | N | Nome da string da função do gerenciador de callback de falha na gravação. Essa função recebe um que contém um errorCode e errorMessage. | 
| onprovidejwt | String | N | Nome da string da função do gerenciador JWT fornecido. O objetivo dessa função é
        interceptar e talvez manipular os dados do JWT antes que o objeto seja adicionado à Carteira do Google.
        Essa função não recebe nenhum parâmetro e precisa retornar o JWT como String.
        Ao implementar o manipulador de eventos, os dados do JWT originais podem ser recuperados
        no campo this.getOpenParams().renderData.userParams.jwt. | 
Códigos de erro e mensagens da API Google Wallet
As tabelas a seguir listam os códigos e as mensagens de erro padrão transmitidos no erro para a função de callback com falha, quando um objeto não é salvo corretamente usando o botão JavaScript.
        {
          "errorCode": "errorCode",
          "errorMessage": "errorMessage"
        }| errorCode | errorMessage | 
|---|---|
| SERVICE_FAILURE | Ocorreu um erro no servidor da Carteira do Google. | 
| CLASS_NOT_FOUND | A classe referenciada no objeto não foi encontrada. | 
| CLASS_MISMATCH | O objeto precisa estar presente, ser do mesmo tipo e fazer referência à classe incluída. | 
| ORIGIN_MISMATCH | A origem do botão não corresponde à especificada na lista de origens. | 
| INVALID_NUM_TYPES | Exatamente um tipo de objeto pode ser especificado. | 
| INVALID_SIGNATURE | Não foi possível verificar a assinatura. | 
| INVALID_DUPLICATE_IDS | Não é permitido duplicar objetos ou classes. | 
| INVALID_JWT | O JWT é inválido. | 
| INVALID_EXP_IAT | O JWT expirou ou foi emitido no futuro. | 
| INVALID_AUD | O valor é inválido para o campo AUD. | 
| INVALID_TYP | O valor é inválido para o campo TYP. | 
| INVALID_NUM_OBJECTS | Exatamente um objeto e no máximo uma classe podem ser especificados para cartões de fidelidade, vales-presente e ofertas. | 
| MALFORMED_ORIGIN_URL | URL de origem malformado. Ele precisa conter um protocolo e um domínio. | 
| MISSING_ORIGIN | É necessário especificar a origem. | 
| MISSING_FIELDS | O objeto ou a classe incluídos não continham os campos obrigatórios. | 
Localização
O idioma no botão JavaScript é alterado com base nos seguintes critérios:
- Se o usuário estiver conectado ao Google, o botão será processado no idioma preferencial fornecido no perfil da Conta do Google de um usuário. Um usuário pode ler Mudar idioma para saber como alterar o idioma preferido da Conta do Google.
- Se o usuário não estiver conectado ao Google, o botão usará o valor ACCEPT-LANGUAGE. no cabeçalho HTTP.
Se você perceber que o botão não está renderizado no idioma correto com base na lógica acima, ou se o texto não é natural, entre em contato com nossa equipe de suporte.
