@startuml actor "User" as U participant "SmartTools Website" as W participant "Payment Gateway" as P participant "Registry Backend" as B U -> W : Navigates to "Donate/Contribute" page W --> U : Displays contribution options (one-time, recurring, tiers) U -> W : Selects contribution option W -> W : Validates input (amount, type) alt Valid Input W -> P : Initiates payment (e.g., Stripe, PayPal) P --> U : Prompts for payment details U -> P : Enters payment details P --> W : Payment confirmation/failure alt Payment Success W -> B : Records contribution B --> W : Confirmation W --> U : Displays "Thank You" message & receipt else Payment Failure W --> U : Displays error message & retry option end else Invalid Input W --> U : Displays validation error end @enduml