Anleitung auf den neuen Weg umgestellt -- ohne Konsole

Die Anleitung war nach dem Einbau des Formulars veraltet und haette
Filipe weiter in die Konsole geschickt.

Schritt 0 (nachsehen, was schon da ist) ging ueber SSH und grep. Das
zeigt jetzt die Verwaltung selbst an: "hinterlegt (auf dem Server)",
"hinterlegt" oder "fehlt". Kein Terminal noetig, um zu erfahren, was
noch fehlt.

Schritt 6 war "nano .env + systemctl restart". Jetzt: Verwaltung ->
Zahlungen -> Felder ausfuellen -> Speichern. Mit dem Hinweis, dass ein
leeres Feld "nicht anfassen" bedeutet und nicht "loeschen" -- ohne den
traut sich niemand, ein einzelnes Feld nachzutragen.

Schritt 7 ist neu: der Knopf "Verbindung testen" mit einer Tabelle, was
die drei moeglichen Meldungen bedeuten.

Beim Umstellen ist mir Schritt 8 (der 1-Euro-Test) aus der Datei
gefallen -- der Ersetzungsbereich reichte zu weit. Wieder eingesetzt und
gleich vervollstaendigt: jetzt mit Testkunde anlegen, Einladungslink im
eigenen Browser oeffnen und Aufraeumen danach. Vorher stand dort nur
"Zahlung erzeugen und bezahlen", was den halben Weg ausliess.

