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:
+73
-69
@@ -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 |
|
||||
|
||||
Reference in New Issue
Block a user