A React-based application for Praxis integration that supports both deposit and withdrawal operations.
- Deposit Form: Customer information collection form for deposit operations
- Withdrawal Process: Automated withdrawal initiation with redirect handling
- Theme Support: Light and dark theme options
- Iframe Integration: Designed to work seamlessly within iframes
- Responsive Design: Mobile-friendly interface
-
Clone the repository
-
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open your browser and navigate to
http://localhost:5173
To embed this application in an iframe, use:
<iframe
src="http://localhost:5173?theme=light&intent=deposit&session_id=12345&return_url=https://example.com/return"
width="100%"
height="600"
frameborder="0"
>
</iframe>
The application supports the following query parameters for configuration:
Parameter | Type | Description | Example |
---|---|---|---|
theme |
string | Set the theme (light or dark ) |
theme=dark |
intent |
string | Operation type (deposit or withdrawal ) |
intent=withdrawal |
session_id |
string | Session identifier | session_id=12345 |
return_url |
string | URL to redirect after completion | return_url=https://example.com/return |
Deposit form with light theme:
http://localhost:5173?theme=light&intent=deposit&session_id=12345&return_url=https://example.com/return
Withdrawal process with dark theme:
http://localhost:5173?theme=dark&intent=withdrawal&session_id=67890&return_url=https://example.com/return
Minimal setup:
http://localhost:5173?theme=dark&intent=deposit
- User accesses the application with
intent=deposit
- Customer information form is displayed
- User fills out required fields (name, email, phone, address, etc.)
- Form validation is performed
- Upon successful submission, user is redirected to payment processing
- User accesses the application with
intent=withdrawal
- Withdrawal process is automatically initiated
- User is redirected to withdrawal processing interface
- No manual form input required
- App.jsx: Main application component with routing logic
- InitDepostiForm.jsx: Customer information collection form
- InitWithdrawal.jsx: Automated withdrawal initiation component
- RedirectIframe.jsx: Handles redirect functionality
- Duplicate Call Prevention: Withdrawal process includes protection against duplicate API calls
- Form Validation: Comprehensive validation for all customer data fields
- Error Handling: Graceful error handling with user-friendly messages
- Theme System: Consistent theming across all components
The application requires the following environment variable:
VITE_API_URL
: Base URL for the Praxis integration backend

