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