Skip to main content

MercadoPago integration for django

Project description

django-mercadopago-simple is a simple django application for interacting with MercadoPago, aiming to be rather simple, and only covers the basic uses cases.

Features

Our intention is not to cover 100% of the features of the upstream API, but rather provide a simple app that allows accepting and tracking payments. This should suffice for simple sites like shopping carts, online sales, etc.

Pull requests are always welcome. Please don’t hesitate to open an issue if you encounter a problem. New features will generally only be added as needed, but again, accepted if you submit a patch.

Installation

Installation should generally be done via pip:

pip install django-mercadopago-simple

Configuration

The following settings apply to this application:

# Process notifications as soon as they are received:
MERCADOPAGO_AUTOPROCESS = True
# This is the hostname where your server will receive notifications:
# Notifcation URLs will be sent with your preferences prefixing this to
# their URLs.
MERCADOPAGO_BASE_HOST = 'https://example.com/'

If MERCADOPAGO_AUTOPROCESS is True, notifications will be processed as soon as they are received. Otherwise, it’s up to the developer to process them. A signal is always fired when a notification has been created, and a common pattern if not auto-processing is to have a celery task to process them:

@receiver(notification_received)
def process_notification(sender, **kwargs):
    tasks.process_notification.delay(notification=sender)

You’ll also want to link your MercadoPago credentials to this app - maybe just yours, maybe multiple accounts.

Once you’ve obtained your application app id and secret key here, create an Account object with them. This can be done via the django admin included with this app or programmatically.

You should also expose the notifications endpoints like this:

url(r'^mercadopago/', include('django_mercadopago.urls'), namespace='mp'),
# Make sure namespace is 'mp', since we assume it is for notification URL
# contruction.

Usage

MercadoPago lets you create preferences, for which you’ll later receive notifications (indicating if it was paid, or what happened):

self.preference = Preference.objects.create(
    title='the product name',
    price=10.0,
    reference='order-38452',
    success_url='http://example.com/mp_done',
    account=account,
)

If your app will only be using a single MercadoPago account, just use:

account = Account.objects.first()

Finally, you can handle payment notifications in real time using a post_update hook:

@receiver(post_save, sender=MercadoPagoPayment)
def process_payment(sender, instance=None, created=False, **kwargs):
    do_stuff()

Backwards compatibility

Version 2.0.0 changes the database schema quite a bit. While older data is retained, some missing fields had to be filled. Auto-generated data will have negative key values, and should easily be recognizable.

Regrettably, filling in this data is not possible. However, there is no data loss involved.

Licence

This software is distributed under the ISC licence. See LICENCE for details.

Copyright (c) 2015-2017 Hugo Osvaldo Barrera <hugo@barrera.io>

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

django-mercadopago-simple-2.9.0.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file django-mercadopago-simple-2.9.0.tar.gz.

File metadata

File hashes

Hashes for django-mercadopago-simple-2.9.0.tar.gz
Algorithm Hash digest
SHA256 ecf7775e170399fcbd50f751f23cb787e6a20de3ad5ae24b520246092c011e8e
MD5 215a86f6b84787bef34ad0f4dec082b4
BLAKE2b-256 30db9cb8aecda8c85a246f9d8df2db7cebe2fdde7e27d93e6a0ae8556851d260

See more details on using hashes here.

File details

Details for the file django_mercadopago_simple-2.9.0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_mercadopago_simple-2.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a8b6005f92c281aa162358f69740fec6a9cb78ace90916ccfdaae9fee4117a60
MD5 3ce6c42f2a61a6e59a2ed204c7cba537
BLAKE2b-256 02df7de6f9fe4b4c7ed6122cbb8387a69e8218f761675b796f24d154fb33b4ff

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