A simplified wrapper for PayPal's Python Server SDK
Project description
README.md
PayPal Easy
A simplified, developer-friendly wrapper around PayPal's Python Server SDK.
Why PayPal Easy?
PayPal's official Python SDK can be challenging to work with due to:
- Missing or inconsistent class imports
- Complex parameter structures
- Inconsistent documentation
- Verbose API calls
PayPal Easy solves these problems by providing:
- ✅ Clean, consistent API
- ✅ Proper error handling
- ✅ Type hints and IDE support
- ✅ Simplified method signatures
- ✅ Django integration helpers
Installation
pip install paypal-easy
Quick Start
from paypal_easy import PayPalEasyClient, Environment, Currency
from decimal import Decimal
# Initialize client
client = PayPalEasyClient(
client_id="your_client_id",
client_secret="your_client_secret",
environment=Environment.SANDBOX
)
# Create an order
result = client.create_order(
amount=Decimal("29.99"),
currency=Currency.USD,
description="Premium subscription",
return_url="https://yoursite.com/success",
cancel_url="https://yoursite.com/cancel"
)
if hasattr(result, 'id'): # Success
print(f"Order created: {result.id}")
print(f"Approval URL: {result.approval_url}")
else: # Error
print(f"Error: {result.message}")
Django Integration
# views.py
from paypal_easy.django_integration import PayPalEasyDjangoMixin
from django.views import View
class CreatePaymentView(PayPalEasyDjangoMixin, View):
def post(self, request):
client = self.get_paypal_client()
result = client.create_order(
amount=request.POST.get('amount'),
description="Order payment"
)
if hasattr(result, 'id'):
return self.paypal_success_response(result)
else:
return self.paypal_error_response(result)
Features
- Simple Order Creation: Create orders with minimal code
- Automatic URL Handling: Easy approval flow setup
- Error Handling: Consistent error responses
- Django Integration: Ready-to-use Django mixins
- Type Safety: Full type hints for better IDE support
- Logging: Built-in logging for debugging
Comparison
Before (Official SDK)
from paypalserversdk.paypal_serversdk_client import PaypalServersdkClient
from paypalserversdk.configuration import Environment
from paypalserversdk.http.auth.o_auth_2 import ClientCredentialsAuthCredentials
from paypalserversdk.models.order_request import OrderRequest
credentials = ClientCredentialsAuthCredentials(
o_auth_client_id=client_id,
o_auth_client_secret=client_secret
)
client = PaypalServersdkClient(
environment=Environment.SANDBOX,
client_credentials_auth_credentials=credentials
)
order_request = OrderRequest({
"intent": "CAPTURE",
"purchase_units": [{
"amount": {
"currency_code": "USD",
"value": "29.99"
}
}]
})
response = client.orders.create_order({'body': order_request})
After (PayPal Easy)
from paypal_easy import PayPalEasyClient, Environment, Currency
client = PayPalEasyClient(client_id, client_secret, Environment.SANDBOX)
result = client.create_order(amount="29.99", currency=Currency.USD)
Contributing
Contributions welcome! Please feel free to submit issues and enhancement requests.
Donations
Would you like to support the work we do?
Click Here to Donate - Donate Link
License
MIT License - see LICENSE file for details.
Maintainers
William Mabotja - Portfolio Site
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file paypal_easy-0.1.5.tar.gz.
File metadata
- Download URL: paypal_easy-0.1.5.tar.gz
- Upload date:
- Size: 8.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
46e8bd39885ae78d6946c7f18839b37cbd83b0dcc5e0a5c57127e01381da394a
|
|
| MD5 |
848ad9a7345e0cd479bb3e321a7a858b
|
|
| BLAKE2b-256 |
067849670f5bef7acae23da2927404424c5aaf10c19a166f657187d47dd893c9
|
File details
Details for the file paypal_easy-0.1.5-py3-none-any.whl.
File metadata
- Download URL: paypal_easy-0.1.5-py3-none-any.whl
- Upload date:
- Size: 9.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
740a1755d3688563be5a434562bde8c517aa2610d3d24d30c956669b2aede103
|
|
| MD5 |
710ca225c93418a7ef45a7af763288e5
|
|
| BLAKE2b-256 |
aad3aae8459f642461fff1b97538a8076141ec36ada5c3a23c51f44587f80f75
|