GPWebPay Payment Provider for Pretix
A fully functional payment gateway plugin for Pretix that integrates with GPWebPay payment system.
Features
- Full GPWebPay integration with PKI-based message signing
- Secure payment processing with RSA-SHA256 signatures
- Support for multiple currencies (CZK, EUR, USD, GBP, PLN, HUF)
- Server-to-server notifications (IPN)
- User redirect handling
- Test mode support
- Proper error handling and logging
Installation
- Install the plugin in your Pretix environment:
pip install -e /path/to/pretix-gpwebpay
- Add the plugin to your Pretix configuration (
pretix.cfg):
[pretix]
plugins = pretix_gpwebpay
- Restart your Pretix instance.
Configuration
-
Go to your event's payment settings in the Pretix control panel.
-
Enable the GPWebPay payment provider.
-
Configure the following settings:
- Merchant Number: Your GPWebPay merchant number
- Private Key File: Upload your GPWebPay private key file (.key or .pem format)
- Private Key Password: Password for your private key (if required)
- GPWebPay Public Key File: Upload GPWebPay's public key for signature verification
- Gateway URL: GPWebPay gateway URL
- Production:
https://3dsecure.gpwebpay.com/pgw/order.do - Test: Use the test gateway URL provided by GPWebPay
- Production:
- Test Mode: Enable for testing
Requirements
- Pretix >= 4.0.0
- Python >= 3.8
- cryptography >= 3.0.0
Security
This plugin implements GPWebPay's security requirements:
- All payment requests are signed using RSA-SHA256 with your private key
- All payment responses are verified using GPWebPay's public key
- Private keys are stored securely in Pretix's configuration
- Message integrity is verified for all transactions
How It Works
-
Payment Initiation: When a customer selects GPWebPay, they are redirected to the GPWebPay gateway with a signed payment request.
-
Payment Processing: The customer completes payment on GPWebPay's secure gateway.
-
Return Handling: After payment, the customer is redirected back to your Pretix instance, where the payment status is verified using GPWebPay's signature.
-
Server Notification: GPWebPay also sends a server-to-server notification to confirm the payment status.
Supported Currencies
- CZK (Czech Koruna) - Code: 203
- EUR (Euro) - Code: 978
- USD (US Dollar) - Code: 840
- GBP (British Pound) - Code: 826
- PLN (Polish Zloty) - Code: 985
- HUF (Hungarian Forint) - Code: 348
Development
Project Structure
pretix_gpwebpay/
├── __init__.py # Plugin metadata
├── apps.py # Django app configuration
├── signals.py # Plugin registration
├── payment.py # Payment provider implementation
├── views.py # Return and notification handlers
├── urls.py # URL routing
└── locale/ # Translations
Testing
- Configure test mode in the plugin settings
- Use GPWebPay test credentials
- Test payment flow end-to-end
- Verify signature generation and verification
Troubleshooting
Payment Not Processing
- Verify your merchant number is correct
- Check that private and public keys are properly uploaded
- Ensure the gateway URL is correct for your environment (test/production)
- Check Pretix logs for detailed error messages
Signature Verification Failures
- Verify you're using the correct public key from GPWebPay
- Ensure private key password is correct (if required)
- Check that key files are in the correct format (PEM)
Currency Issues
- Verify your currency is supported
- Check that currency codes match GPWebPay's requirements
License
Apache Software License 2.0
Support
For issues related to:
- Plugin functionality: Check the Pretix documentation and plugin development guide
- GPWebPay integration: Refer to GPWebPay's integration documentation
- Payment processing: Contact GPWebPay support
References
Metadata
Release files for pretix-gpwebpay 7.0.18
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pretix_gpwebpay-7.0.18.tar.gz | 14.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pretix_gpwebpay-7.0.18-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.6 kB
Release files / pretix_gpwebpay-7.0.18.tar.gz
| Download URL | pretix_gpwebpay-7.0.18.tar.gz |
|---|---|
| Size | 14.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b7c7b98b07ae3e1d05b1c442af5f65c7d6c2126899f731d0101cb1f1f7d3df6a
|
|
BLAKE2b-256 checksum How to use checksums |
2a4efe3e6f849bb5bd9a077b81a2934639ecd8dee816cceb0ed4dad82746705e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / pretix_gpwebpay-7.0.18-py3-none-any.whl
| Download URL | pretix_gpwebpay-7.0.18-py3-none-any.whl |
|---|---|
| Size | 14.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8f9fa6309a53eaede1f5ba8834c4fdc58b1ee599c6e89f29909787ac44d8c57a
|
|
BLAKE2b-256 checksum How to use checksums |
f053e937b831037f7cfdb5a49638d6b5f3cc4fd59c11fd869b8fc0647c2c8890
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|