Przycisk JavaScript na stronie

Google Wallet API umożliwia użytkownikom dodawanie obiektu do Portfela Google z poziomu internetu. Użytkownicy mogą dodawać karty bezpośrednio z Twojej strony.

Ten artykuł zawiera szczegółowe informacje o elemencie HTML g:savetoandroidpay, który renderuje przycisk Google Wallet API oraz token internetowy JSON, który opisuje Twoją usługę internetową.

Google Wallet API – JavaScript

Aby automatycznie analizować tagi HTML g:savetoandroidpay przy wczytywaniu, dodaj tag standardowy JavaScript

<script src="https://apis.google.com/js/platform.js" type="text/javascript"></script>

W przypadku aplikacji AJAX i bezpośredniego renderowania przycisków API Portfela Google uwzględnij parametr "parsetags": "explicit".

<script src="https://apis.google.com/js/platform.js" type="text/javascript">
  {"parsetags": "explicit"}
</script>

Tag HTML g:savetoandroidpay

Tag przestrzeni nazw g:savetoandroidpay definiuje miejsce docelowe i różne atrybuty panelu Dodaj do Przycisk Portfela Google. Użyj tego tagu, jeśli renderujesz kod HTML i tokeny JWT po stronie serwera.

<g:savetoandroidpay jwt="JWT" onsuccess="successHandler" onfailure="failureHandler" />
Pole Typ Wymagane Opis
height Ciąg znaków N Wysokość wyświetlanego przycisku. Możliwe wartości: small (wysokość 30 pikseli) oraz standard (wysokość 38 pikseli). height ma domyślną wartość small. Więcej informacji znajdziesz w artykule Przyciski interfejsu API Portfela Google. aby zobaczyć przykłady przycisków z różnymi ustawieniami parametru height.
jwt Ciąg znaków T Token JWT w interfejsie Google Wallet API.
onsuccess Ciąg znaków N Ciąg znaków z nazwą funkcji obsługi wywołań zwrotnych udanego zapisu.
onfailure Ciąg znaków N Ciąg znaków z nazwą funkcji obsługi wywołań zwrotnych w przypadku błędu zapisu. Ta funkcja jest przekazywana obiekt błędu zawierający errorCode i errorMessage.
onprovidejwt Ciąg znaków N Ciąg znaków z nazwą funkcji obsługi udostępniania JWT. Celem tej funkcji jest przechwytywać dane JWT i potencjalnie manipulować nimi przed dodaniem obiektu do Portfela Google. Ta funkcja nie przyjmuje żadnych parametrów i musi zwracać token JWT w postaci ciągu znaków. Podczas implementowania modułu obsługi zdarzeń można pobrać oryginalne dane JWT w polu this.getOpenParams().renderData.userParams.jwt.
size Ciąg znaków N Szerokość wyświetlanego przycisku. Dla size możesz ustawić wartość matchparent aby szerokość była taka sama jak szerokość elementu nadrzędnego. Możesz też opuścić size nie określono tak, aby szerokość rozciągała się do szerokości w ustawieniu text. Więcej informacji znajdziesz w artykule Przyciski interfejsu API Portfela Google. aby zobaczyć przykłady przycisków z różnymi ustawieniami parametru size.
text Ciąg znaków N Wycofano
textsize Ciąg znaków N Jeśli jest określony parametr textsize=large, wyświetla się znacząco zwiększył rozmiar tekstu rozmiaru przycisku w przypadku specjalnych wymagań interfejsu użytkownika.
theme Ciąg znaków N Motyw wyświetlanego przycisku. Możliwe wartości to dark oraz light Domyślny motyw to dark. Więcej informacji: Przyciski interfejsu API Portfela Google aby zobaczyć przykłady przycisków z różnymi ustawieniami parametru theme.

Token JWT w interfejsie Google Wallet API

Token JWT interfejsu Google Wallet API określa obiekty i klasy do zapisania.

Zapis 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"]
}

Pola

Pole Typ Wymagane Opis
iss Ciąg znaków T Adres e-mail wygenerowany przez Twoje konto usługi Google Cloud.
aud Ciąg znaków T Odbiorcy. Odbiorcą obiektów interfejsu Google Wallet API będzie zawsze google
typ Ciąg znaków T Typ tokena JWT. Odbiorcą obiektów interfejsu Google Wallet API będzie zawsze savetowallet
iat Liczba całkowita T Czas wydania w sekundach od początku epoki.
payload Obiekt T Obiekt ładunku.
payload.eventTicketClasses Tablica N Klasa biletu na wydarzenie do zapisania.
payload.eventTicketObjects Tablica N Obiekt biletu na wydarzenie do zapisania.
payload.flightClasses Tablica N Klasa lotu, która ma być zapisana.
payload.flightObjects Tablica N Obiekt lotu do zapisania.
payload.giftCardClasses Tablica N Klasa karty podarunkowej do zapisania.
payload.giftCardObjects Tablica N Obiekt karty podarunkowej do zapisania.
payload.loyaltyClasses Tablica N Klasa lojalnościowa do zapisania.
payload.loyaltyObjects Tablica N Obiekt lojalnościowy do zapisania.
payload.offerObjects Tablica N Obiekt oferty do zapisania.
payload.offerClasses Tablica N Klasa oferty, którą chcesz zapisać.
payload.transitObjects Tablica N Obiekt transportu publicznego do zapisania.
payload.transitClasses Tablica N Klasa transportu publicznego do zapisania.
origins Tablica T Tablica domen do zatwierdzenia na potrzeby funkcji zapisu tokena JWT. Interfejs API Portfela Google Przycisk nie zostanie wyświetlony, jeśli pole origins nie jest zdefiniowane. Możesz może wyświetlić się komunikat o odrzuceniu obciążenia przez X-Frame-Options. lub „Odmowa wyświetlenia” wiadomości w w konsoli przeglądarki, gdy pole origin nie jest zdefiniowane.