Auch die Formulierung "Beide brauche ICH" korrigiert -- ich brauche die
Werte gar nicht, er traegt sie selbst ein.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-08-23 16:53:52 +02:00
co-authored by Claude Opus 5
parent 6a2aa13dd8
commit 497c576d1c
+73 -69
View File
@@ -16,34 +16,30 @@ PayPal-Geschäftskonto ist kostenlos, Gebühren fallen nur pro Zahlung an.
## Schritt 0 — Zuerst nachsehen, was schon da ist
**Du hast wahrscheinlich schon die Hälfte.** Das DogiCrew-Supporter-Abo
läuft über dasselbe PayPal-Konto und benutzt dieselben zwei Werte
(`PAYPAL_CLIENT_ID` und `PAYPAL_CLIENT_SECRET`). Wenn das Abo live
funktioniert, sind sie bereits eingetragen.
läuft über dasselbe PayPal-Konto und benutzt dieselbe Client ID und
dasselbe Secret. Wenn das Abo live funktioniert, sind sie bereits da.
Prüf es mit diesem Befehl. Er zeigt nur **ob** ein Wert da ist, nie den
Wert selbst:
So siehst du es — ohne Konsole:
```bash
ssh dogi@<dein-server>
sudo -u dogiintern grep -cE '^PAYPAL_CLIENT_ID=.+' \
/home/dogiintern/dogfather-universe/server-internal/.env
sudo -u dogiintern grep -cE '^PAYPAL_CLIENT_SECRET=.+' \
/home/dogiintern/dogfather-universe/server-internal/.env
sudo -u dogiintern grep -E '^PAYPAL_ENV=' \
/home/dogiintern/dogfather-universe/server-internal/.env
```
1. Verwaltung öffnen: `https://dogfather-universe.com/webdesign/verwaltung.html`
2. Reiter **Zahlungen**
| Ergebnis | Bedeutung |
Oben steht der Stand, bei jedem Feld eine Marke:
| Was dort steht | Bedeutung |
|---|---|
| beide `1`, `PAYPAL_ENV=live` | **Du brauchst nur Schritt 4** (Webhook). Springe direkt dorthin. |
| beide `1`, `PAYPAL_ENV=sandbox` | Zugangsdaten sind Testdaten. Schritt 2–4 nötig. |
| `0` | Noch nichts da. Alle Schritte durchgehen. |
| *hinterlegt (auf dem Server)* | kommt aus der `.env`, du musst nichts tun |
| *hinterlegt* | schon über dieses Formular eingetragen |
| *fehlt* | musst du eintragen |
Steht bei **Client ID** und **Secret** schon *hinterlegt*, brauchst du
nur **Schritt 4** (Webhook) und danach Schritt 6.
> Warum das wichtig ist: Wenn du eine **zweite** App anlegst, obwohl
> schon eine läuft, hast du zwei Sätze Zugangsdaten für dasselbe Konto.
> Das funktioniert zwar, macht aber später jede Fehlersuche doppelt so
> mühsam — und beim Erneuern eines Secrets bricht womöglich der andere
> Bereich weg.
> mühsam — und beim Erneuern eines Secrets bricht womöglich das
> DogiCrew-Abo weg.
---
@@ -101,11 +97,12 @@ Du siehst jetzt zwei Werte:
| **Client ID** | eine lange Zeichenkette, sofort sichtbar |
| **Secret** | daneben ein Link **Show** — draufklicken |
**Beide brauche ich.** Kopiere sie zunächst irgendwohin, wo du sie
gleich wiederfindest.
**Beide brauchst du gleich.** Kopier sie irgendwohin, wo du sie
wiederfindest — am besten direkt nach Bitwarden.
> **Das Secret ist wie ein Passwort.** Schick es mir **nicht** im Chat.
> Wie du es sicher hinterlegst, steht in Schritt 6.
> **Das Secret ist wie ein Passwort.** Schick es mir **nicht** im Chat —
> dort stuende es dauerhaft im Verlauf, und eintragen koennte ich es
> trotzdem nicht. In Schritt 6 fuegst du es selbst ein.
---
@@ -155,68 +152,75 @@ Das kannst du auch später nachholen — die Einmalzahlungen laufen ohne.
---
## Schritt 6 — Werte sicher hinterlegen
## Schritt 6 — Werte in der Verwaltung eintragen
Die Zugangsdaten gehören in eine Datei auf dem Server, **nicht** in den
Chat und **nicht** ins Git.
**Kein SSH, kein Texteditor, kein Neustart.**
Du hast zwei Möglichkeiten:
1. Verwaltung öffnen: `https://dogfather-universe.com/webdesign/verwaltung.html`
2. Reiter **Zahlungen**
3. Die Felder ausfüllen:
### Möglichkeit A — du trägst sie selbst ein
| Feld | Woher |
|---|---|
| **Betriebsart** | *Echtbetrieb* anklicken |
| **Client ID** | aus Schritt 4 |
| **Secret** | aus Schritt 4 |
| **Webhook-Kennung** | aus Schritt 5 |
| **Plan für die Betreuung** | aus Schritt 5b — sonst leer lassen |
```bash
ssh dogi@<server>
sudo -u dogiintern nano /home/dogiintern/dogfather-universe/server-internal/.env
```
4. **Speichern**
Diese Zeilen ergänzen bzw. ausfüllen:
> **Ein leeres Feld bedeutet „nicht anfassen", nicht „löschen".** Du
> kannst also einzeln nachtragen, ohne den Rest zu verlieren. Steht bei
> einem Feld schon *„hinterlegt (auf dem Server)"*, kommt der Wert aus
> der `.env` und du brauchst dort nichts einzugeben.
```
PAYPAL_ENV=live
PAYPAL_CLIENT_ID=<Client ID aus Schritt 3>
PAYPAL_CLIENT_SECRET=<Secret aus Schritt 3>
PAYPAL_WD_WEBHOOK_ID=<Webhook ID aus Schritt 4>
PAYPAL_WD_PLAN_BASIS=<Plan ID aus Schritt 5, sonst leer lassen>
```
Die Werte werden verschlüsselt gespeichert und wirken sofort. Nach dem
Speichern leeren sich die Felder von selbst — ein Secret soll nicht
stehen bleiben, wenn jemand anders auf den Bildschirm schaut.
Speichern (`Strg+O`, `Enter`, `Strg+X`), dann:
```bash
sudo systemctl restart dogiintern.service
```
### Möglichkeit B — über Bitwarden
Leg die vier Werte in Bitwarden ab und sag mir Bescheid. Ich sage dir
dann, welche Zeile wohin gehört — die Werte selbst brauche ich nicht zu
sehen.
**Angezeigt wird ein gespeicherter Wert nie wieder.** Nur: *hinterlegt ·
80 Zeichen*. Wer ihn verliert, erzeugt bei PayPal einen neuen — das ist
sicherer, als ihn dauerhaft abrufbar zu halten.
---
## Schritt 7 — Prüfen, ob es angekommen ist
## Schritt 7 — Verbindung testen
Melde dich in der Verwaltung an und öffne den Bereich **Zahlungen**.
Oben steht der Einrichtungsstand:
Gleich daneben steht der Knopf **Verbindung testen**. Draufklicken.
- **„PayPal ist eingerichtet"** → fertig
- **„Es fehlt noch: …"** → dort steht, welcher Wert leer ist
| Meldung | Bedeutung |
|---|---|
| „Anmeldung bei PayPal erfolgreich — Echtbetrieb." | Alles richtig, weiter zu Schritt 8 |
| „…aber im TESTMODUS" | Betriebsart auf *Echtbetrieb* stellen |
| „PayPal hat die Anmeldung abgelehnt" | Client ID und Secret stammen aus verschiedenen Apps oder aus dem Testbereich — beide aus **derselben** App neu kopieren |
> Der Test meldet sich probeweise bei PayPal an. **Es fließt kein Geld.**
> Aber erst er beweist, dass die Werte stimmen — *„hinterlegt"* heißt
> nur, dass etwas dasteht, nicht dass es richtig ist.
---
## Schritt 8 — Der erste echte Test
## Schritt 8 — Der erste echte Test mit 1 Euro
**Mach die erste Zahlung mit einem kleinen Betrag an dich selbst.**
**Das ist der wichtigste Schritt.** Mach ihn, bevor ein echter Kunde
zahlt.
1. Leg in der Verwaltung ein Testprojekt mit **1,00 €** Preis an
2. Erzeuge dazu eine Zahlung
3. Bezahle sie im Portal mit einem anderen PayPal-Konto
(z. B. dem von VanVan) oder mit Karte als Gast
4. Prüfe: Kommt das Geld an? Steht die Zahlung auf „bezahlt"?
5. Erstatte den Betrag in PayPal wieder zurück
1. Verwaltung → Reiter **Kunden** → Testkunde anlegen (deine eigene
E-Mail genügt)
2. Dazu ein Projekt mit Preis **1,00 €**
3. Im Projekt eine Zahlung erzeugen
4. Den Einladungslink im eigenen Browser öffnen, Passwort setzen,
ins Portal gehen und bezahlen — mit VanVans PayPal oder per Karte
als Gast
5. Prüfen: Kommt das Geld auf deinem Konto an? Steht die Zahlung in der
Verwaltung auf **„bezahlt"**?
6. In PayPal wieder **erstatten**
7. Testkunde und Testprojekt löschen
> Ein Testlauf mit echtem Geld ist der einzige Weg, der wirklich etwas
> beweist. Die Sandbox verhält sich in Kleinigkeiten anders — und diese
> Kleinigkeiten fallen sonst beim ersten echten Kunden auf.
> Der Testmodus verhält sich in Kleinigkeiten anders als der Echtbetrieb.
> Ein Durchlauf mit einem echten Euro ist der einzige Nachweis, der
> wirklich zählt — und er kostet dich nichts, weil du ihn zurückholst.
---
@@ -242,7 +246,7 @@ wird sie nur einmal verbucht.
| Anzeichen | Ursache | Abhilfe |
|---|---|---|
| „noch nicht freigeschaltet" | Werte fehlen oder Dienst nicht neu gestartet | Schritt 6 wiederholen, Dienst neu starten |
| „noch nicht freigeschaltet" | Werte fehlen | Verwaltung → Zahlungen, dort steht welcher |
| Zahlung bleibt auf „freigegeben" | Webhook-Adresse falsch | Schritt 4 prüfen — die Adresse muss exakt stimmen |
| Kein echtes Geld | Schalter stand auf Sandbox | Schritt 2, dann neue Zugangsdaten erzeugen |
| PayPal meldet „invalid client" | Client ID und Secret aus verschiedenen Apps | beide aus derselben App neu kopieren |