Interfejs Google Wallet API umożliwia użytkownikom dodawanie obiektów do Portfela Google z internetu. Użytkownicy mogą dodawać karty bezpośrednio w Twojej witrynie.
Ten artykuł zawiera szczegółowe informacje o elemencie HTML g:savetoandroidpay
, który renderuje przycisk interfejsu Google Wallet API, oraz o tokenie sieciowym JSON, który opisuje Google Twoją usługę internetową.
JavaScript API Portfela Google
Aby automatycznie analizować tagi HTML g:savetoandroidpay
przy wczytywaniu, dodaj standardowy kod JavaScript.
<script src="https://apis.google.com/js/platform.js" type="text/javascript"></script>
W przypadku aplikacji AJAX i jawnego renderowania przycisków interfejsu API Portfela Google dodaj 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
określa miejsce docelowe i różne atrybuty przycisku Dodaj do 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ść przycisku do wyświetlenia. Możliwe wartości to small (wysokość 30 pikseli) i standard (wysokość 38 pikseli). height ma domyślnie wartość small .
Przykładowe przyciski z różnymi ustawieniami parametru height znajdziesz w opisie przycisków interfejsu API Portfela Google. |
jwt |
Ciąg znaków | T | JWT interfejsu Google Wallet API. |
onsuccess |
Ciąg znaków | N | Ciąg znaków z nazwą funkcji obsługi wywołania zwrotnego zapisanego powodzenia. |
onfailure |
Ciąg znaków | N | Ciąg znaków z nazwą funkcji obsługi wywołania zwrotnego błędu zapisu. Do tej funkcji jest przekazywany 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 tokena JWT. Ta funkcja służy do przechwytywania danych JWT i ewentualnego manipulowania nimi przed dodaniem obiektu do Portfela Google.
Ta funkcja nie przyjmuje żadnych parametrów i musi zwracać token JWT jako ciąg znaków.
Podczas implementowania modułu obsługi zdarzeń oryginalne dane JWT można pobrać z pola this.getOpenParams().renderData.userParams.jwt . |
size |
Ciąg znaków | N | Szerokość przycisku do wyświetlenia. Możesz ustawić size na matchparent , aby szerokość była taka sama jak szerokość elementu nadrzędnego. Możesz też pozostawić size bez wartości, aby dopasować przycisk do szerokości w ustawieniu text .
Przykładowe przyciski z różnymi ustawieniami parametru size znajdziesz w opisie przycisków interfejsu API Portfela Google. |
text |
Ciąg znaków | N | Wycofano |
textsize |
Ciąg znaków | N | Jeśli podasz textsize=large , rozmiar tekstu i przycisków znacznie się zwiększy, co może być przydatne w przypadku specjalnych wymagań interfejsu. |
theme |
Ciąg znaków | N | Motyw wyświetlanego przycisku. Możliwe wartości to dark i light . Domyślny motyw to dark . Przykładowe przyciski z różnymi ustawieniami parametru theme znajdziesz w opisie przycisków interfejsu Google Wallet API. |
Token JWT interfejsu Google Wallet API
Token JWT interfejsu Google Wallet API definiuje 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, która ma być zapisana. |
payload.eventTicketObjects |
Tablica | N | Obiekt biletu na wydarzenie, który ma zostać zapisany. |
payload.flightClasses |
Tablica | N | Klasa lotu do zapisania. |
payload.flightObjects |
Tablica | N | Obiekt lotu, który ma być zapisany. |
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, która ma być zapisana. |
payload.loyaltyObjects |
Tablica | N | Obiekt lojalnościowy do zapisania. |
payload.offerObjects |
Tablica | N | Obiekt oferty do zapisania. |
payload.offerClasses |
Tablica | N | Zaproponuj zajęcia, które chcesz zapisać. |
payload.transitObjects |
Tablica | N | Obiekt transportu publicznego, który ma być zapisany. |
payload.transitClasses |
Tablica | N | Klasa biletu do zapisania. |
origins |
Tablica | T | Tablica domen do zatwierdzenia na potrzeby funkcji zapisywania JWT. Przycisk Google Wallet API nie wyświetli się, jeśli pole origins nie będzie zdefiniowane. Jeśli pole „origins” nie będzie zdefiniowane, w konsoli przeglądarki może pojawić się komunikat o odrzuceniu przez ustawienie X-Frame-Options lub o nieudanej próbie wyświetlenia. |
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 Google Wallet API.
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 zawartość do zapisania. |
onsuccess |
Ciąg znaków | N | Ciąg znaków z nazwą funkcji obsługi wywołania zwrotnego zapisanego powodzenia. |
onfailure |
Ciąg znaków | N | Ciąg znaków z nazwą funkcji obsługi wywołania zwrotnego błędu zapisu. Do tej funkcji jest przekazywany 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 tokena JWT. Ta funkcja służy do przechwytywania danych JWT i ewentualnego manipulowania nimi przed dodaniem obiektu do Portfela Google.
Ta funkcja nie przyjmuje żadnych parametrów i musi zwracać token JWT jako ciąg znaków.
Podczas implementowania modułu obsługi zdarzeń oryginalne dane JWT można pobrać z pola this.getOpenParams().renderData.userParams.jwt . |
Kody błędów i komunikaty o błędach interfejsu Google Wallet API
W tabelach poniżej znajdziesz kody błędów i domyślne komunikaty o błędach, które są przekazywane w obiekcie błędu do funkcji wywołania zwrotnego błędu, gdy nie uda się zapisać obiektu 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ć dokładnie 1 typ obiektu. |
INVALID_SIGNATURE |
Nie udało się zweryfikować podpisu. |
INVALID_DUPLICATE_IDS |
Powtarzające się obiekty i klasy 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żna określić dokładnie 1 obiekt i maksymalnie jedną klasę. |
MALFORMED_ORIGIN_URL |
Nieprawidłowy format adresu URL źródła. URL musi zawierać protokół i domenę. |
MISSING_ORIGIN |
Musisz określić źródło. |
MISSING_FIELDS |
W dołączonym obiekcie lub klasie brakuje wymaganych pól. |
Lokalizacja
Język przycisku JavaScript zmienia się w zależności od tych kryteriów:
- Jeśli użytkownik jest zalogowany w Google, przycisk wyświetla się w preferowanym języku podanym w profilu konta Google użytkownika. Użytkownik może wybrać Zmień język, aby dowiedzieć się, jak zmienić język konta Google.
- 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 założeniami lub jeśli wyświetla się nietypowy tekst, skontaktuj się z naszym zespołem pomocy.