This example demonstrates card payment processing using Flask and the Global Payments SDK.
- Python 3.7 or later
- pip (Python Package Installer)
- Global Payments account and API credentials
server.py- Main application file containing server setup and payment processingindex.html- Client-side payment formrequirements.txt- Project dependencies.env.sample- Template for environment variablesrun.sh- Convenience script to run the application
- Clone this repository
- Copy
.env.sampleto.env - Update
.envwith your Global Payments credentials:PUBLIC_API_KEY=pk_test_xxx SECRET_API_KEY=sk_test_xxx - Create and activate a virtual environment (recommended):
python -m venv venv source venv/bin/activate # On Windows, use: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Run the application:
Or manually:
./run.sh
python server.py
The application uses Flask to create a web server that:
- Serves static files
- Processes payment requests
- Provides configuration endpoint for client-side SDK
- Handles JSON responses
Global Payments SDK configuration using environment variables:
- Loads credentials from .env file
- Sets up service URL for API communication
- Configures developer identification
Payment processing flow:
- Client submits payment token and billing zip
- Server creates CreditCardData with token
- Creates Address with postal code
- Processes $10 USD charge
- Returns success/error response
Implements comprehensive error handling:
- Catches and processes API exceptions
- Returns JSON responses for errors
- Includes appropriate HTTP status codes
Returns public API key for client-side SDK initialization.
Response:
{
"publicApiKey": "pk_test_xxx"
}Processes a payment using the provided token and billing information.
Request Parameters:
payment_token(string, required) - Token from client-side SDKbilling_zip(string, required) - Billing postal code
Response (Success):
{
"success": true,
"message": "Payment successful! Transaction ID: xxx"
}Response (Error):
{
"success": false,
"message": "Error: [error message]"
}This example demonstrates basic implementation. For production use, consider:
- Implementing additional input validation
- Adding request rate limiting
- Including security headers
- Implementing proper logging
- Adding payment fraud prevention measures
- Using HTTPS in production
- Implementing CSRF protection
- Configuring secure session handling
- Using a production-grade WSGI server