WKQ-branded post-purchase landing page replacing generic /checkout/success #505

Open
opened 2026-04-19 01:43:59 +00:00 by forgejo_admin · 0 comments

Type

Feature

Lineage

Standalone — discovered 2026-04-18 during the #497 recovery blast testing. When Lucas paid a test Payment Link, he landed on https://westsidekingsandqueens.tail5b443a.ts.net/checkout/success — a generic "you're all set" page with no context. Noted as confusing.

Repo

forgejo_admin/basketball-api

User Story

As a parent who just paid my player's first monthly fee, I land on a page that confirms who I paid for, how much I paid, and what happens next — visibly Westside Kings & Queens branded — so I know the payment registered and I'm clear on any remaining steps.

Context

Stripe Payment Links redirect to our /checkout/success URL after a completed payment (configured in after_completion.redirect.url when the Payment Link is minted). That landing page today is a generic success screen — no player name, no amount, no WKQ branding, no next-step info. Parents walk away uncertain whether the payment actually registered and whether anything else is required from them.

This sits alongside the brand-mismatch problem being tracked separately (Pal-E-branded Stripe receipts also go out on every payment; see sibling tickets). This ticket covers only the landing page our domain controls.

File Targets

Dev agent's decision. The server-side redirect URL is already correct (/checkout/success); the work is on whatever renders that path.

Acceptance Criteria

  • When a parent completes a Stripe payment and is redirected back, they land on a page that displays: player name, amount paid, payment date, and a short "card saved" / "next steps" summary.
  • The page uses Westside Kings & Queens visual branding (logo, colors) consistent with the first-payment email style. No Pal-E references visible.
  • The page handles division branding correctly — Kings players see Kings red, Queens players see Queens pink, per the same convention as the first-payment email.
  • If the success URL is opened without a valid payment context (direct visit, stale link), the page gracefully explains that it's a post-payment confirmation and links to the parent's account or contact path — does NOT show a fake "success."
  • Parent can reach support by replying to the confirmation email or via a visible "questions? email us" link with westsidebasktball@gmail.com.

Test Expectations

  • Any new behavior covered by tests at the level the dev agent judges appropriate (rendering logic, edge-case redirect without context).

Constraints

  • No Pal-E branding anywhere on this page.
  • Payment-amount + player data must come from authoritative state (Order row, not URL params).

Checklist

  • PR opened
  • Tests pass
  • Lucas views the rendered page on both a Kings-division test order and a Queens-division test order before merge
  • forgejo_admin/basketball-api #498 — monthly Payment Link migration (added this redirect URL configuration)
  • Sibling ticket: WKQ-branded receipt email
  • Sibling ticket: Stripe Connect / WKQ merchant-of-record spike
### Type Feature ### Lineage Standalone — discovered 2026-04-18 during the #497 recovery blast testing. When Lucas paid a test Payment Link, he landed on `https://westsidekingsandqueens.tail5b443a.ts.net/checkout/success` — a generic "you're all set" page with no context. Noted as confusing. ### Repo `forgejo_admin/basketball-api` ### User Story As a parent who just paid my player's first monthly fee, I land on a page that confirms who I paid for, how much I paid, and what happens next — visibly Westside Kings & Queens branded — so I know the payment registered and I'm clear on any remaining steps. ### Context Stripe Payment Links redirect to our `/checkout/success` URL after a completed payment (configured in `after_completion.redirect.url` when the Payment Link is minted). That landing page today is a generic success screen — no player name, no amount, no WKQ branding, no next-step info. Parents walk away uncertain whether the payment actually registered and whether anything else is required from them. This sits alongside the brand-mismatch problem being tracked separately (Pal-E-branded Stripe receipts also go out on every payment; see sibling tickets). This ticket covers only the landing page our domain controls. ### File Targets Dev agent's decision. The server-side redirect URL is already correct (`/checkout/success`); the work is on whatever renders that path. ### Acceptance Criteria - [ ] When a parent completes a Stripe payment and is redirected back, they land on a page that displays: player name, amount paid, payment date, and a short "card saved" / "next steps" summary. - [ ] The page uses Westside Kings & Queens visual branding (logo, colors) consistent with the first-payment email style. No Pal-E references visible. - [ ] The page handles division branding correctly — Kings players see Kings red, Queens players see Queens pink, per the same convention as the first-payment email. - [ ] If the success URL is opened without a valid payment context (direct visit, stale link), the page gracefully explains that it's a post-payment confirmation and links to the parent's account or contact path — does NOT show a fake "success." - [ ] Parent can reach support by replying to the confirmation email or via a visible "questions? email us" link with `westsidebasktball@gmail.com`. ### Test Expectations - Any new behavior covered by tests at the level the dev agent judges appropriate (rendering logic, edge-case redirect without context). ### Constraints - No Pal-E branding anywhere on this page. - Payment-amount + player data must come from authoritative state (Order row, not URL params). ### Checklist - [ ] PR opened - [ ] Tests pass - [ ] Lucas views the rendered page on both a Kings-division test order and a Queens-division test order before merge ### Related - `forgejo_admin/basketball-api #498` — monthly Payment Link migration (added this redirect URL configuration) - Sibling ticket: WKQ-branded receipt email - Sibling ticket: Stripe Connect / WKQ merchant-of-record spike
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
forgejo_admin/basketball-api#505
No description provided.