Skip to content

fix(buy): Verwendungszweck + QR aus Confirm-Response statt Quote#741

Merged
TaprootFreak merged 3 commits into
stagingfrom
fix/buy-payment-purpose-from-confirm
Jun 18, 2026
Merged

fix(buy): Verwendungszweck + QR aus Confirm-Response statt Quote#741
TaprootFreak merged 3 commits into
stagingfrom
fix/buy-payment-purpose-from-confirm

Conversation

@TaprootFreak

@TaprootFreak TaprootFreak commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Problem

Auf der Zahlungsdetails-Seite war der Verwendungszweck falsch: er kam (wie der QR) aus dem Quote (bankUsage). Der korrekte Verwendungszweck ist die Aktionariat-Referenz.

Reine App-Lösung, abwärtskompatibel

Das Confirm-Endpoint liefert heute schon reference (= die Aktionariat-Referenz = der korrekte Verwendungszweck). Dieser Fix nutzt das ohne jede API-Änderung:

  • Verwendungszweck = remittanceInfo ?? reference → heute Fallback auf reference (korrekt!); sobald die API remittanceInfo explizit liefert, wird es bevorzugt (vorwärtskompatibel).
  • QR = nur Confirm-paymentRequest, wenn vorhanden → heute kein QR (statt des falschen Quote-QR mit bankUsage!); sobald die API den korrekten QR liefert, erscheint er automatisch.
  • RealUnitBuyConfirmDto: remittanceInfo + paymentRequest nullable → kein Parse-Fehler gegen die aktuelle API.

Damit ist der Kundenbug sofort behoben, ohne Deploy-Kopplung. Die Bankverbindung (IBAN/BIC/Empfänger/Betrag) kommt weiter aus dem Quote. buyExecutedReference-Key entfernt (ungenutzt).

Tests

flutter analyze sauber; flutter test test/screens/buy test/packages/service/dfx grün (564). Backward- und Forward-Compat-Pfad getestet (reference-only → Verwendungszweck=reference, kein QR; bzw. remittanceInfo+QR bevorzugt). Golden buy_payment_details_default reflektiert den heutigen Ist-Zustand (Verwendungszweck gesetzt, kein QR), regeneriert auf dem Runner.

Verwandt (Follow-up, NICHT blockierend)

DFXswiss/api#3931 designiert remittanceInfo explizit + liefert den korrekten QR — sobald gemergt+deployed nutzt die App das automatisch. Bug: DFXswiss/api#3929.

TaprootFreak and others added 2 commits June 18, 2026 14:19
Die Zahlungsdetails-Seite zeigte den Verwendungszweck (und QR) aus dem Quote
(bankUsage) — falsch. Der korrekte Verwendungszweck ist die Aktionariat-Referenz,
die die API erst beim Confirm liefert (DFXswiss/api#3931).

confirmPayment liefert jetzt das erweiterte RealUnitBuyConfirmDto (reference +
remittanceInfo + paymentRequest). Die Seite rendert remittanceInfo als
Verwendungszweck und paymentRequest als QR; die separate 'Ihre Referenz'-Zeile
entfällt (ungenutzter buyExecutedReference-Key entfernt). Bankverbindung kommt
weiter aus dem Quote (BuyPaymentInfo).
@TaprootFreak

Copy link
Copy Markdown
Contributor Author

Hinweis: Der golden-regenerate-Lauf hat neben buy_payment_details_default.png (gewollt) auch home/goldens/macos/home_page_loaded.png aktualisiert — reiner Sub-Pixel-/Toolchain-Drift (Byte-Diff ~28, visuell identisch, das staging-Baseline war veraltet). Auf dem Runner ist das die Quelle der Wahrheit; ohne dieses Update würde die Visual Regression auf dem vorbestehenden Drift rot. Kein Zusammenhang mit der Buy-Änderung.

@TaprootFreak TaprootFreak marked this pull request as ready for review June 18, 2026 12:36
@TaprootFreak TaprootFreak added the tier3:full Opt-in: run Tier 3 Maestro handbook flows on this PR label Jun 18, 2026
Macht den Verwendungszweck-Fix unabhängig von der API-Änderung: das Confirm-
Response liefert heute schon 'reference' (= der korrekte Verwendungszweck).

- RealUnitBuyConfirmDto: remittanceInfo + paymentRequest jetzt nullable.
- BuyConfirmSuccess trägt reference (immer) + optional remittanceInfo/paymentRequest.
- Verwendungszweck = remittanceInfo ?? reference (Fallback auf reference, heute korrekt).
- QR nur aus dem Confirm-paymentRequest (heute null → kein QR; vermeidet den
  falschen Quote-QR mit bankUsage). Sobald die API beide Felder liefert, werden
  sie bevorzugt (Vorwärtskompatibel).

Backward-/Forward-Compat-Tests ergänzt.
@TaprootFreak TaprootFreak merged commit d764dd4 into staging Jun 18, 2026
7 checks passed
@TaprootFreak TaprootFreak deleted the fix/buy-payment-purpose-from-confirm branch June 18, 2026 19:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

tier3:full Opt-in: run Tier 3 Maestro handbook flows on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant