Checkout.com Python SDK
Project description
Checkout.com Python SDK
Installation
pip install --upgrade checkout-sdk
From source:
python setup.py install
Requirements
- Python 3.4+
Usage
Using environment variables
os.environ['CKO_SECRET_KEY'] = '<your secret key>'
os.environ['CKO_SANDBOX'] = 'True|true|1' # else is False (Production)
os.environ['CKO_LOGGING'] = 'debug|DEBUG|info|INFO'
# ...
import checkout_sdk as sdk
api = sdk.get_api()
Using initialisation values
import checkout_sdk as sdk
api = sdk.get_api(secret_key='<your secret key>') # default sandbox = True
Setting defaults
sdk.default_currency = sdk.Currency.EUR
sdk.default_auto_capture = True
sdk.default_auto_capture_delay = 0 # valid: 0 - 168 (hours)
sdk.default_payment_type = sdk.PaymentType.Regular
Payment Request
Full Card
try:
payment = api.payments.request(
card = {
'number': '4242424242424242',
'expiryMonth': 6,
'expiry_year': 2025, # snake_case is automatically converted
'cvv': '100'
},
value=100, # cents
currency=sdk.Currency.USD, # or 'usd'
customer='customer@email.com'
)
print(payment.id)
print(payment.card.id)
print(payment.customer.id)
print(payment.http_response.body) # JSON body
except sdk.errors.CheckoutSdkError as e:
print('{0.http_status} {0.error_code} {0.elapsed} {0.event_id} // {0.message}'.format(e))
Card Id
try:
payment = api.payments.request(
card = 'card_713A3978-AFB2-4D30-BF9A-BA55714DC309',
value=100, # cents
currency=sdk.Currency.USD, # or 'usd'
customer='customer@email.com'
)
if payment.approved:
# ...
except sdk.errors.CheckoutSdkError as e:
print('{0.http_status} {0.error_code} {0.elapsed} {0.event_id} // {0.message}'.format(e))
Exception handling
class CheckoutSdkError(Exception): # catch all
class AuthenticationError(CheckoutSdkError): # 401
class BadRequestError(CheckoutSdkError): # 400
class ResourceNotFoundError(CheckoutSdkError): # 404
class Timeout(CheckoutSdkError):
class TooManyRequestsError(CheckoutSdkError): # 422
class ApiError(CheckoutSdkError): # 500 / fallback
The SDK will not do any offline validation of card data, IDs, etc. Provided the values and types are correct, all business validations are handled at API level. On that note, expect
ValueError
andTypeError
for incorrect usage.
Logging
os.environ['CKO_LOGGING'] = 'debug|DEBUG|info|INFO'
or ...
import logging
logging.getLogger('cko').setLevel(logging.DEBUG)
Test Suite
The tests currently need a Sandbox account. This will eventually be replaced by the incoming Checkout.com Mock API.
export CKO_SECRET_KEY="<your secret key>"
export CKO_LOGGING="info|debug"
python setup.py test
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
checkout_sdk-1.0.3.tar.gz
(13.8 kB
view hashes)
Built Distribution
Close
Hashes for checkout_sdk-1.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee5efa7bfece69276fc8edbcd3681e0db5b03d256c66cd8b59aadc958c89068a |
|
MD5 | 7c689ebdbdf0a78ff104d8c526f2fa18 |
|
BLAKE2b-256 | 98d71855a0901b78cdc6bf2542b90033fcb542a9dc517d2e04bdc82f3f18db94 |