Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

Trying to make it easy to accept payments in Python.

Project description

Paython
=========

Trying to make it easy to accept payments in Python. So far, we're Paython.

Currently - you can just import the gateway needed from gateways & auth/settle/capture (sale)/void/credit once you instantiate with the proper credentials.

Supported Gateways
==================

* Stripe
* Authorize.net
* Innovative Gateway Solutions (Intuit)
* First Data Global Gateway (formerly Linkpoint?)
* PlugnPay
* Samurai

Usage
===========================
It's super simple to start:

Importing what you need

```py
from paython import CreditCard, AuthorizeNet
```

Setting up a credit card

```py
credit_card = CreditCard(
number = '4111111111111111',
exp_mo = '02',
exp_yr = '2012',
first_name = 'John',
last_name = 'Doe',
cvv = '911',
strict = False
)
```

Checking to see if it's valid

```py
if not credit_card.is_valid(): return 'houston, we have a problem' # checks card number + expiration date
```

Setting up customer data to charge, not all fields are required.

```py
customer_data = dict(
address='123 Main St',
address2='Apt 1',
city='Pleasantville',
state='IA',
zipcode='54321',
country='US',
phone='654-369-9589',
email='john@localwoodshop.com',
ip='127.0.0.1')
```

Trying to authorize against gateway, options include debug output or test credentials

```py
api = AuthorizeNet(username='test', password='testpassword', debug=True, test=True)
gateway_response = api.auth(amount='0.05', credit_card=credit_card, billing_info=customer_data, shipping_info=None)
```

Keep in mind, if you authorize, you need to settle

```py
api = AuthorizeNet(username='test', password='testpassword', debug=True, test=True)
gateway_response = api.settle(amount='0.05', trans_id='2156729380')
```

OR, you can capture instead

```py
api = AuthorizeNet(username='test', password='testpassword', debug=True, test=True)
gateway_response = api.capture(amount='0.05', credit_card=credit_card, billing_info=customer_data, shipping_info=None)
```


This is the standard paython response.

```py
gateway_response = {
'response_text': 'This transaction has been approved.',
'cvv_response': 'P',
'response_code': '1',
'trans_type': 'auth_only',
'amount': '0.05',
'avs_response': 'Y',
'response_reason_code': '1',
'trans_id': '2156729380',
'alt_trans_id': '',
'auth_code': 'IL2UW7',
'approved': True,
'response_time': '0.55'
}
```

Install Requirements
===========================

You need pip::

pip install -r requirements.txt

Run Tests
=========

Just run::

nosetests

Or with stats::

nosetests --quiet --with-coverage --cover-package paython

When initializing a gateway, debug will output request params, xml & response text or xml. test will use the test gateway endpoint, if there is one & will raise an error otherwise (NoTestEndpointError).

Project details


Release history Release notifications

Download files

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

Files for paython, version 0.0.3
Filename, size File type Python version Upload date Hashes
Filename, size paython-0.0.3.tar.gz (23.8 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page