Skip to main content

Docdata Payments Gateway integration for django-oscar

Project description

django-oscar-docdata

Payment gateway integration for Docdata Payments in django-oscar. DocData Payments is a large payment gateway based in The Netherlands that supports more then 40 international payment methods.

Installation

Install via pip:

pip install django-oscar-docdata

Configuration

Configure the application:

DOCDATA_MERCHANT_NAME

Credentials as supplied by the payment provider.

DOCDATA_MERCHANT_PASSWORD

Credentials as supplied by the payment provider.

DOCDATA_TESTING

Whether or not to run in testing mode. Defaults to True.

Add to urls.py:

from oscar_docdata.dashboard.app import application as docdata_app

urlpatterns += patterns('',
    url(r'^api/docdata/', include('docdata.urls')),
    url(r'^dashboard/docdata/', include(docdata_app.urls)),
)

Add to settings.py:

OSCAR_DASHBOARD_NAVIGATION[2]['children'].insert(1, {
    'label': _('Docdata Orders'),
    'url_name': 'docdata-order-list',
})

As recommendation, temporary log all events from this package as well:

LOGGING = {
    # ...

    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse',
        }
    },
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            'filters': ['require_debug_false'],
            'class': 'django.utils.log.AdminEmailHandler'
        },
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
        },
    },
    'loggers': {
        # ...

        'suds': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': True,
        },
        'oscar_docdata': {
            'handlers': ['mail_admins', 'console'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}

Caveats

While working with the docdata 1.0 API, we found the following limitations:

  • Address fields are oriented towards Dutch address standards. Passing US-addressfields is hard, or requires hacking (e.g. faking the house number).

  • Passing invalid address fields could cause PayPal, VISA or MasterCard transactions to fail.

  • The individual payment objects have a status value, but the payment cluster does not. This means that there is no global status value to read. If an order has been cancelled before starting a payment, there is no way to tell from the API. The only way this can be detected, is when the customer presses the “Back to shop” link, which calls the cancel callback url. You may want to catch the return_view_called signal for this.

  • Determining that an order has been paid happens by comparing “received >= expected”. This could break with currency conversions. Again, because the payment cluster status is not exposed in the API.

We hope this will be addressed by Docdata Payments in future versions of the API.

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-oscar-docdata-1.0.tar.gz (28.5 kB view details)

Uploaded Source

File details

Details for the file django-oscar-docdata-1.0.tar.gz.

File metadata

File hashes

Hashes for django-oscar-docdata-1.0.tar.gz
Algorithm Hash digest
SHA256 c7248eeec994176f2569d5283ca6aa1e9c60cd0ceac523f8b696dec20144de1c
MD5 3ad34f9999891c1a4d2d1e123174ee15
BLAKE2b-256 2b3015685833ec73e4275c15a80412bb60f9d974aa8c7800927dd43f5eadc030

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