...
Document
...
Logs
...
Change
...
log:
...
Date: |
---|
...
Author: |
---|
...
Version: |
---|
...
Changes: |
---|
...
Completed | Ext. | Int. | Is in Core | |
---|---|---|---|---|
|
...
|
...
1.0 |
...
Doc. |
...
created |
...
Yes | X |
|
|
Terms and definitions:
Terms/definitions: |
---|
...
Meaning: |
---|
...
TBD | To be defined |
N/A |
...
Not |
...
applicable |
...
1 - Purpose of Document
This document provides the overall technical details and design of implementing and using the functionality as specified in section 2 - Introduction. This document will not cover implementation details – for this the code base should be inspected.
2 - Introduction to Functionality
Ekspres bank is a company that can help finance a purchase by supplying a 'loan' during the purchase phase.
This means that the customer buys a phone during sign up. The customer chooses to buy through Ekspres bank who then pays for the phone.
The customer now has a 'loan' at Ekspres bank that the customer will pay back outside our system.
The process is done through three steps.
- The customer chooses to use Ekspres bank, and a container for the purchase is created at Ekspres bank thorugh a SOAP call (ApplicationCreate).
- The customer is the approved or rejected. To get that information Ekspres Bank is polled for a status of the purchase through SOAP (ApplicationStatus).
- If the customer is approved, Rator acknowledges the purchase and sends a capture message to Ekspres bank through SOAP (Capture). It is also possible to cancel the purchase through SOAP (cancel).
The SOAP interaction is implemented and can be found at
https://svn.cdrator.com/svn/dev/integration/Financial/DK/EkspresBank/trunk
...
Maven dependency:
Code Block |
---|
<groupId>com.cdrator.integration.financial</groupId>
<artifactId>rator-financial-dk-ekspresbank</artifactId>
{code}
h2. 3 - API
There are two ways to use the implementation, either through actions or if you are running on an older version of core components.
h4. Action
h6. ApplicationCreateServiceAction
*Package*: |
3 - API
There are two ways to use the implementation, either through actions or if you are running on an older version of core components.
Action
...
ApplicationCreateServiceAction
...
Package: com.CDRator.billing.financial.ekspresbank.action.ApplicationCreateServiceAction
...
This
...
action
...
takes
...
in
...
three
...
arguments
...
Code Block |
---|
public String execute(String orderNr, Map<String, String> fieldValues, String brandId) throws Exception
{code}
* |
orderNr
...
:
...
An
...
order
...
number
...
to
...
be
...
used
...
in
...
the
...
future
...
to
...
identify
...
this
...
transaction.
...
fieldValues
...
:
...
This
...
is
...
used
...
to
...
specify
...
additional
...
key
...
value
...
pairs
...
to
...
be
...
used
...
in
...
the
...
call
...
to
...
Ekspres
...
bank.
...
Those
...
additional
...
values
...
could
...
be
...
channelId,
...
duration,
...
PrimaryAmount
...
etc.
...
The
...
map
...
contains
...
key/values
...
pairs
...
channelid=1,
...
...These
...
values
...
are
...
optional.
...
brandId
...
:
...
The
...
URL
...
of
...
the
...
webservice
...
at
...
Ekspres
...
bank
...
and
...
some
...
additional
...
required
...
arguments
...
that
...
are
...
needed
...
are
...
specified
...
in
...
the
...
parameter
...
tree.
...
This
...
brand
...
Id
...
is
...
used
...
on
...
a
...
branded
...
environment.
...
The
...
action
...
returns
...
a
...
string,
...
see
...
section
...
4
...
for
...
return
...
values.
...
If
...
anything
...
unexpected
...
happens
...
an
...
exception
...
is
...
thrown.
...
...
ApplicationStatusServiceAction
...
Package: com.CDRator.billing.financial.ekspresbank.action.ApplicationStatusServiceAction
...
The
...
action
...
takes
...
two
...
arguments:
...
Code Block |
---|
public String execute(String orderNr, String brandId) throws Exception
{code}
*orderNr*: An order number used to identify the transaction.
*brandId*: The URL of the webservice at Ekspres bank and some additional required arguments that are needed are specified in the parameter tree. This brand Id is used on a branded environment.
The action returns a string which is the 'decision' on the response from Ekspres bank. This decision is mapped from a single character to a readable response.
_ACCEPT, DECLINE, REFER, CANCEL, GOAHEAD, CAPTURED, ERROR_
If anything unexpected happens, an exception is thrown.
h6. CancelAction
*Package*: |
orderNr: An order number used to identify the transaction.
brandId: The URL of the webservice at Ekspres bank and some additional required arguments that are needed are specified in the parameter tree. This brand Id is used on a branded environment.
The action returns a string which is the 'decision' on the response from Ekspres bank. This decision is mapped from a single character to a readable response.
ACCEPT, DECLINE, REFER, CANCEL, GOAHEAD, CAPTURED, ERROR
If anything unexpected happens, an exception is thrown.
...
CancelAction
...
Package: com.CDRator.billing.financial.ekspresbank.action.CancelAction
...
This
...
action
...
takes
...
in
...
three
...
arguments:
...
Code Block |
---|
public String execute(String orderNr, String brandId) throws Exception
{code}
* |
orderNr
...
:
...
An
...
order
...
number
...
used
...
to
...
identify
...
the
...
transaction.
...
brandId
...
:
...
The
...
URL
...
of
...
the
...
webservice
...
at
...
Ekspres
...
bank
...
and
...
some
...
additional
...
required
...
arguments
...
that
...
are
...
needed
...
are
...
specified
...
in
...
the
...
parameter
...
tree.
...
This
...
brand
...
Id
...
is
...
used
...
on
...
a
...
branded
...
environment.
...
The
...
action
...
returns
...
a
...
string,
...
see
...
section
...
4
...
for
...
return
...
values.
...
If
...
anything
...
unexpected
...
happens,
...
an
...
exception
...
is
...
thrown.
...
...
CaptureAction
...
Package: com.CDRator.billing.financial.ekspresbank.action.CaptureAction
...
This
...
action
...
takes
...
in
...
three
...
arguments:
...
Code Block |
---|
public String execute(String orderNr, String brandId) throws Exception
{code}
* |
orderNr
...
:
...
An
...
order
...
number
...
used
...
to
...
identify
...
the
...
transaction.
...
brandId
...
:
...
The
...
URL
...
of
...
the
...
webservice
...
at
...
Ekspres
...
bank
...
and
...
some
...
additional
...
required
...
arguments
...
that
...
are
...
needed
...
are
...
specified
...
in
...
the
...
parameter
...
tree.
...
This
...
brand
...
Id
...
is
...
used
...
on
...
a
...
branded
...
environment.
...
The
...
action
...
returns
...
a
...
string,
...
see
...
section
...
4
...
for
...
return
...
values.
...
If
...
anything
...
unexpected
...
happens,
...
an
...
exception
...
is
...
thrown.
...
Component
...
ApplicationStatusServiceComponent
...
Package: com.CDRator.billing.financial.ekspresbank.component.ApplicationStatusServiceComponent
...
This
...
component
...
will
...
poll
...
for
...
the
...
status
...
of
...
the
...
order
...
number
...
at
...
Ekspres
...
bank.
...
A
...
shop
...
order(SHOP_ORDER)
...
is
...
required
...
on
...
the
...
context
...
with
...
a
...
CDR
...
parameter
...
called
...
EKSPRES_BANK_ORDER_ID.
...
It
...
will
...
return
...
one
...
of
...
the
...
following
...
statuses:
...
ACCEPT,
...
DECLINE,
...
REFER,
...
CANCEL,
...
GOAHEAD,
...
CAPTURED,
...
ERROR.
...
In
...
case
...
of
...
error
...
the
...
component
...
will
...
attach
...
a
...
string
...
to
...
the
...
context
...
with
...
a
...
description
...
of
...
the
...
error
...
(ERROR).
...
Note
...
that
...
the
...
component
...
will
...
look
...
for
...
a
...
brand
...
(BRAND)
...
on
...
the
...
context,
...
if
...
one
...
is
...
found
...
it
...
will
...
use
...
the
...
brandId
...
to
...
look
...
for
...
parameters
...
in
...
the
...
parameter
...
tree.
...
...
CancelComponent
...
Package: com.CDRator.billing.financial.ekspresbank.component.CancelComponent
...
This
...
component
...
will
...
cancel
...
the
...
order
...
at
...
Ekspres
...
bank
...
with
...
that
...
orderNr.
...
A
...
shop
...
order(SHOP_ORDER)
...
is
...
required
...
on
...
the
...
context
...
with
...
a
...
CDR
...
parameter
...
called
...
EKSPRES_BANK_ORDER_ID.
...
It
...
will
...
return
...
one
...
of
...
the
...
following
...
statuses:
...
OK,
...
CANCEL_ERROR.
...
In
...
case
...
of
...
error
...
the
...
component
...
will
...
attach
...
a
...
string
...
to
...
the
...
context
...
with
...
a
...
description
...
of
...
the
...
error
...
(ERROR).
...
Note
...
that
...
the
...
component
...
will
...
look
...
for
...
a
...
brand
...
(BRAND)
...
on
...
the
...
context,
...
if
...
one
...
is
...
found
...
it
...
will
...
use
...
the
...
brandId
...
to
...
look
...
for
...
parameters
...
in
...
the
...
parameter
...
tree.
...
...
CaptureComponent
...
Package: com.CDRator.billing.financial.ekspresbank.component.CaptureComponent
...
This
...
component
...
will
...
capture
...
the
...
order
...
at
...
ekspres
...
bank
...
with
...
that
...
orderNr.
...
A
...
shop
...
order(SHOP_ORDER)
...
is
...
required
...
on
...
the
...
context
...
with
...
a
...
CDR
...
parameter
...
called
...
EKSPRES_BANK_ORDER_ID.
...
If
...
will
...
return
...
one
...
of
...
the
...
following
...
statuses:
...
OK,
...
CAPTURE_ERROR.
...
In
...
case
...
of
...
error
...
the
...
component
...
will
...
attach
...
a
...
string
...
to
...
the
...
context
...
with
...
a
...
description
...
of
...
the
...
error
...
(ERROR).
...
Note
...
that
...
the
...
component
...
will
...
look
...
for
...
a
...
brand
...
(BRAND)
...
on
...
the
...
context,
...
if
...
one
...
is
...
found
...
it
...
will
...
use
...
the
...
brandId
...
to
...
look
...
for
...
parameters
...
in
...
the
...
parameter
...
tree.
...
4
...
-
...
Return
...
Codes
...
ReturnCode | Description |
---|---|
OK | Everything is ok, no errors. |
ERROR_LOGIN_ERROR |
...
Something |
...
is |
...
wrong |
...
with |
...
the |
...
RetailerId/Password |
...
combination. |
...
ERROR_APPLICATION_NOTFOUND |
...
Application |
...
identified |
...
by |
...
RetailerId/OrderNr |
...
not |
...
found. |
...
ERROR_UNKNOWN_ERROR |
...
Unexpected |
...
error |
...
occurred. |
...
ERROR_APPLICATION_ALREADY_SUBMITTED |
...
There |
...
is |
...
already |
...
a |
...
submitted |
...
application |
...
with |
...
the |
...
given |
...
OrderNr. |
...
ERROR_MANDATORY_FIELDS_MISSING |
...
Not |
...
all |
...
mandatory |
...
fields |
...
were |
...
provided |
...
for |
...
the |
...
requested |
...
operation. |
...
ERROR_SITE_DISABLED |
...
The |
...
site |
...
is |
...
disabled. |
...
ERROR_INVALID_PREFILLABLE_FIELDS |
...
There |
...
are |
...
either |
...
non-prefillable |
...
fields |
...
available, |
...
or |
...
the |
...
value |
...
of |
...
some |
...
|
...
fields |
...
are |
...
invalid. |
...
ERROR_INVALID_HASH |
...
The |
...
hash |
...
of |
...
the |
...
fields |
...
is |
...
invalid. |
...
5 - Logging
The project uses the rator-soap-monitoring
...
to
...
log
...
request
...
and
...
response
...
to
...
the
...
soap_client_log
...
table.
...
In
...
order
...
for
...
this
...
tool
...
to
...
work,
...
two
...
parameters
...
must
...
be
...
added
...
to
...
the
...
parameter
...
tree.
...
See
...
section
...
6
...
-
...
Configuration.
...
6 - Configuration
The following parameters are required. All except the logging parameters are brand-enabled.
...
Required
...
for
...
communicating
...
with
...
Ekspres
...
bank
- FINANCIAL.EKSPRESBANK.SITE
...
- =
...
- site
...
- name
...
- FINANCIAL.EKSPRESBANK.RETAILER_ID
...
- =
...
- retailer
...
- id
...
- FINANCIAL.EKSPRESBANK.PASSWORD
...
- =
...
- password
The webservice URLs,
...
only
...
the
...
webservice
...
what
...
are
...
used
...
are
...
needed.
...
So
...
if
...
you
...
do
...
not
...
need
...
to
...
call
...
applicationCreate,
...
you
...
do
...
not
...
need
...
to
...
specify
...
the
...
parameter
- FINANCIAL.EKSPRESBANK.APPLICATION_CREATE_WSDL
...
- =
...
- webservice
...
- at
...
- ekspres
...
- bank
...
- for
...
- application
...
- create
...
- FINANCIAL.EKSPRESBANK.APPLICATION_STATUS_WSDL
...
- =
...
- webservice
...
- at
...
- ekspres
...
- bank
...
- for
...
- application
...
- status
...
- FINANCIAL.EKSPRESBANK.CANCEL_SIGNAL_WSDL
...
- =
...
- webservice
...
- at
...
- ekspres
...
- bank
...
- for
...
- cancel
...
- signal
...
- FINANCIAL.EKSPRESBANK.CAPTURE_SIGNAL_WSDL
...
- =
...
- webservice
...
- at
...
- ekspres
...
- bank
...
- for
...
- capture
...
- signal
Required for Logging
- SOAP.MONITORING.ENABLE_RATOR_MONITORING_HANDLER
...
- =
...
- 'T'
...
- SOAP.MONITORING.ENABLE_XML_PERSISTENCY
...
- =
...
- 'T'
...
7
...
-
...
Version
...
Version | Released | Changes |
---|---|---|
1.1 | 12-09-2013 |
...
15:51:13 |
...
Fixed |
...
an |
...
issue |
...
where |
...
request |
...
response |
...
was |
...
stored |
...
in |
...
soap_monitoring. |
...
It |
...
will |
...
now |
...
store |
...
it |
...
in |
...
soap_client_log |
...
1.0 |
...
...
...
First stable release |