View source | View content page | Page history | Printable version   

Projects:Retail Payment Providers/Technical Documentation

Contents

Introduction

This documents describes the project that offers support for Payment Providers using devices that do not offer direct integration with web browsers. In this case the Hardware Manager is needed to handle the comunication with the payment device.

Paymentprovidersarch.png

Hardware Manager architecture

Hardware Manager includes a plugable java classes architeture that allows to include new payment providers without having to modify and recompile the main Hardware Manager. This architecture is based in the java standard ServiceLoader API that is already used in Hardware Manager to offer a plugable architecture for POS devices. The documentation that describes how to implement new device drivers is described in the How to create a new device driver document.

The API provided by the Hardware Manager is based in an request where request parameters and result are JSON Object with the following specification:

Request

Result

Web POS architecture

Web POS architecture for payment providers is described in the External Payment Providers document. In the case of Payment Providers using this architecture based in devices connected to the Hardware Manager, an http request from Web POS to the Hardware Manager must be executed using the parameters and response specification described in the previous paragraph.

Following there is a sample method of a javascript object that executes a payment transaction invoking the Hardware Manager.

 invokePaymentServer: function () {
   var request = {
     type: 0,
     transaction: null,
     terminal: 'POS1',
     currency: 'EUR',
     amount: 10.50,
     properties: {}
   };
   return new enyo.Ajax({
     url: 'http://localhost:8090/payment',
     cacheBust: false,
     method: 'POST',
     handleAs: 'json',
     contentType: 'application/json;charset=utf-8'
   }).go(JSON.stringify(json));
 }

In the Openbravo repository org.openbravo.retail.paymentprovider there is an Openbravo module that implements a basic external payment provider that invokes the Hardware Manager.

Testing

The Hardware Manager includes a mock payment provider used for testing purposes called Screen Payment Device. In the Payment tab of the Hardware Manager user interface can be defined the result that will be returned when executing a payment transaction coming from Web POS.


Screenpaymentdevice.png


It is also included a Test payment button that executes a payment transaction using the payment provider currently configured. All payment transactions executed using the Test payment button sets the test parameter to true to avoid executing real payment transactions from the Hardware Manager.


Testpaymentbutton.png

Retrieved from "http://wiki.openbravo.com/wiki/Projects:Retail_Payment_Providers/Technical_Documentation"

This page has been accessed 1,352 times. This page was last modified on 16 June 2014, at 11:51. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.