MercadoPago集成插件for django
项目描述
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 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 60d37dc09e4053ce33f8168391071d5e35c3520ed590631d0637a7a51338ac73 |
|
MD5 | 8e074ec092d5d4217b200c4db1a1370b |
|
BLAKE2b-256 | 9893717c02fa5e226749e6430bf29227e647b81ba2a74eebaee0372f8c07388b |
django_mercadopago-6.0.1-py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 84d1142d4dc336484be2e071e9b102669a31ff80d54ba0a919aa6c664c6b5b4e |
|
MD5 | 6a9abec025cab9c24ada19faefd84769 |
|
BLAKE2b-256 | d8fac23c9d1bdf00271c0d554d13b829561127986f9dcd20359bb5792dc909fe |