Skip to main content

Python SDK for WePay API (third party).

Project description

python-wepay: Python WePay SDK (third party)
============================================

.. image:: https://travis-ci.org/lehins/python-wepay.svg?branch=master
:target: https://travis-ci.org/lehins/python-wepay
:alt: Travis-CI

.. image:: https://coveralls.io/repos/lehins/python-wepay/badge.png?branch=master
:target: https://coveralls.io/r/lehins/python-wepay?branch=master
:alt: Tests Coverage

.. image:: https://pypip.in/d/python-wepay/badge.png
:target: https://crate.io/packages/python-wepay/
:alt: Number of PyPI downloads


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 with full compatibilty with official WePay version.
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>`_ 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.4.0
-----

* Removed backward compatibility with official `Python WePay SDK <https://github.com/wepay/Python-SDK>`_.
* introduced :exc:`WePayHTTPError<wepay.exceptions.WePayHTTPError>`, which is a base exception for both :exc:`WePayClientError<wepay.exceptions.WePayClientError>` and :exc:`WePayServerError<wepay.exceptions.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: :exc:`WePayClientError<wepay.exceptions.WePayClientError>` and :exc:`WePayServerError<wepay.exceptions.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
-----

* Added required arguments to `/credit_card/create` call:

* original_ip
* original_device

1.1.0
-----

* Added subscription calls:

* `/subscription_plan`
* `/subscription`
* `/subscription_charge`

* Few bug and spelling fixes.

1.0.0
-----

* Initial release

Project details


Download files

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

Source Distribution

python-wepay-1.4.1.tar.gz (41.8 kB view details)

Uploaded Source

Built Distribution

python_wepay-1.4.1-py2-none-any.whl (37.4 kB view details)

Uploaded Python 2

File details

Details for the file python-wepay-1.4.1.tar.gz.

File metadata

File hashes

Hashes for python-wepay-1.4.1.tar.gz
Algorithm Hash digest
SHA256 fee161bce97f82ca72ccfe8093b1e70694fffd2f2d15d212266f88eefe6a2fbe
MD5 71d0accbaf5e5a477770991c9138b97e
BLAKE2b-256 27fc249adf0650d75d5887f7b8755a671b69f5563c86aa85e67f1a91b92abb06

See more details on using hashes here.

File details

Details for the file python_wepay-1.4.1-py2-none-any.whl.

File metadata

File hashes

Hashes for python_wepay-1.4.1-py2-none-any.whl
Algorithm Hash digest
SHA256 02f20252252a16fe76374fb1e79064b60d08d72733ccacb88c4948c4f593ebac
MD5 b4e29e44fce2753d2f5092dd0a4fe374
BLAKE2b-256 b37effa6aa477109caaf368b304dee05bc225b1df61456a9b3f1adf9c43abe5d

See more details on using hashes here.

Supported by

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