feat(events): guest checkout with email delivery, Stripe return flow, public ticket page #144
No reviewers
Labels
No labels
app:activities
app:chat
app:chatelet
app:events
app:forum
app:libra
app:market
app:restaurant
app:tasks
app:wallet
app:webapp
bug
enhancement
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
aiolabs/webapp!144
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/events-guest-checkout"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Webapp half of the guest-checkout work (backend: aiolabs/events
feat/guest-checkout-email→ v1.6.1-aio.8; lnbits: aiolabs/lnbits#66). Ship only after the extension is deployed — an older extension 422s onuser_id + email.What changes
/events/:id?checkout=success&tickets=…/?checkout=cancelled; the query is stripped on arrival and a return dialog polls the anonymous ticket read until paid, then shows one QR per ticket and "we emailed your ticket to …". A localStorage record (events:pending-checkout) is the fallback source.tickets_payment_methods(fallback to theallow_fiatrule); CreateEventDialog gets a Lightning / Card checkbox group replacing the fiat toggle, Card disabled when the organizer has no fiat provider./events/ticket/:ticketId— target of the emailed link; event name via the Nostr store, then a public-event fetch.frontend_url=origin + BASE_URL(sohttps://demo.aiolabs.dev/events/https://app.ariege.io/oyez) is sent on every purchase.ticket://QR renderer with the brand logo overlay (error-correction H) used by the return dialog, ticket page and My Tickets.docs/02-modules/events-module/guest-checkout.mddocuments the contract.Verification
vue-tsc -bclean; hub and events standalone builds pass;vitest run src/modules/events→ 26 tests passing (API body shapes for guest vs logged-in, NIP-52 tag parsing, frontend root, payment-method resolution).Note: the "deep link shows the hub / login" report was an nginx fallback bug fixed in server-deploy (d5f5a19) and already deployed to aio-demo.
🤖 Generated with Claude Code
https://claude.ai/code/session_01EYwoAkZZmXMMmaBp4WGUBo
Target of the emailed ticket link the extension now builds under the webapp root. Anonymous, like the LNbits UI's own /events/ticket/{id}: reads the PublicTicket, resolves the event name (Nostr store → scoped relay query → public REST as a last resort), and renders the logo QR with paid / pending / checked-in state. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EYwoAkZZmXMMmaBp4WGUBo