Git Product home page Git Product logo

paymill-python's Introduction

PAYMILL icon

paymill-python

Python wrapper for PAYMILL API(beta)

Getting started

  • If you are not familiar with PAYMILL, start with the documentation.
  • Install the latest release.
  • Check the 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:

   paymill_context = paymill.PaymillContext('<YOUR PRIVATE API KEY>')

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
  • ChecksumService

These 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

 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

 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:

 #creates a client without email and description
 client_service.create()
 #creates a client with email
 client_service.create(email='[email protected]')
 #creates a client with description
 client_service.create(description='CRM Id: fake_34212')
 #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:

 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:

 clients = client_service.list()

You may provide a filter and order to list method:

 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:

 client_service.update(client)

Deleting objects

You may delete objects by calling the service's delete() method with an object instance.

 client_service.remove(client)

Changelog

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)

paymill-python's People

Contributors

02strich avatar daredevildave avatar edmund-wagner avatar kliment avatar l0ck3 avatar la0 avatar lukasklein avatar markvdb avatar mbi avatar mfa avatar sebslomski avatar yalnazov avatar zerok avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.