Grundidee: Access verwaltet â Zahlungsdienst verarbeitet
Access ist kein Zahlungssystem.
Aber Du kannst Rechnungen und Zahlungsdaten in Access halten â und ĂŒber eine Schnittstelle mit Stripe, PayPal oder Klarna kommunizieren.
Immer ĂŒber die API â niemals direkt auf deren Plattform klicken lassen.
Ziel:
Zahlung erzeugen, Status prĂŒfen, RĂŒckmeldung speichern.
Variante 1: Anbindung ĂŒber REST-API (Beispiel Stripe)
Vorbereitung
- Stripe-Konto anlegen
- Secret API Key generieren
curl
-Ă€hnliche POST-Aufrufe in VBA vorbereiten
Beispiel: Zahlung erzeugen (Payment Link)
Public Function ErstelleZahlungslink(BetragInCent As Long, Beschreibung As String) As String
Dim http As Object
Set http = CreateObject("MSXML2.XMLHTTP")
Dim apiKey As String
apiKey = "sk_test_abc123"
Dim body As String
body = "line_items[0][price_data][currency]=eur" & _
"&line_items[0][price_data][product_data][name]=" & Beschreibung & _
"&line_items[0][price_data][unit_amount]=" & BetragInCent & _
"&line_items[0][quantity]=1" & _
"&mode=payment" & _
"&success_url=https://meine-firma.de/success" & _
"&cancel_url=https://meine-firma.de/cancel"
http.Open "POST", "https://api.stripe.com/v1/checkout/sessions", False
http.setRequestHeader "Authorization", "Bearer " & apiKey
http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
http.Send body
ErstelleZahlungslink = http.responseText
End Function
RĂŒckgabe auswerten
JSON parsen und url
auslesen â per FollowHyperlink
aufrufen.
Application.FollowHyperlink ExtrahiereURL(response)
Variante 2: Zahlung per PayPal REST API
Ablauf ist Àhnlich.
Aber: Token-basiert, also erst Zugriffstoken holen, dann Zahlung auslösen.
' Schritt 1: Token holen
' Schritt 2: POST /v2/checkout/orders
' Schritt 3: Redirect-URL öffnen
' Schritt 4: Status per GET prĂŒfen
PayPal ist zickiger, aber gut dokumentiert.
RĂŒckmeldung verarbeiten (z.âŻB. Webhook + Polling)
Access ist lokal.
Zahlungsdienste wollen Webhooks.
Lösung:
- Kleiner Webserver (z.âŻB. Node.js, PHP, Azure Function) empfĂ€ngt Webhook
- Schreibt Daten in eine CSV, SQLite oder MS SQL
- Access pollt regelmĂ€Ăig auf neue Zahlungen
Polling Beispiel
Public Sub HoleZahlungsstatus()
Dim http As Object
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "GET", "https://meine-firma.de/zahldaten.csv", False
http.Send
' csv lokal speichern oder direkt verarbeiten
Open "C:\Import\zahldaten.csv" For Output As #1
Print #1, http.responseText
Close #1
DoCmd.TransferText acImportDelim, , "tmpZahlungen", "C:\Import\zahldaten.csv", True
End Sub
Optional: Zahlungsstatus automatisch zuordnen
CurrentDb.Execute "UPDATE tblRechnungen SET Bezahlt=True WHERE StripeID IN (SELECT StripeID FROM tmpZahlungen WHERE Status='paid')"
Sicherheits-Tipps
- API Keys nicht in Formularfeldern speichern
- SSL zwingend
- JSON absichern (z.âŻB. gegen Injection bei Zugriff auf Ergebnisfelder)
- Kein direkter Zugriff auf interne Tabellen von auĂen
- Lokale Logging-Tabelle fĂŒr API-Aufrufe fĂŒhren
Gute Einsatzszenarien
- Online-Rechnungen mit Paylink
- Self-Service-Portale (Zahlung + RĂŒckmeldung)
- Offline-VorgÀnge mit Zahlungsabgleich
- Mahnwesen mit automatischer PrĂŒfung auf Zahlungseingang
Fazit fĂŒr Entwickler
Access ist kein Zahlungssystem.
Aber Access kann mit Zahlungsdiensten sprechen â wenn Du das sauber aufsetzt.
Zahlung erzeugen, RĂŒckmeldung prĂŒfen, alles nachvollziehbar dokumentieren.
Dann lÀuft das. Und zwar zuverlÀssig.
Keine Antworten