JavaScript-Webschaltfläche

Mit der Google Wallet API können Ihre Nutzer ein Objekt aus dem Web zu Google Wallet hinzufügen. Nutzer können ihre Karten direkt über Ihre Website hinzufügen.

In dieser Referenz finden Sie Details zum HTML-Element g:savetoandroidpay, mit dem eine Google Wallet API-Schaltfläche gerendert wird, sowie zum JSON-Webtoken, das Ihren Webdienst für Google beschreibt.

JavaScript der Google Wallet API

Wenn Sie g:savetoandroidpay-HTML-Tags beim Laden automatisch parsen möchten, schließen Sie das Standard-JavaScript ein

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

Geben Sie für AJAX-Anwendungen und für das explizite Rendern der Google Wallet API-Schaltflächen den Parameter "parsetags": "explicit" an.

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

g:savetoandroidpay-HTML-Tag

Mit dem g:savetoandroidpay-Namespace-Tag werden das Placement und verschiedene Attribute der Schaltfläche „Zu Google Wallet hinzufügen“ definiert. Verwende dieses Tag, wenn du HTML- und JWTs serverseitig renderst.

<g:savetoandroidpay jwt="JWT" onsuccess="successHandler" onfailure="failureHandler" />
Feld Typ Erforderlich Beschreibung
height String N Höhe der Schaltfläche, die angezeigt werden soll. Mögliche Werte sind: small (30 Pixel hoch) und standard (38 Pixel hoch). Die Standardeinstellung für height ist small. Unter Google Wallet API-Schaltflächen finden Sie Beispiele für Schaltflächen mit unterschiedlichen height-Einstellungen.
jwt String J Google Wallet API-JWT.
onsuccess String N Stringname der Callback-Handler-Funktion bei erfolgreichem Speichern.
onfailure String N Stringname der Callback-Handler-Funktion beim Speichernfehler. Dieser Funktion wird ein Fehlerobjekt übergeben, das einen „errorCode“ und „errorMessage“ enthält.
onprovidejwt String N Stringname der Funktion zum Bereitstellen des JWT-Handlers. Diese Funktion dient dazu, die JWT-Daten abzufangen und möglicherweise zu bearbeiten, bevor das Objekt zu Google Wallet hinzugefügt wird. Diese Funktion akzeptiert keine Parameter und muss das JWT als String zurückgeben. Beim Implementieren des Event-Handlers können die ursprünglichen JWT-Daten unter Feld this.getOpenParams().renderData.userParams.jwt abgerufen werden.
size String N Breite der Schaltfläche, die angezeigt werden soll. Sie können size auf matchparent festlegen, damit die Breite der Breite des übergeordneten Elements entspricht. Sie können size auch nicht definieren, damit die Breite an die Breite der Einstellung text angepasst wird. Unter Google Wallet API-Schaltflächen finden Sie Beispiele für Schaltflächen mit unterschiedlichen size-Einstellungen.
text String N Verworfen
textsize String N Wenn textsize=large angegeben ist, werden die Text- und Schaltflächengröße erheblich erhöht, falls spezielle Anforderungen an die Benutzeroberfläche gelten.
theme String N Design der angezeigten Schaltfläche. Mögliche Werte sind: dark und light. Das Standarddesign ist dark. Unter Google Wallet API-Schaltflächen finden Sie Beispiele für Schaltflächen mit unterschiedlichen theme-Einstellungen.

Google Wallet API-JWT

Das Google Wallet API-JWT definiert die zu speichernden Objekte und Klassen.

Protokoll

        {
  "iss": "example_service_account@developer.gserviceaccount.com",
  "aud": "google",
  "typ": "savetoandroidpay",
  "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"]
}

Hinweis:Diese JWTs sind mit RSA-SHA256 signiert. Der Signaturschlüssel ist der vom OAuth-Dienstkonto generierte Schlüssel.

Feld Typ Erforderlich Beschreibung
iss String J Die E-Mail-Adresse, die von Ihrem OAuth 2.0-Dienstkonto erstellt wurde.
aud String J Zielgruppe. Die Zielgruppe für Google Wallet API-Objekte ist immer google.
typ String J JWT-Typ. Die Zielgruppe für Google Wallet API-Objekte ist immer savetoandroidpay.
iat Ganzzahl J Wird in Sekunden seit der UNIX-Epoche ausgegeben.
payload Objekt J Nutzlastobjekt.
payload.eventTicketClasses Array N Klasse des Veranstaltungstickets, die gespeichert werden soll.
payload.eventTicketObjects Array N Zu speicherndes Veranstaltungsticketobjekt.
payload.flightClasses Array N Zu speichernde Flugklasse.
payload.flightObjects Array N Zu speicherndes Flight-Objekt.
payload.giftCardClasses Array N Geschenkkartenklasse, die gespeichert werden soll.
payload.giftCardObjects Array N Geschenkkartenobjekt, das gespeichert werden soll.
payload.loyaltyClasses Array N Treueklasse, die gespeichert werden soll.
payload.loyaltyObjects Array N Zu speicherndes Treueobjekt.
payload.offerObjects Array N Zum Speichern Objekt anbieten.
payload.offerClasses Array N Angebot speichern.
payload.transitObjects Array N Zu speicherndes Transit-Objekt.
payload.transitClasses Array N Zu speichernde Transitklasse.
origins Array J Array von Domains, die für die JWT-Speicherung genehmigt werden sollen Die Schaltfläche der Google Wallet API wird nicht gerendert, wenn das Feld origins nicht definiert ist. Wenn das Feld für den Ursprung nicht definiert ist, wird in der Browserkonsole möglicherweise die Meldung „Load von X-Frame-Options abgelehnt“ oder „Anzeige abgelehnt“ angezeigt.

