Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
{noprint}
{float:right\|width=300px\|background=lightgrey\|border=solid blue 2px\|margin=10px\|padding=8px}*Contents*
{toc:all=true|depth=4|excerpt=true|indent=14px}
{float}\\
{noprint}
*Document Logs*
*Change log:*
|| *Date:* || *Author:* || *Version:* || *Changes:* || Completed || Ext. || Int. || Is in Core ||
| {page-info:created-date\|dateFormat=dd MMMM yyyy}\\ | {page-info:created-user}\\ | 0.1 | Doc. created | No | | | |
*Terms and definitions:*
|| Terms/definitions: || Meaning: ||
| TBD | To be defined |
| N/A | Not applicable |
\\
----
h2. 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.

h2. 2 - Introduction to Functionality

Ekspres bank is a company that can help financingfinance 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 havehas 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 ekspresEkspres bank, and ana container for the purchase is created at EkspresBankEkspres bank thorugh a SoapSOAP call (ApplicationCreate).
# The customer is the approved or rejected. To get that information Ekspres Bank is polled for a status of the purchase through SoapSOAP (ApplicationStatus).
# If the customer is approved, weRator thenacknowledges acknowledge the purchase and sendsends a capture message to Ekspres bank through SoapSOAP (Capture). It is also possible to cancel the purchase through SoapSOAP (cancel).

The SoapSOAP interaction is implemented and can be found at

[https://svn.cdrator.com/svn/dev/integration/Financial/DK/EkspresBank/trunk|https://svn.cdrator.com/svn/dev/integration/logistics/EU/BrightPoint/trunk]
















Maven dependency:


{code}
<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*: com.CDRator.billing.financial.ekspresbank.action.ApplicationCreateServiceAction

This action takes in three arguments


{code}
public String execute(String orderNr, Map<String, String> fieldValues, String brandId) throws Exception
{code}
*orderNr*: An order ordeNumbernumber 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 forof 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, Seesee section 4 for return values.

If anything unexpected happens an exception is thrown.



h6. ApplicationStatusServiceAction

*Package*: com.CDRator.billing.financial.ekspresbank.action.ApplicationStatusServiceAction

The action takes two arguments:


{code}
public String execute(String orderNr, String brandId) throws Exception
{code}


*orderNr*: An order ordeNumbernumber used to identify the transaction.

*brandId*: The URL forof 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 returnreturns a string which is the 'decision' on the response from Ekspres bank. This decision is mapped from a single charcharacter to a readable response.


_ACCEPT, DECLINE, REFER, CANCEL, GOAHEAD, CAPTURED, ERROR_

If anything unexpected happens, an exception is thrown.

h6. CancelAction

*Package*: com.CDRator.billing.financial.ekspresbank.action.CancelAction

This action takes in three arguments:

{code}
public String execute(String orderNr, String brandId) throws Exception
{code}
*orderNr*: An ordeNumberorder number used to identify the transaction.

*brandId*: The URL forof 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, Seesee section 4 for return values.

If anything unexpected happens, an exception is thrown.


h6. CaptureAction

*Package*: com.CDRator.billing.financial.ekspresbank.action.CaptureAction

This action takes in three arguments:

{code}
public String execute(String orderNr, String brandId) throws Exception
{code}
*orderNr*: An ordeNumberorder number used to identify the transaction.

*brandId*: The URL forof 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, Seesee section 4 for return values.

If anything unexpected happens, an exception is thrown.

h4. Component

h6. ApplicationStatusServiceComponent

*Package*: com.CDRator.billing.financial.ekspresbank.component.ApplicationStatusServiceComponent

This component will poll for the status of the order number at ekspresEkspres 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).

NoticeNote 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.

h6. CancelComponent

*Package*: com.CDRator.billing.financial.ekspresbank.component.CancelComponent

This component will cancel the order at ekspresEkspres 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).

NoticeNote 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.


h6. 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).

NoticeNote 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.

h2. 4 - Return codesCodes

|| 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 is 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 \\
prefillable fields are invalid. |
| ERROR_INVALID_HASH | The hash of the fields is invalid. |

h2. 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 need tomust be added to the parameter tree. See section 6 configuration- Configuration.


h2. 6 - Configuration

The following parameterparameters are neededrequired. All except the logging onesparameters are brand -enabled.


*NeededRequired whenfor 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 don'tnot need to call applicationCreate, you do don'tnot 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





*NeededRequired Forfor loggingLogging*

* SOAP.MONITORING.ENABLE_RATOR_MONITORING_HANDLER = 'T'
* SOAP.MONITORING.ENABLE_XML_PERSISTENCY = 'T'

h2. 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* | [11-09-2013 14:40:03|http://cdrsrvbuild2:8080/jenkins/job/rator-financial-dk-ekspresbank/3/] | First stable release |
\\