Version structure: the "1.x" refers to the Docdata API version.
- Added missing parameter when raising a DocDataStatusError exception in the sandbox
- Wrap the order update in order_status_changed in a transaction
- Wrap _store_report_lines in a transaction and make sure payment_id is a string
- Simplified _store_report_lines by using get_or_create
- remove DOCDATA_ORDER_ID_START from sandbox
- renamed remaining createErrors / cancelErrors / statusErrors to be compliant with Docdata API version 1.3
- createError has been renamed to createErrors in Docdata API version 1.3
- Upgraded to Docdata 1.3 API
- Removed the untested and probably unused start method from the DocdataClient class
- Removed the corresponding start_payment method from the Interface class
- Added Python 3 and Django classifiers and wheel package
- Dropped Django < 1.11 and added support for Django 1.11, 2.0 and 2.1
- Fixed management commands to work with Django>=1.11
- Cleanup and simplified sandbox application
- Removed unused django-polymorphic dependency and cleanup up depending model
- Added Python 3 support.
- Fixed Django 1.9+ support in templates.
- Fixed the
default
value of themerchant_name
field in the migrations.
- Fixed Django 1.10 deprecation warnings
- Added django-polymorphic 0.8 support
- Added Django 1.7 migrations
- Cache Docdata WSDL information, avoid fetching it each time
Facade
/Interface
/DocdataClient
object is constructed. - Added
DocdataClient.set_merchant(name, password)
method. - Added subaccount support
- Added
merchant_name
parameter tocreate_payment()
.- Fill
DOCDATA_MERCHANT_PASSWORDS
to support updating/cancelling orders created at other subaccounts.- Minor backwards incompatibility:
start_payment()
"order_key" parameter is renamed to "order". This only affects passing kwargs. Passing the order key works but is deprecated, pass aDocdataOrder
instead.
- Added
update_docdata_order
management command. - Added
-v3
flag for managements commands to displays the SOAP XML conversation (via logging). - Allow
return_view_called
signal handlers to return a response, thereby overriding the default response. - Increased
DOCDATA_PAYMENT_SUCCESS_MARGIN
for USD to $1.50 - Fix reverting order statuses, using
Order.set_status()
now so manually changed order statuses are not reversed. - Fix detecting "paid" status when the customer starts multiple payment attempts, but then completes the first. (the root issue here is the lack of a missing global "cluster/order status" field in the API - so we have to make guesses).
- Fix handling of paid orders that have a partial refund (e.g. 5%).
- Fix handling of orders with received a chargeback.
- Fix using
%s
in logging statements so Sentry can group similar events. - Fix
DocdataOrder.last_payment
property.
- Added support for multiple merchant accounts in a single database (multi-tenant support).
- Added manager methods to
DocdataOrder.objects
:current_merchant()
,for_reference()
,for_order()
. - Added support for the parameters
billing_address
,shipping_address
,basket
in the get_create_payment_args() code. - Added support for the
Invoice
element. This is needed to pass state for PayPal. - Added
DOCDATA_FACADE_CLASS
setting, so all views use a custom Facade - Added
DOCDATA_HOUSE_NUMBER_FIELD
setting. - Added
oscar_docdata.gateway.to_iso639_part1()
function, for sending language codes in the proper format. - Added pagination in docdata dashboard view.
- Using suds-jurko fork for SOAP calls, which is a maintained fork of suds.
- Fix detecting expired orders via the status API.
- Improve
/api/docdata/update/
output for curl usage.
- Fix concurrency issues with Docdata calling both the return_url and notification_url at the same time.
- Apply 32 char limit to street field in the default get_create_payment_args() implementation.
- Add management command
expire_docdata_orders
- Add management command
docdata_report
- Be more strict with payment tags, check for
capture=CAPTURED
- Explicitly set
DocdataException.value
to be a unicode string. - Fix possible circular import errors when using
Facade
inmodels.py
- Avoid warning for undocumented
AUTHORIZATION_ERROR
andCANCEL_FAILED
status value.
- Add
DOCDATA_PAYMENT_SUCCESS_MARGIN
setting to handle currency conversion rate issues. - Avoid warning for undocumented
AUTHORIZATION_FAILED
status value. - Mention 32 character limit for street fields in the README and sandbox.
- Upgraded to Docdata 1.2 API
- Released stable version after months of internal usage.