Das codierte JWT sollte in etwa so aussehen:

eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJnb29nbGUiLCJvcmlnaW5zIjpbImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MCIsImh0dHA6Ly93d3cuZ29vZ2xlLmNvbSJdLCJpc3MiOiJzMmFwLXRvb2wuZ29vZ2xlLmNvbUBhcHBzcG90LmdzZXJ2aWNlYWNjb3VudC5jb20iLCJpYXQiOjE1NTE5ODcxNTEsInR5cCI6InNhdmV0b3dhbGxldCIsInBheWxvYWQiOnsib2ZmZXJPYmplY3RzIjpbeyJpZCI6IjMyMDI0MTMyNDE4NDM2OTk0MDEuMDFfT2ZmZXJPYmplY3RJZCJ9XX19.maHX40WWT29TC_kEb90EKQBH9AiTYAZR3153K8UI7fznVnfjVdlwsH_GKTECV3PGXdNnKCcmatUbKsONC0bxrnAHYG02kuvA1D3hSctz_amU66ntsvGIDe13mpxTzhI8fPvt9KMP1iaO7uOJuLQIHwipu4uRFAjyFaHGVaSFaP9c53qQyb_Zgyyk50M-MhH2n4kDpstNCqUJKWaadQkOWjrtMjwGzQ_ME04lbR4wb_mfK1A7Rc1UieWkxM9aMl5TOPubBKxKRRk_CqillN8XoTl9MI5RRGPuElVO28zGpYlFS6BarzDaaUfmbRZGvfF8ZiKrHZKxVrJjfZIJ2TCcDw

gapi.savetoandroidpay.render-Funktion

Mit dieser Funktion können Sie die Google Wallet API-Schaltfläche explizit rendern.

gapi.savetoandroidpay.render("dom-container",{
  "jwt": "JWT",
  "onsuccess": "successHandler",
  "onfailure": "failureHandler"
});
Feld Typ Erforderlich Beschreibung
dom-container String J ID des Containers, in dem die Google Wallet API-Schaltfläche platziert werden soll.
jwt String J JWT, mit dem die zu speichernden Inhalte definiert werden.
onsuccess String N Stringname der Callback-Handler-Funktion bei erfolgreichem Speichern.
onfailure String N Stringname der Callback-Handler-Funktion beim Speichernfehler. Dieser Funktion wird ein Fehlerobjekt übergeben, das einen „errorCode“ und „errorMessage“ enthält.
onprovidejwt String N Stringname der Funktion zum Bereitstellen des JWT-Handlers. Diese Funktion dient dazu, die JWT-Daten abzufangen und möglicherweise zu bearbeiten, bevor das Objekt zu Google Wallet hinzugefügt wird. Diese Funktion akzeptiert keine Parameter und muss das JWT als String zurückgeben. Beim Implementieren des Event-Handlers können die ursprünglichen JWT-Daten unter Feld this.getOpenParams().renderData.userParams.jwt abgerufen werden.

Fehlercodes und -meldungen der Google Wallet API

In den folgenden Tabellen sind die Fehlercodes und Standardfehlermeldungen aufgeführt, die im Fehlerobjekt an die Fehler-Callback-Funktion übergeben werden, wenn ein Objekt nicht mit der JavaScript-Schaltfläche gespeichert werden kann.

        {
          "errorCode": "errorCode",
          "errorMessage": "errorMessage"
        }
errorCode errorMessage
SERVICE_FAILURE Auf dem Google Wallet-Server ist ein Fehler aufgetreten.
CLASS_NOT_FOUND Die Klasse, auf die im Objekt verwiesen wird, wurde nicht gefunden.
CLASS_MISMATCH Objekt muss vorhanden sein, denselben Typ haben und auf die eingeschlossene Klasse verweisen.
ORIGIN_MISMATCH Der Ursprung der Schaltfläche stimmt nicht mit dem in der Liste „Origins“ überein.
INVALID_NUM_TYPES Es kann genau ein Objekttyp angegeben werden.
INVALID_SIGNATURE Die Signatur konnte nicht bestätigt werden.
INVALID_DUPLICATE_IDS Doppelte Objekte oder Klassen sind nicht zulässig.
INVALID_JWT Ungültiges JWT.
INVALID_EXP_IAT JWT ist abgelaufen oder wurde in der Zukunft ausgestellt.
INVALID_AUD Ungültiger Wert für das Feld „AUD“.
INVALID_TYP Ungültiger Wert für das Feld „TYP“.
INVALID_NUM_OBJECTS Für Kundenkarten, Geschenkkarten und Angebote können genau ein Objekt und höchstens eine Klasse angegeben werden.
MALFORMED_ORIGIN_URL Fehlerhafte Ursprungs-URL. Die URL muss ein Protokoll und eine Domain enthalten.
MISSING_ORIGIN Der Ursprung muss angegeben werden.
MISSING_FIELDS In den umschlossenen Objekten oder Klassen fehlten Pflichtfelder.

Lokalisierung

Die Sprache in der JavaScript-Schaltfläche ändert sich basierend auf den folgenden Kriterien:

  1. Wenn der Nutzer bei Google angemeldet ist, wird die Schaltfläche in der Sprache angezeigt, die im Google-Kontoprofil des Nutzers angegeben ist. Ein Nutzer kann unter Sprache ändern nachlesen, wie er die bevorzugte Sprache seines Google-Kontos ändern kann.
  2. Wenn der Nutzer nicht bei Google angemeldet ist, verwendet die Schaltfläche den ACCEPT-LANGUAGE-Wert im HTTP-Header.

Wenn die Schaltfläche nicht gemäß der oben genannten Logik in der richtigen Sprache gerendert wird oder der Wortlaut unnatürlich ist, wende dich an unser Supportteam.