Skip to main content

GPWebPay payment provider for Pretix

Project description

# 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

  1. Install the plugin in your Pretix environment:

`bash pip install -e /path/to/pretix-gpwebpay `

  1. Add the plugin to your Pretix configuration (pretix.cfg):

`ini [pretix] plugins = pretix_gpwebpay `

  1. Restart your Pretix instance.

## Configuration

  1. Go to your event’s payment settings in the Pretix control panel.

  2. Enable the GPWebPay payment provider.

  3. 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

    • 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

  1. Payment Initiation: When a customer selects GPWebPay, they are redirected to the GPWebPay gateway with a signed payment request.

  2. Payment Processing: The customer completes payment on GPWebPay’s secure gateway.

  3. Return Handling: After payment, the customer is redirected back to your Pretix instance, where the payment status is verified using GPWebPay’s signature.

  4. 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

  1. Configure test mode in the plugin settings

  2. Use GPWebPay test credentials

  3. Test payment flow end-to-end

  4. 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pretix_gpwebpay-7.0.2-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file pretix_gpwebpay-7.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for pretix_gpwebpay-7.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9343f160060662a685c42b58ce8cecba63f7aeb71eefd3662c37c66b8b96f149
MD5 0db6d7b21c8ffb1d136d17c1bd0ad8e5
BLAKE2b-256 d7b62e55846f354b166e694efd36e9d0789db27db50ade8fc6cf31b80fdb5f3f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page