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) e
standard (38 px de altura). O padrão de height é small .
Consulte os botões da API Google Wallet.
para conferir exemplos de botões com diferentes configurações de height . |
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 size como matchparent
para que a largura corresponda à largura do elemento pai. Ou saia do size
indefinido para que a largura se estenda para se ajustar à largura da configuração de text .
Consulte os botões da API Google Wallet.
para conferir exemplos de botões com diferentes configurações de size . |
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: dark e
light . O tema padrão é dark . Consulte
Botões da API Google Wallet
para conferir exemplos de botões com diferentes configurações de theme . |
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 origins nã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.