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:
- 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.
- 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.