Zahlungsintegration: Wie kann ich Access-Datenbanken mit Zahlungsdiensten verbinden?

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.

Kategorien:

Keine Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert