Google Wallet API unter Android

Wie können beispielsweise Retailer Ihre Kundenkarten ins Wallet integrieren?

Wer kennt es nicht? Ein überfülltes Portemonnaie mit Kundenkarten von mehreren Shops, seien es Drogeriemärkte, Supermärkte oder auch Modegeschäfte. Um diese Problematik aufzulösen können Kunden diese Kundenkarten digital in ihrem Wallet abspeichern. Was dafür notwendig ist und wie man den Kunden dies ermöglicht wird im Folgenden erklärt. Allerdings wird in diesem Blogbeitrag lediglich die Integration unter Android betrachtet.

Google Wallet API

„Nutzern schnellen und sicheren Zugriff auf Alltagshelfer ermöglichen“ (https://developers.google.com/wallet?hl=de). So wird es auf der Website beworben. Mit dem Google Wallet ist es möglich, überall dort, wo digitale Bezahlungsmöglichkeiten, Kundenkarten oder auch bspw. Flugtickets akzeptiert werden, die im Wallet gespeicherten Karten zu verwenden. Im Leitfaden der Google Wallet API werden auch verschiedene gängige Anwendungsfälle aufgelistet. Hierunter fallen:

  • Einzelhandel
  • Tickets
  • Zugriff (bspw. digitale Autoschlüssel)
  • Gesundheit (bspw. Impfnachweise)
  • Generische Tickets, falls keiner der vorherigen Fälle zutrifft (bspw. Versicherungskarten)

Die jeweiligen Anwendungsfälle haben entsprechende Anleitungen, welche für die Integration befolgt werden können. Hier wird bspw. beim Einzelhandel erklärt, wie Treuepunkteprogramme, Geschenkkarten und weitere Angebote in das Wallet integriert werden können.

Barcodemöglichkeiten

Dadurch, dass die Kartenlesegeräte nur gewisse Barcodetypen erkennen und lesen können, kann man entsprechend den Barcodetyp der Karte, die im Wallet angezeigt wird, anpassen. Folgende Übersicht zeigt die Formate an, welche für die Karte eingestellt werden können:

Name Zusätzliche Information
AZTEC Wird für rotierende Barcodes nicht unterstützt.
CODE_39 Wird für rotierende Barcodes nicht unterstützt.
CODE_128 Wird für rotierende Barcodes nicht unterstützt.
CODABAR Wird für rotierende Barcodes nicht unterstützt.
DATA_MATRIX Ein 2D-Matrix-Barcode aus Schwarz-Weiß. Zellen oder Module sind entweder quadratisch oder rechteckig angeordnet. Wird für rotierende Barcodes nicht unterstützt.
EAN_8 Wird für rotierende Barcodes nicht unterstützt.
EAN_13 Wird für rotierende Barcodes nicht unterstützt.
ITF_14 14-stelliger ITF-Code wird nicht für rotierende Barcodes unterstützt.
PDF_417 Wird für rotierende Barcodes unterstützt.
QR_CODE Wird für rotierende Barcodes unterstützt.
UPC_A 11- oder 12-stellige Codes, die für rotierende Barcodes nicht unterstützt werden.
TEXT_ONLY Gibt das Feld als Textfeld wieder. Das Feld alternateText darf nicht mit einem Barcode des Typs textOnly verwendet werden. Wird für rotierende Barcodes nicht unterstützt.

(vgl. https://developers.google.com/wallet/generic/rest/v1/BarcodeType?hl=de)

Bei der Übersicht wurden explizit die veralteten Barcodetypen ignoriert. Die Übersicht entspricht den Barcodetypen, die für generische Tickets eingestellt werden können.

Ohne eine App die Karte ins Wallet integrieren

Es ist möglich, ohne eine eigene App Implementierung die Kundenkarte ins Wallet zu integrieren. Dafür sind allerdings gewisse Schritte und Angaben in der Wallet API zu machen, sodass bspw. Retailer in der Auflistung erscheinen. In der Wallet Android App sieht das dann wie folgt aus:

Wallet API | Kundenkarte hinzufügen

Innerhalb der Wallet Android App kann man eine Kundenkarte hinzufügen und entsprechende Anbieter, die in der Wallet API ihre Angaben gemacht und das Profil veröffentlicht haben treten dann in dieser Auflistung auf. Anschließend kann der Anbieter ausgewählt und die Kundenkarte entweder gescannt oder die Mitglieds-ID manuell eingegeben werden.

Wallet API | DeutschlandCard

Schlussendlich muss nur noch das Hinzufügen fertiggestellt werden und die Kundenkarte befindet sich dann im digitalen Wallet.

Wallet API | Kundenkarte digital

Aber, wie bereits erwähnt, müssen in der Wallet API zunächst einmal einige Angaben gemacht werden, damit man überhaupt in der Auflistung erscheint. Dafür muss die Google Wallet API aufgerufen werden. Die Oberfläche sieht dann wie folgt aus:

Die sensiblen Daten wie die Austeller-ID, der Name des Wallets und die Händler-ID wurden ausgeblendet. Dies sind wichtige Angaben, die später verwendet werden müssen, wenn man bspw. eine digitale Kundenkarte selbst erstellen möchte. Dazu aber später mehr. Man kommt auf diese Übersicht (Google Wallet API) mittels https://pay.google.com/business/console

Wie man bereits im vorherigen Screenshot sehen konnte, ist hier zunächst automatisch der Demomodus aktiviert. Um die erstellen Karten zu veröffentlichen muss der Veröffentlichungszugriff angefordert und entsprechend erhalten werden. Dafür sind folgende Schritte notwendig:

  • Klasse erstellen
  • Unternehmensprofil vervollständigen
  • Veröffentlichungszugriff anfordern

Klasse erstellen

Das Erstellen einer Klasse kann ebenfalls über das Dashboard der Wallet API erfolgen.

Wallet API | Dashboard

Klickt man auf „Klasse erstellen“ erhält man folgenden Dialog:

Wallet API | Dialogfeld Klassentyp auswählen

Nachdem man die Klassentyp ausgewählt hat, wird man in die Detailansicht der Klasse weitergeleitet, wo man entsprechende Angaben machen kann, beispielsweise:

  • Name des Ausstellers
  • Eine ID der Klasse
  • Geografische Standortdaten
  • Angaben zum Kartenmotiv (Farbe der Karte, Logobild)

Unternehmensprofil vervollständigen

Um den Veröffentlichungszugriff anfordern zu können, muss vorab noch das Unternehmensprofil vervollständigt werden. Dazu notwendig sind Unternehmensinformationen wie der Name des Unternehmens oder auch Kundensupportangaben, aber auch die Angabe von Zahlungsinformationen.

Wallet API | Unternehmensprofil

Gemäß dem FAQ von Google Pay (welches das Google Wallet beinhaltet) (https://developers.google.com/pay/api/faq) werden aber keine Gebühren verlangt:

Google Pay doesn’t additionally charge users, merchants, and developers additional fees to use the Google Pay API for payments. Merchants, specifically, continue to pay processing fees to their payment processor.“

Nachdem das Unternehmensprofil vervollständigt wurde, kann der Veröffentlichungszugriff angefordert werden.

Weiterleitung aus eigener App in das Google Wallet

Vorab: Bei der Beispielintegration wird sich stark an das Codelab von Google (https://codelabs.developers.google.com/add-to-wallet-android#0) gehalten.

Das Ziel ist es, aus der App heraus die Kundenkarte in das Wallet zu integrieren. Die Beispielapp und das Endergebnis im Wallet sieht dann wie folgt aus:

Hinweis: Der QR-Code, der innerhalb der App angezeigt wird, entspricht NICHT der Kundenkarte im Wallet und wird nur exemplarisch dort dargestellt. Der QR-Code leitet auf unsere Website https://www.adesso-mobile.de/ weiter.

Wallet API | QR-Code
Wallet API | Kundenkarte adesso mobile

Durch einen Klick auf „Add to Google Wallet“ soll die Kundenkarte, die hier als QR-Code dargestellt wird, dem Google Wallet hinzugefügt werden.

Dafür notwendig ist zunächst einmal die entsprechende Abhängigkeit:

Wallet API | implemantation

Wenn die Pay API im Androidprojekt integriert wurde, kann dementsprechend auf den PayClient zugegriffen werden. Diesen referenziert man wie folgt:

Wallet API | PayClient

Die extension function fetchCanUseGoogleWalletApi prüft, ob die Wallet API auf dem Gerät verwendet werden kann, damit sichergestellt wird, dass die Kundenkarte ins Wallet integriert werden kann.

Wallet API | private fun PayClient

Sofern die Wallet API verfügbar ist, kann der Clicklistener registriert werden, um die Kundenkarte digital im Wallet abzuspeichern.

Dafür notwendig ist einmal ein Token, die Referenz zur Activity und ein Request Code. Das Wichtigste hierbei ist das Token. Das Token entspricht einem JWT-Token, welches bspw. durch eine Backendkomponente generiert werden kann. Dieses wurde im Codelab durch JavaScript Dateien simuliert, welches nach Angabe von u.A. der Austeller ID und dem Klassennamen das JWT-Token generieren kann. Das Endergebnis sieht dann wie folgt aus:

Fazit

Der Beitrag sollte veranschaulichen, inwiefern es möglich ist, Kundenkarten von bspw. Retailern in das Google Wallet mit Hilfe der Google Wallet API zu integrieren. Dadurch erhalten Kunden die Möglichkeit, ihre Kundenkarten zu digitalisieren und zentral im Wallet abzulegen. Es wurde der Unterschied zwischen einer App Implementierung und dessen Weiterleitung in das Wallet, und die Option als Händler im Wallet aufzutauchen und so die Kundenkarte im Wallet abzuspeichern, vorgestellt. Bei digitalen Kundenkarten sollte man aber immer noch auch das Kartenlesegerät miteinbeziehen. Diese können vielleicht nur entsprechende Barcodetypen erkennen. Die Auflistung, welche Barcodemöglichkeiten die Google Wallet API anbietet wurden hier ebenfalls vorgestellt. Zudem existieren auch weitere Schwierigkeiten bei den Kartenlesegeräten wie beispielsweise reflexive Bildschirme der Smartphones und weitere Lichtverhältnisse. Dies sollte ebenso berücksichtigt werden.

Mehr zum Thema Android-App-Entwicklung

×
Telefon

Sie sind auf der Suche nach einem Experten im Bereich App-Entwicklung? Wir freuen uns auf Ihre Nachricht!

+49 231 99953850
×