fix(registration): prevent double form-fee charge + NID-swap exploit + profile actions
Critical fixes:
- submitFormPayment() now checks sa_players.registration_fee_paid as
a safety net before creating any payment request
- startRegistration() member_id fallback only used when NID matches
the member's actual national_id (prevents NID-swap fee bypass)
- lookupPlayer() validates NID-to-member consistency before proceeding
- Existing registration lookup now includes 'pending_payment' status
- Frontend clears membership_number when NID is manually changed
after auto-fill
Feature:
- Player profile page now shows "Print Form" and "Generate Card"
buttons for completing registration steps outside the wizard
Co-Authored-By:
Claude Opus 4.6 <noreply@anthropic.com>
Showing
Please register or sign in to comment