53 lines
1.4 KiB
Plaintext
53 lines
1.4 KiB
Plaintext
AZA – Stripe Vorbereitung (Webhook Skeleton)
|
||
|
||
Ziel
|
||
- Stripe Webhooks sicher empfangen (Signaturprüfung)
|
||
- Events auditieren (admin_audit)
|
||
- Noch KEINE Plan/Status-Automatik
|
||
|
||
Voraussetzung
|
||
1) Stripe Python SDK installieren:
|
||
pip install stripe
|
||
|
||
2) Umgebungsvariablen setzen:
|
||
- AZA_STRIPE_SECRET_KEY="sk_live_..."
|
||
- AZA_STRIPE_WEBHOOK_SECRET="whsec_..."
|
||
|
||
Webhook Endpoint
|
||
- POST /stripe/webhook
|
||
|
||
Was passiert aktuell
|
||
- Signatur wird geprüft
|
||
- Event wird in admin_audit geloggt:
|
||
action = "stripe:<event_type>"
|
||
token = "<event_id>"
|
||
old_value = "received"
|
||
new_value = "ok"
|
||
|
||
Wichtig
|
||
- Der Server muss öffentlich erreichbar sein, damit Stripe den Webhook callen kann.
|
||
- Im Stripe Dashboard muss ein Webhook mit deiner URL auf /stripe/webhook zeigen.
|
||
|
||
Nächster Schritt
|
||
- Stripe Events auswerten und daraus users.status / users.plan setzen.
|
||
(z.B. invoice.payment_succeeded -> active, invoice.payment_failed -> suspended)
|
||
|
||
|
||
Test (lokal / dev)
|
||
1) Stripe CLI installieren und einloggen:
|
||
stripe login
|
||
|
||
2) Webhook lokal weiterleiten (Port/Host anpassen):
|
||
stripe listen --forward-to http://localhost:9000/stripe/webhook
|
||
|
||
Die CLI zeigt dabei einen Webhook-Secret an (whsec_...), den du als
|
||
AZA_STRIPE_WEBHOOK_SECRET setzen musst.
|
||
|
||
3) Test-Event auslösen:
|
||
stripe trigger invoice.payment_succeeded
|
||
|
||
4) Prüfen:
|
||
- Server sollte HTTP 200 {"ok": true} zurückgeben
|
||
- Audit-Eintrag erscheint über:
|
||
POST /admin/audit/list
|