Integration between django-oscar and the Cybersource Secure Acceptance.
Project description
=================
django-oscar-cybersource
=================
This package is to handle integration between django-oscar based e-commerce sites and the `CCH Sales Tax Office <http://www.salestax.com/products/calculations-solutions/sales-tax-office.html>`_ SOAP API.
Caveats
=======
1. Requires and `django-oscar>=1.1.1` and `django-oscar-api>=1.0.1`.
2. Your project must use PostgreSQL, since cybersource.models.CyberSourceReply uses an HStore field to log request data.
3. You must fork the Oscar payment app to add a mixin to the transaction model.
Installation
============
1. Install the `django-oscar-cybersource` packages.::
$ pip install git+https://gitlab.com/thelabnyc/django-oscar-cybersource.git#r1.0.0
2. Add `cybersource` to your `INSTALLED_APPS`::
# myproject/settings.py
...
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.postgres',
...
'cybersource',
...
] + get_core_apps([
...
])
...
3. Add some attributes to `settings.py` to configure how the application should connect to Cybersource.::
# myproject/settings.py
# Create a Secure Acceptance profile using the Cybersource dashboard and enter the profile, access key, and secret key here
CYBERSOURCE_PROFILE = ...
CYBERSOURCE_ACCESS = ...
CYBERSOURCE_SECRET = ...
# Enter you Cybersource merchant ID and org ID as found in the dashboard
CYBERSOURCE_MERCHANT_ID = ...
CYBERSOURCE_ORG_ID = ...
# This defaults to the test endpoint (https://testsecureacceptance.cybersource.com/silent/pay). Override with the prod endpoint for real transactions.
CYBERSOURCE_ENDPOINT_PAY = ...
# Upon successful authorization of the user's credit card, where should we send the user?
# Enter the name of the thank you page view.
CYBERSOURCE_REDIRECT_SUCCESS = 'checkout:thank-you'
# Upon declined authorization of the user's credit card, where should we send the user?
# Enter the name of view where they can try again.
CYBERSOURCE_REDIRECT_FAIL = 'checkout:index'
# Upon successful authorization of the user's credit card, what status should he order be set to?
CYBERSOURCE_ORDER_STATUS_SUCCESS = 'Authorized'
4. Install extra fields on payment.models.Transaction (see also `How to fork Oscar apps <https://django-oscar.readthedocs.org/en/releases-1.1/topics/customisation.html#fork-the-oscar-app>`_).::
# payment/models.py
from cybersource.models import TransactionMixin
from oscar.apps.payment.abstract_models import AbstractTransaction
class Transaction(TransactionMixin, AbstractTransaction):
pass
from oscar.apps.payment.models import * # noqa
5. Create and run migrations for the `payment` app.::
$ python managy.py makemigrations payment
$ python managy.py migrate
6. Add `cybersource.urls` to your URL config.::
# myproject/urls.py
...
urlpatterns = patterns('',
...
url(r'^api/cybersource/', include('cybersource.urls')),
...
)
...
7. Include the device fingerprint code in your checkout interface.::
{# One Pixel Image Code #}
<p style="background:url({% url 'fingerprint-redirect' url_type='img-1' %})"></p>
<img src="{% url 'fingerprint-redirect' url_type='img-2' %}" alt="">
{# Flash Code #}
<object type="application/x-shockwave-flash" data="{% url 'fingerprint-redirect' url_type='flash' %}" width="1" height="1" id="thm_fp">
<param name="movie" value="{% url 'fingerprint-redirect' url_type='flash' %}" />
<div></div>
</object>
{# JS Code #}
<script src="{% url 'fingerprint-redirect' url_type='js' %}" type="text/javascript"></script>
Changelog
=========
1.0.0 (2016-01-25)
------------------
Initial release.
django-oscar-cybersource
=================
This package is to handle integration between django-oscar based e-commerce sites and the `CCH Sales Tax Office <http://www.salestax.com/products/calculations-solutions/sales-tax-office.html>`_ SOAP API.
Caveats
=======
1. Requires and `django-oscar>=1.1.1` and `django-oscar-api>=1.0.1`.
2. Your project must use PostgreSQL, since cybersource.models.CyberSourceReply uses an HStore field to log request data.
3. You must fork the Oscar payment app to add a mixin to the transaction model.
Installation
============
1. Install the `django-oscar-cybersource` packages.::
$ pip install git+https://gitlab.com/thelabnyc/django-oscar-cybersource.git#r1.0.0
2. Add `cybersource` to your `INSTALLED_APPS`::
# myproject/settings.py
...
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.postgres',
...
'cybersource',
...
] + get_core_apps([
...
])
...
3. Add some attributes to `settings.py` to configure how the application should connect to Cybersource.::
# myproject/settings.py
# Create a Secure Acceptance profile using the Cybersource dashboard and enter the profile, access key, and secret key here
CYBERSOURCE_PROFILE = ...
CYBERSOURCE_ACCESS = ...
CYBERSOURCE_SECRET = ...
# Enter you Cybersource merchant ID and org ID as found in the dashboard
CYBERSOURCE_MERCHANT_ID = ...
CYBERSOURCE_ORG_ID = ...
# This defaults to the test endpoint (https://testsecureacceptance.cybersource.com/silent/pay). Override with the prod endpoint for real transactions.
CYBERSOURCE_ENDPOINT_PAY = ...
# Upon successful authorization of the user's credit card, where should we send the user?
# Enter the name of the thank you page view.
CYBERSOURCE_REDIRECT_SUCCESS = 'checkout:thank-you'
# Upon declined authorization of the user's credit card, where should we send the user?
# Enter the name of view where they can try again.
CYBERSOURCE_REDIRECT_FAIL = 'checkout:index'
# Upon successful authorization of the user's credit card, what status should he order be set to?
CYBERSOURCE_ORDER_STATUS_SUCCESS = 'Authorized'
4. Install extra fields on payment.models.Transaction (see also `How to fork Oscar apps <https://django-oscar.readthedocs.org/en/releases-1.1/topics/customisation.html#fork-the-oscar-app>`_).::
# payment/models.py
from cybersource.models import TransactionMixin
from oscar.apps.payment.abstract_models import AbstractTransaction
class Transaction(TransactionMixin, AbstractTransaction):
pass
from oscar.apps.payment.models import * # noqa
5. Create and run migrations for the `payment` app.::
$ python managy.py makemigrations payment
$ python managy.py migrate
6. Add `cybersource.urls` to your URL config.::
# myproject/urls.py
...
urlpatterns = patterns('',
...
url(r'^api/cybersource/', include('cybersource.urls')),
...
)
...
7. Include the device fingerprint code in your checkout interface.::
{# One Pixel Image Code #}
<p style="background:url({% url 'fingerprint-redirect' url_type='img-1' %})"></p>
<img src="{% url 'fingerprint-redirect' url_type='img-2' %}" alt="">
{# Flash Code #}
<object type="application/x-shockwave-flash" data="{% url 'fingerprint-redirect' url_type='flash' %}" width="1" height="1" id="thm_fp">
<param name="movie" value="{% url 'fingerprint-redirect' url_type='flash' %}" />
<div></div>
</object>
{# JS Code #}
<script src="{% url 'fingerprint-redirect' url_type='js' %}" type="text/javascript"></script>
Changelog
=========
1.0.0 (2016-01-25)
------------------
Initial release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django-oscar-cybersource-1.0.0.tar.gz
.
File metadata
- Download URL: django-oscar-cybersource-1.0.0.tar.gz
- Upload date:
- Size: 11.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 172f048f820a63ba4610855b95f37528efb3442aa52e371fefd6ec8bcf6bded1 |
|
MD5 | a366dd93fb0cb4c4ba914e215e8f8ccc |
|
BLAKE2b-256 | 60d64e2df167a9e1592a6669e8aae4fbf427f9f208201173ad25b10736b027d0 |