Thunderpay Official Repository
Thunderpay is a robust and scalable payment gateway service built using Java. The platform simplifies the process of handling online payments, offering a comprehensive suite of features for secure transaction processing, integration with multiple payment providers, and cross-platform SDKs to enable smooth mobile and web application integration.
Thunderpay is designed to support the growing demands of modern payment systems. Whether you're building a simple e-commerce site or a large-scale financial platform, Thunderpay provides the infrastructure to handle payment transactions securely and efficiently.
The service is built to be highly flexible, supporting a wide range of payment providers and processing methods. It provides a seamless experience for end-users while ensuring that developers can easily integrate it into their applications. With Thunderpay, businesses can confidently handle payments without worrying about scalability, security, or third-party dependencies.
-
Transaction Processing: Thunderpay manages every aspect of a payment transaction from start to finish. This includes payment initiation, authorization, settlement, and confirmation. It supports different types of transactions including one-time payments, subscriptions, refunds, and partial payments.
-
Security: Security is one of the core pillars of Thunderpay. It employs industry-standard encryption protocols like SSL/TLS for secure communication between servers. Additionally, Thunderpay integrates multi-factor authentication (MFA) to ensure that each transaction is authorized by the correct user. All sensitive data is stored in secure, encrypted storage, following best practices for payment data management, ensuring compliance with PCI DSS.
-
Multi-Payment Gateway Support: Thunderpay enables businesses to integrate multiple payment gateways with minimal configuration. This means businesses can offer various payment options to their users, increasing conversion rates and expanding market reach. The system is highly modular, allowing for easy integration with third-party services like PayPal, Stripe, Razorpay, and others. By supporting multiple providers, Thunderpay allows developers to offer region-specific payment options to users.
-
Cross-Platform SDKs: To ensure easy integration for developers, Thunderpay offers ready-to-use SDKs for popular mobile platforms including Android (Java), iOS (Swift), React Native, and Flutter. These SDKs abstract the complexity of direct API integration and provide intuitive methods to interact with Thunderpay’s payment processing system. Whether you're building native or hybrid mobile applications, Thunderpay supports your platform of choice. Detailed documentation for each SDK is available in the
docs/sdk-integration
folder. -
Transaction History & Reporting: Thunderpay provides a comprehensive transaction history and reporting functionality. Developers can access real-time transaction data through a secure API, which can be used for generating reports or tracking transaction progress. This is ideal for businesses that need to perform audits or analyze trends. The service includes filters to view transactions by date, payment provider, status, and more.
-
Scalability: The system is engineered for high availability and low latency, ensuring it can handle high transaction volumes without performance degradation. Thunderpay’s custom service architecture is designed to scale horizontally, allowing it to handle millions of transactions concurrently. By using a distributed and stateless design, Thunderpay can dynamically scale to meet demand and maintain availability during peak traffic periods.
-
Customization: The platform offers an extensive range of configuration options, allowing businesses to tailor the system to their specific needs. From custom payment flows to advanced transaction routing, Thunderpay provides flexibility and control over payment processing. Configuration files are clearly documented to ensure ease of use.
- Core Service: Java – Leveraging the performance and stability of Java to build a secure and high-performing backend for payment processing. Thunderpay does not rely on Spring Boot, instead using its own custom service architecture designed to meet specific scalability and performance requirements.
- Mobile SDKs: Android (Java), iOS (Swift), React Native, Flutter – SDKs to streamline payment integration in mobile apps. SDKs are optimized for minimal latency and maximum performance.
- Database: Thunderpay supports a range of relational databases, such as MySQL, PostgreSQL, and others, for storing transaction data and other necessary configurations. The system also supports data replication and automatic backups to ensure high availability and data integrity.
- Build Management: Maven – Used for managing project dependencies and build lifecycle in Java.
To use Thunderpay, you will need the following prerequisites:
- Java: Ensure that you have the latest stable version of Java installed. Thunderpay supports Java 8 or later.
- Maven: Thunderpay uses Maven for build management. If you don’t have Maven installed, you can download and install it from the official Maven website.
-
Clone the repository:
git clone https://github.com/ThunderPayment/thunderpay cd thunderpay
-
Install dependencies: Thunderpay uses Maven for dependency management. Run the following command to install required dependencies:
mvn install
-
Set up the database: Thunderpay requires a relational database (e.g., MySQL, PostgreSQL). Configure the database connection details in the
config
folder. You can modifyapplication.properties
to add your database credentials and configure connection pooling. -
Configure payment gateways: Thunderpay allows you to integrate multiple payment gateways. Each gateway requires specific API keys and configuration. You can modify
gateway-config.json
to add details for payment providers such as PayPal, Stripe, Razorpay, etc. -
Run the service: Thunderpay is designed with its own custom service layer. To start the service, run the following:
mvn clean install java -jar target/thunderpay.jar
This will launch the Thunderpay service on the default port (
8080
). You can modify the port in the configuration file if needed. -
Integrate with mobile SDKs: Follow the integration guide in the
docs/sdk-integration
folder to implement Thunderpay in your Android, iOS, React Native, or Flutter applications.
Thunderpay exposes a comprehensive set of APIs for interacting with the payment gateway. Key endpoints include:
- POST /api/v1/transactions: Initiate a new payment transaction.
- GET /api/v1/transactions/{id}: Retrieve details of a specific transaction.
- GET /api/v1/transactions/report: Get a report of transactions for a given time period.
The full API documentation is available in the docs/api
folder.
When using Thunderpay in a production environment, consider the following best practices:
- Security: Always use HTTPS to encrypt communication between your clients and the Thunderpay service. Regularly update encryption keys and tokens.
- Rate Limiting: To prevent abuse, implement rate limiting on your endpoints. Thunderpay can be configured to handle rate limiting natively.
- Error Handling: Implement proper error handling in your application. Use Thunderpay's provided error codes and messages for graceful error handling and user-friendly feedback.
- Testing: Use Thunderpay's sandbox mode to simulate transactions before going live. This allows you to test payment flows without real money involved.
Thunderpay is licensed under the MIT License. See the LICENSE file for more information.