跳转到主要内容

MercadoPago集成插件for django

项目描述

build status coverage report version on pypi licence

django-mercadopago是一个简单的django应用程序,用于与MercadoPago交互,旨在保持简单,只覆盖基本用例。

功能

我们的意图不是涵盖上游API的所有功能,而是提供一个简单的应用程序,允许接受和跟踪支付。这对于简单的网站,如购物车、在线销售等应该足够。

欢迎提交拉取请求。如果您遇到问题,请毫不犹豫地打开一个问题。新功能通常仅在需要时添加,但如果您提交补丁,也将被接受。

安装

通常应通过pip进行安装

pip install django-mercadopago

配置

您需要在此获取您的API凭证(应用ID和密钥),并用它们创建一个Account对象。这可以通过此应用程序包含的django管理界面或通过程序来完成。

您还应公开通知端点,如下所示

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

请注意,这些端点是必需的,因为通知回调在没有它们的情况下将无法工作。

还有一些Django设置配置此应用程序的行为。所有这些设置都包含在您的Django设置中的一个单独的dict

MERCADOPAGO = {
    'autoprocess': True,
    'success_url': 'myapp:mp_success',
    'failure_url': 'myapp:mp_failure',
    'pending_url': 'myapp:mp_pending',
    'base_host': 'https://www.mysite.com
}

以下是对每个设置的说明。

AUTOPROCESS

必需

如果设置为True,则会在接收到通知后立即处理。否则,需要由开发者来处理。

每当创建一个通知时,都会触发一个信号,如果不需要自动处理,通常的做法是使用celery任务来处理它们。

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

SUCCESS_URL

必需

在用户成功完成支付后,请求将被重定向到这个命名的URL模式。这个URL将接收为参数这个支付创建的通知的id

例如,如果这个值设置为payment_recived,相应的URL模式将如下所示

url(
    r'pago_recibido/(?P<pk>.*)$',
    order.OrderPaidView.as_view(),
    name='payment_received',
),

FAILURE_URL

必需

在用户支付失败后,请求将被重定向到这个命名的URL模式。这个URL将接收为参数用户尝试支付的首选项的id

PENDING_URL

必需

在用户完成支付但确认待定(例如,需要几天的时间、银行存款等)后,请求将被重定向到这个命名的URL模式。这个URL将接收为参数用户尝试支付的首选项的id

BASE_HOST

必需

定义了用于通知和回调URL的域名。它将被添加到暴露的通知端点的确切URL之前。

用法

MercadoPago允许您创建首选项,稍后您将收到通知(指示是否已支付或发生了什么)

preference = Preference.objects.create(
    owner=my_account,
    reference='order-38452',
)

item = Item.objects.create(
    preference=preference,
    title='Candy box',
    quanityty=2,
    unit_price=10.0,
)

preference.submit()

如果您的应用将只使用一个MercadoPago账户,只需使用

account = Account.objects.first()

最后,您可以使用post_update钩子实时处理支付通知

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

要完成完整的支付流程,您需要

  • 创建一个Preference

  • 使用preference.url将用户重定向到支付页面。

  • 如果您的webhooks配置正确,用户完成操作后,通知将被立即创建。

    • 根据您的AUTOPROCESS设置,状态可能自动更新,也可能需要您自己处理(见上文)。

    • 如果您没有使用webhooks,您将不得不不时手动轮询状态(使用poll_status)。

向后兼容

版本v6.0.0增加了对多个项目的支持,并更改了首选项创建界面。首选项及其项目必须手动支付,然后必须调用Preference.submit()

从v5.0.0开始,不再支持由v4.2.0及更早版本生成的通知和回调URL格式。用户必须升级到v4.3.0,并运行此版本,直到所有待处理支付完成(或过期),然后才能升级到v5.0.0。

请注意,在v4.2.0之前,此包在PyPI上被称为django-mercadopago-simple。旧版本在这个名字下存在。

版本2.0.0对数据库模式进行了相当大的更改。虽然保留了旧数据,但必须填充一些缺失的字段。自动生成数据将具有负键值,并且应很容易识别。

遗憾的是,无法自动填充这些数据。然而,没有数据丢失。

许可

此软件根据ISC许可证分发。有关详细信息,请参阅LICENCE。

版权 (c) 2015-2018 Hugo Osvaldo Barrera <hugo@barrera.io>

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

django-mercadopago-6.0.1.tar.gz (25.8 kB 查看散列)

上传时间

构建分发

django_mercadopago-6.0.1-py3-none-any.whl (30.6 kB 查看散列)

上传时间 Python 3

由支持