JavaScript-Webschaltfläche

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

Diese Referenz enthält Details zum HTML-Element g:savetoandroidpay, das rendert eine Google Wallet API-Schaltfläche sowie das JSON Web Token das Ihren Webdienst für Google beschreibt.

JavaScript der Google Wallet API

Um g:savetoandroidpay-HTML-Tags beim Laden automatisch zu parsen, schließen Sie den standardmäßigen JavaScript

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

Füge für AJAX-Anwendungen und das explizite Rendern von Google Wallet API-Schaltflächen den Parameter "parsetags": "explicit" ein.

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

g:savetoandroidpay-HTML-Tag

Das Namespace-Tag g:savetoandroidpay definiert die das Placement und verschiedene Attribute der Funktion Google Wallet-Schaltfläche. Verwende dieses Tag beim Rendern von HTML und JWTs auf der Serverseite.

<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) Der Standardwert für height ist small. Weitere Informationen findest du unter Google Wallet API-Schaltflächen. , um Beispiele für Schaltflächen mit unterschiedlichen height-Einstellungen zu sehen.
jwt String Ja Google Wallet API-JWT.
onsuccess String N Stringname der Callback-Handler-Funktion bei erfolgreichem Speichern.
onfailure String N Stringname der Callback-Handler-Funktion bei Fehlschlagen des Speichervorgangs. Dieser Funktion wird ein Fehlerobjekt, das einen errorCode und eine errorMessage enthält.
onprovidejwt String N Stringname der Handler-Funktion für die Bereitstellung des JWT. Der Zweck dieser Funktion besteht darin, JWT-Daten abfangen und möglicherweise ändern, 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 abgerufen werden. unter dem Feld this.getOpenParams().renderData.userParams.jwt.
size String N Breite der Schaltfläche, die angezeigt werden soll. Sie können size auf matchparent setzen um, dass die Breite der Breite des übergeordneten Elements entspricht. Oder size verlassen nicht definiert, sodass die Breite an die Breite der Einstellung text angepasst wird. Weitere Informationen findest du unter Google Wallet API-Schaltflächen. , um Beispiele für Schaltflächen mit unterschiedlichen size-Einstellungen zu sehen.
text String N Verworfen
textsize String N Wenn textsize=large angegeben ist, wird Folgendes angezeigt: die Textgröße erheblich erhöht und Schaltflächengröße für Fälle mit speziellen Anforderungen an die Benutzeroberfläche.
theme String N Design der anzuzeigenden Schaltfläche. Mögliche Werte sind: dark und light. Das Standarddesign ist dark. Weitere Informationen finden Sie unter Google Wallet API-Schaltflächen , um Beispiele für Schaltflächen mit unterschiedlichen theme-Einstellungen zu sehen.

Google Wallet API-JWT

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

JSON-Darstellung

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

Felder

Feld Typ Erforderlich Beschreibung
iss String Ja Die von Ihrem Google Cloud-Dienstkonto generierte E-Mail-Adresse.
aud String Ja Zielgruppe. Die Zielgruppe für Google Wallet API-Objekte ist immer google
typ String Ja JWT-Typ. Die Zielgruppe für Google Wallet API-Objekte ist immer savetowallet
iat Ganzzahl Ja In einer Zeit in Sekunden seit der Epoche ausgegeben.
payload Object Ja Nutzlastobjekt.
payload.eventTicketClasses Array N Zu speichernde Klasse des Veranstaltungstickets
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 Zu speichernde Geschenkkartenklasse
payload.giftCardObjects Array N Zu speicherndes Geschenkkartenobjekt
payload.loyaltyClasses Array N Zu speichernde Treueklasse
payload.loyaltyObjects Array N Zu speicherndes Treueobjekt
payload.offerObjects Array N Zu speicherndes Angebotsobjekt
payload.offerClasses Array N Zu speichernde Angebotsklasse
payload.transitObjects Array N Zu speicherndes Verkehrsobjekt
payload.transitClasses Array N Zu speichernde Verkehrsklasse
origins Array Ja Array von Domains, die für die JWT-Speicherung genehmigt werden sollen. Die Google Wallet API Die Schaltfläche wird nicht gerendert, wenn das Feld origins nicht definiert ist. Sie könnten eine Meldung erhalten, dass das Laden von X-Frame-Options verweigert wird. oder „Anzeige abgelehnt“ Nachrichten im Browserkonsole, wenn das Feld „Ursprünge“ nicht definiert ist.

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 kannst du 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 Ja ID des Containers, in dem die Google Wallet API-Schaltfläche platziert werden soll.
jwt String Ja 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 bei Fehlschlagen des Speichervorgangs. Dieser Funktion wird ein Fehlerobjekt, das einen errorCode und eine errorMessage enthält.
onprovidejwt String N Stringname der Handler-Funktion für die Bereitstellung des JWT. Der Zweck dieser Funktion besteht darin, JWT-Daten abfangen und möglicherweise ändern, 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 abgerufen werden. unter dem Feld this.getOpenParams().renderData.userParams.jwt.

Fehlercodes und Fehlermeldungen in der Google Wallet API

In den folgenden Tabellen sind die Fehlercodes und Standardfehlermeldungen aufgeführt, die im Fehler Objekt zur Fehler-Callback-Funktion hinzu, wenn ein Objekt nicht mithilfe 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 Quellenliste angegebenen Ursprung überein.
INVALID_NUM_TYPES Es kann genau ein Objekttyp angegeben werden.
INVALID_SIGNATURE Die Signatur konnte nicht verifiziert werden.
INVALID_DUPLICATE_IDS Doppelte Objekte oder Klassen sind nicht zulässig.
INVALID_JWT Ungültiges JWT.
INVALID_EXP_IAT Das 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 Bei den eingeschlossenen Objekten oder Klassen fehlten Pflichtfelder.

Lokalisierung

Die Sprache 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 gerendert, die im Google-Kontoprofil des Nutzers. Ein Nutzer kann Folgendes lesen: Sprache ändern .
  2. Wenn der Nutzer nicht bei Google angemeldet ist, verwendet die Schaltfläche den Wert ACCEPT-LANGUAGE im HTTP-Header.

Wenn Sie feststellen, dass die Schaltfläche gemäß der oben genannten Logik nicht in der richtigen Sprache gerendert wird, oder wenn die Formulierung unnatürlich ist, wenden Sie sich bitte an unser Supportteam.