Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/paymill/paymill-python
Python wrapper for Paymill API
https://github.com/paymill/paymill-python
Last synced: 3 months ago
JSON representation
Python wrapper for Paymill API
- Host: GitHub
- URL: https://github.com/paymill/paymill-python
- Owner: paymill
- License: mit
- Fork: true (kliment/pymill)
- Created: 2012-09-12T17:32:21.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2017-07-03T11:32:02.000Z (over 7 years ago)
- Last Synced: 2024-07-18T08:09:16.364Z (5 months ago)
- Language: Python
- Homepage:
- Size: 146 KB
- Stars: 26
- Watchers: 17
- Forks: 18
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![PAYMILL icon](https://static.paymill.com/r/335f99eb3914d517bf392beb1adaf7cccef786b6/img/logo-download_Light.png)
# paymill-pythonPython wrapper for PAYMILL API(beta)
## Getting started
- If you are not familiar with PAYMILL, start with the [documentation](https://www.paymill.com/en-gb/documentation-3/).
- Install the latest release.
- Check the API [reference](https://www.paymill.com/en-gb/documentation-3/reference/api-reference/).
- Check the tests.## Installation
You can either choose to install the package from PyPi executing following line:```
pip install paymill-wrapper
```Or you can check out the project, and install it locally. Navigate to the root directory and execute following line:
```
pip install . -r requirements.txt
```## What's new
We have released version 1.1.0 which is coded directly to the PAYMILL API v2.1 and is Py2&3 compatible.This version is no longer backwards compatible with the pymill fork from https://github.com/kliment/pymill. If you need to be PAYMILL API v2.0 compatible please use https://github.com/paymill/paymill-python/tree/v0.1.2.
## Usage
Initialize the library by providing your api key:
```python
paymill_context = paymill.PaymillContext('')
```
PaymillContext loads the context of PAYMILL for a single account, by providing a merchants private key. It creates 8 services, which represents the PAYMILL API:
* ClientService
* OfferService
* PaymentService
* PreauthorizationService
* RefundService
* SubscriptionService
* TransactionService
* WebhookService
* ChecksumServiceThese services should not be created directly. They have to be obtained by the context's accessors.
### Using services
In all cases, you'll use the predefined service classes to access the PAYMILL API.
To fetch a service instance, call *service name* accessor from paymill_context, like
```python
client_service = paymill_context.get_client_service()
```
Every service instance provides basic methods for CRUD functionality.### Creating objects
Every service provides instance factory methods for creation. They are very different for every service, because every object can be created in a different way. The common pattern is
```python
xxx_service.create_XXX(params...)
```
For example: client can be created with two optional parameters: *email* and *description*. So we have four possible methods to create the client:
```python
#creates a client without email and description
client_service.create()
```
```python
#creates a client with email
client_service.create(email='[email protected]')
```
```python
#creates a client with description
client_service.create(description='CRM Id: fake_34212')
```
```python
#creates a client with email and description
client_service.create(email='[email protected]', description='CRM Id: fake_34212')
```### Retrieving objects
You can retrieve an object by using the get() method with with the instance itself:
```python
client_service.detail(client)
```
This method throws an PMError if there is no client under the given id.### Retrieving lists
To retrieve a list you may simply use the list() method:
```python
clients = client_service.list()
```
You may provide a filter and order to list method:
```python
clients = client_service.list(
order=paymill.models.client.Client.Order.created_at().desc(),
filtr=paymill.models.client.Client.Filter.by_email('[email protected]'))
```
This will load only clients with email [email protected], order descending by creation date.### Updating objects
In order to update an object simply call a service's update() method:
```python
client_service.update(client)
```### Deleting objects
You may delete objects by calling the service's delete() method with an object instance.
```python
client_service.remove(client)
```## Changelog
### 2.4.1
* Fix version in setup.py### 2.4.0
* Add param client_id to checksum create function### 2.3.0
* Disable httplib debugging by default
* http_debugging_enabled otional parameter added to PaymillContext### 2.2.0
* Bug fixing
* ChecksumService added
* FilterList added### 2.1
* PyPi release fixed### 2.0
* Some names regarding package installation changed
* Official PyPi release### 1.1
* Support for Py3
* FilterList added for filter combination
* Bug fixing & code improvements### 1.0
* New implementation from scratch that conforms to PAYMILL API v2.1## License
Copyright 2014 PAYMILL GmbH.
MIT License (enclosed)