Die Reihenfolge steht fest: erst der Zahlungsdienstleister, dann die Methode.
Apple Pay legt sich auf eine Bezahlstrecke, die bereits funktioniert. Wer den Wallet-Button an den
Anfang stellt, baut die Kasse um einen Knopf herum — und steht ohne Strecke da, sobald der Knopf auf
einem Gerät nicht erscheint. Wir bauen andersherum: Die Bezahlstrecke trägt allein, Apple Pay ist
die Abkürzung darin.
Dann kommt die Verfügbarkeitsprüfung. Apple beschreibt dafür einen klaren
Ablauf: prüfen, ob die Schnittstelle im Browser überhaupt existiert, und danach, ob auf dem Gerät
gezahlt werden kann und eine Karte im Wallet liegt. Die neuere Prüfung liefert dazu vier
Zustände — Karte vorhanden, Zustand unbekannt, keine Karte hinterlegt, Gerät nicht unterstützt — und
Apple leitet daraus ab, wie prominent der Button auftauchen darf. Genau das steuert bei uns die
Anzeige: Kein Zustand, kein Button.
Der Button selbst wird nicht nachgebaut. Apple stellt ihn als eigenes
Element <apple-pay-button> bereit, geladen über ein Skript
von Apples Content Delivery Network; Stil, Typ und Sprache setzt man als Attribute, Größe und
Eckenradius über CSS-Variablen wie --apple-pay-button-height.
Für Höhe und Breite nennt die Dokumentation Mindestwerte, unter die der Button nicht rendert. Wir
fügen ihn ins Layout ein, statt eine Nachbildung zu bauen, die bei der nächsten Änderung an Apples
Vorgaben aus dem Rahmen fällt.
Der Zahlungsvorgang läuft serverseitig. Die Merchant-Validierung, mit der
sich der Händler gegenüber den Apple-Pay-Servern ausweist, gehört ausdrücklich nicht in den
Browser — Apple schreibt das in der Dokumentation so hin, und die zurückgegebene Sitzung ist
einmalig verwendbar und läuft nach fünf Minuten ab. Der Endpunkt dafür liegt also im Backend, mit
den Zugangsdaten in der Server-Konfiguration. Wer Stripe
einsetzt, bekommt diesen Teil vom Anbieter übernommen: Stripe erledigt die Händlervalidierung
einschließlich Merchant-ID und Zertifikatsanforderung und weist in seiner Dokumentation
ausdrücklich darauf hin, dafür nicht dem Verfahren aus der Apple-Dokumentation zu folgen.
Und schließlich das, was in Angeboten gern fehlt: der Abbruch. Jemand
schließt das Bezahlblatt, die Karte wird abgelehnt, die Netzverbindung bricht weg. Dann muss die
Seite in den normalen Ablauf zurückführen, mit vollem Warenkorb und ohne doppelte Buchung. Dazu
gehört die Regel, dass das Bezahlblatt nur aus einer echten Nutzergeste heraus geöffnet wird — Apple
verlangt das, und Stripe beschreibt in seiner Dokumentation, was das für den Aufbau des
Event-Handlers bedeutet. Wie wir solche Strecken insgesamt bauen, steht in der Leistung
Schnittstellenentwicklung.