Zakodowany token JWT powinien wyglądać podobnie do tego przykładu:

eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJnb29nbGUiLCJvcmlnaW5zIjpbImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MCIsImh0dHA6Ly93d3cuZ29vZ2xlLmNvbSJdLCJpc3MiOiJzMmFwLXRvb2wuZ29vZ2xlLmNvbUBhcHBzcG90LmdzZXJ2aWNlYWNjb3VudC5jb20iLCJpYXQiOjE1NTE5ODcxNTEsInR5cCI6InNhdmV0b3dhbGxldCIsInBheWxvYWQiOnsib2ZmZXJPYmplY3RzIjpbeyJpZCI6IjMyMDI0MTMyNDE4NDM2OTk0MDEuMDFfT2ZmZXJPYmplY3RJZCJ9XX19.maHX40WWT29TC_kEb90EKQBH9AiTYAZR3153K8UI7fznVnfjVdlwsH_GKTECV3PGXdNnKCcmatUbKsONC0bxrnAHYG02kuvA1D3hSctz_amU66ntsvGIDe13mpxTzhI8fPvt9KMP1iaO7uOJuLQIHwipu4uRFAjyFaHGVaSFaP9c53qQyb_Zgyyk50M-MhH2n4kDpstNCqUJKWaadQkOWjrtMjwGzQ_ME04lbR4wb_mfK1A7Rc1UieWkxM9aMl5TOPubBKxKRRk_CqillN8XoTl9MI5RRGPuElVO28zGpYlFS6BarzDaaUfmbRZGvfF8ZiKrHZKxVrJjfZIJ2TCcDw

funkcja gapi.savetoandroidpay.render

Ta funkcja umożliwia jawne renderowanie przycisku interfejsu API Portfela Google.

gapi.savetoandroidpay.render("dom-container",{
  "jwt": "JWT",
  "onsuccess": "successHandler",
  "onfailure": "failureHandler"
});
Pole Typ Wymagane Opis
dom-container Ciąg znaków T Identyfikator kontenera przycisku Google Wallet API.
jwt Ciąg znaków T Token JWT określający treść do zapisania.
onsuccess Ciąg znaków N Ciąg znaków z nazwą funkcji obsługi wywołań zwrotnych udanego zapisu.
onfailure Ciąg znaków N Ciąg znaków z nazwą funkcji obsługi wywołań zwrotnych w przypadku błędu zapisu. Ta funkcja jest przekazywana obiekt błędu zawierający errorCode i errorMessage.
onprovidejwt Ciąg znaków N Ciąg znaków z nazwą funkcji obsługi udostępniania JWT. Celem tej funkcji jest przechwytywać dane JWT i potencjalnie manipulować nimi przed dodaniem obiektu do Portfela Google. Ta funkcja nie przyjmuje żadnych parametrów i musi zwracać token JWT w postaci ciągu znaków. Podczas implementowania modułu obsługi zdarzeń można pobrać oryginalne dane JWT w polu this.getOpenParams().renderData.userParams.jwt.

Kody błędów i komunikaty o błędach interfejsu API Portfela Google

W tabelach poniżej znajdziesz kody błędów i domyślne komunikaty o błędach przekazywane w ramach błędu , gdy obiekt nie zostanie poprawnie zapisany za pomocą przycisku JavaScript.

        {
          "errorCode": "errorCode",
          "errorMessage": "errorMessage"
        }
errorCode errorMessage
SERVICE_FAILURE Na serwerze Portfela Google wystąpił błąd.
CLASS_NOT_FOUND Nie znaleziono klasy, do której odwołuje się obiekt.
CLASS_MISMATCH Obiekt musi być obecny, tego samego typu i odwoływać się do dołączonej klasy.
ORIGIN_MISMATCH Źródło przycisku nie pasuje do źródła na liście.
INVALID_NUM_TYPES Można określić tylko jeden typ obiektu.
INVALID_SIGNATURE Nie udało się zweryfikować podpisu.
INVALID_DUPLICATE_IDS Duplikaty obiektów lub klas są niedozwolone.
INVALID_JWT Nieprawidłowy token JWT.
INVALID_EXP_IAT Token JWT wygasł lub został wydany w przyszłości.
INVALID_AUD Nieprawidłowa wartość pola AUD.
INVALID_TYP Nieprawidłowa wartość pola TYP.
INVALID_NUM_OBJECTS Dla kart lojalnościowych, kart podarunkowych i ofert specjalnych możesz podać dokładnie 1 obiekt i maksymalnie 1 klasę.
MALFORMED_ORIGIN_URL Nieprawidłowy format adresu URL źródła. URL musi zawierać protokół i domenę.
MISSING_ORIGIN Musisz podać źródło.
MISSING_FIELDS W dołączonym obiekcie lub klasie brakuje wymaganych pól.

Lokalizacja

Język przycisku w JavaScript zmienia się w zależności od tych kryteriów:

  1. Jeśli użytkownik jest zalogowany w Google, przycisk jest renderowany w preferowanym języku podanym w profilu konta Google użytkownika. Użytkownik może czytać Zmiana języka aby dowiedzieć się, jak zmienić preferowany język konta Google.
  2. Jeśli użytkownik nie jest zalogowany w Google, przycisk używa wartości ACCEPT-LANGUAGE. w nagłówku HTTP.

Jeśli przycisk nie renderuje się we właściwym języku zgodnie z powyższymi zasadami lub jeśli ma nienaturalny charakter, skontaktuj się z naszym zespołem pomocy.