==============================
python-wepay: Python WePay SDK
.. image:: https://readthedocs.org/projects/python-wepay/badge/?version=latest
:target: https://readthedocs.org/projects/python-wepay/?badge=latest
:alt: Documentation Status
.. image:: https://img.shields.io/pypi/v/python-wepay.svg
:target: https://pypi.python.org/pypi/python-wepay/
:alt: Latest Version
.. image:: https://img.shields.io/pypi/dm/python-wepay.svg
:target: https://pypi.python.org/pypi/python-wepay/
:alt: Number of PyPI downloads
.. image:: https://landscape.io/github/lehins/python-wepay/master/landscape.png
:target: https://landscape.io/github/lehins/python-wepay/master
:alt: Code Health
.. image:: https://img.shields.io/coveralls/lehins/python-wepay.svg
:target: https://coveralls.io/r/lehins/python-wepay
:alt: Tests Coverage
.. image:: https://travis-ci.org/lehins/python-wepay.svg?branch=master
:target: https://travis-ci.org/lehins/python-wepay
:alt: Travis-CI
Features
- Make API calls in a very natural pythonic way, ex:
.. code-block:: python
>>> api = WePay(production=False, access_token='STAGE_243...')
>>> response = api.account.create("name", "description", type='nonprofit')
>>> account_id = response['account_id']
>>> callback_uri = "https://example.com/ipn/account/%s" % account_id
>>> response = api.account.modify(account_id, callback_uri=callback_uri)
>>> api.preapproval.create("short description", "daily", amount=45.5, account_id=account_id)
{'preapproval_id': 619202, 'preapproval_uri': 'https://stage.wepay.com/api/preapproval/619202'}
- Validation of all required and optional parameters to each one of the calls.
- Very easy construction of batch calls, simply by passing
batch_mode=True
to
a call, ex:
.. code-block:: python
>>> call1 = api.checkout.create(1234, short_description, type, amount, batch_mode=True)
>>> call2 = api.withdrawal.find(1235, sort_order='ASC', access_token='access_token_for_other_account', batch_mode=True)
>>> response = api.batch.create(client_id, client_secret, [call1, call2])
About
This package started as a part of Django WePay Application <https://github.com/lehins/django-wepay>
, but I soon realized it could be
useful to other developers in Python community that do not use Django <https://djangoproject.com>
. Originally it meant to be an extension of an
official Python WePay SDK <https://github.com/wepay/Python-SDK>
, but instead
it became a replacement. This package is also listed as a third party Python SDK on WePay <https://www.wepay.com/developer/resources/sdks>
.
Status
Production.
Requirements
- Python >= 2.7 or >= 3.2
- Registered Application with WePay
production <https://wepay.com>
_ site or
it's development <https://stage.wepay.com>
_ clone.
six <https://pypi.python.org/pypi/six>
_.
requests <http://docs.python-requests.org/en/latest/>
_ (optional):
mock <https://pypi.python.org/pypi/mock>
_ (optional, for tests only)
Installation
::
pip install python-wepay
Documentation
http://python-wepay.readthedocs.org/en/latest/index.html
License
MIT licensed. See the bundled LICENSE <https://github.com/lehins/python-wepay/blob/master/LICENSE>
_ file for more details.
Changelog
1.5.0
-
added /account/membership/
calls.
-
added /user/mfa/
calls.
-
New API version 2015-09-09 changes are reflected in this SDK version:
/withrawal/create
is deprecated.
-
New API version 2015-08-15 changes are reflected in this SDK version:
/account/create
now accepts both old and new style params.
-
removed deprecated call /user/resend_confirmation
.
-
/accout/create
and /account/modify
now accept country_options
and
fee_schedule_slot
params
-
added restricted credit_card/transfer
call.
1.4.4
- renamed
user.resend_confirmation
call to user.send_confirmation
.
1.4.3
1.4.0
- Removed backward compatibility with official
Python WePay SDK <https://github.com/wepay/Python-SDK>
_.
- introduced
WePayHTTPError
, which is a base exception for both WePayClientError
and WePayServerError
- added
cached_property
decorator.
- changed they way calls are initialized. This change doesn't affect the way calls are made.
1.3.5
- Fixed and improved error handling, new exceptions:
WePayClientError
and WePayServerError
.
1.3.4
- Connection
timeout
can be specified on per call basis.
1.3.0
-
Python 3 compatible
-
Calls are made using requests <http://docs.python-requests.org/en/latest/>
_
library by default (if installed), falls back to urllib <https://docs.python.org/3/library/urllib.html#module-urllib>
_ if requests
are not installed or if WePay
is initialized with
use_requests=False
.
-
WePayConnectionError
is raised
in case there is a problem connecting to WePay server, ex. timeout.
-
Addition of a full test suit.
-
Minor:
- 'original_ip' and 'original_device' params are now optional in
/credit_card/create
.
silent
mode is more flexible.
- Moved
SubscriptionPlan
and SubscriptionCharge
to their own modules.
- Moved
WePayWarning
over to wepay.exceptions
module.
1.2.0
-
New API version 2014-01-08 changes are reflected in this SDK version:
- implemented
/user/register
and user/resend_confirmation
calls.
- added
/account/get_update_uri
and /account/get_reserve_details
- depricated
/account/add_bank
, /account/balance
, /account/get_tax
and /account/set_tax
calls.
-
restructured SDK in such a way that all API objects are separate classes, so
as an example, if we have a WePay instance api = WePay()
and we want to
make a /account/find
call, it will look like this api.account.find()
instead of api.account_find()
(notice . instead of _), although in
this version both are equivalent, latter one is depricated and will be removed
in version 1.3. Despite these changes lookup calls will be the same, ex.
api.account(12345)
.
-
Added flexibility to use different API version per call basis. So it is now
possible to make a depricated call like this: api.account.balance(1234, api_version='2011-01-15')
-
added batch_reference_id
keyword argument to each call that accepts
batch_mode
1.1.2
1.1.0
1.0.0