BP-Switch: Configuring ISO8583 pass-through

BP-Switch icon

Introduction

In this tutorial we'll present BP-Switch features that help to set up a simple message flow in BP-Node for ISO8583 rev.93 message type.

Components used

In this scenario, following BP-Node components will be used:

  • NbyteHeaderTCP (for downlink and uplink)
  • Iso8583MessageExchange

and Pipeline components:

  • CommandToIsoMessage
  • SendMessageOnline

Downlink configuration

The first thing we'll need is to create the listening connection which will serve as the entry point for receiving payments data. In our scenario a component called NbyteHeaderTCP class will be used.

Open your BP-UI and navigate to Components.  There click the green button which says "Add Component". From the Class options available pick the bp::eftlab::node::ipc::NbyteHeaderTCP and name it: Downlink_ISO8583_1993_1.

When clicking the Add button new options will appear, related to the class selected. Fill in the following values:

  • Label: Downlink_ISO8583_1993_1
  • Description: Feel free to use this feel for your notes about this connection (purpose, contact details)
  • Message Destination: PipelineManager
  • Message Type: ISO8583_1993_Pipeline - this is a Pipeline name that will be created in a later steps.
  • Message priority: 0
  • Record On-demand Connection Events: False
  • Plugins: <none>
  • Connections: <none>

Click the Save button.

Create a connection

Now we can add a connection. A connection is the actual entry point so we need to fill the IP and port on which the BP-Node will be listening.

Press the “Add Connection” button.

Fill in the form with following connection values:

  • Enabled: True (ON)
  • Server: True
  • Local Address: 0.0.0.0 - so we will listen on all interfaces
  • Local Port: 7001
  • Priority: 0
  • Nr Header Bytes: 2 - this depends on your configuration, usually there are 2 header bytes that do not contain the length of the header, just the length of the following message data
  • Header Length Included In Length: False
  • Postilion Style Extended Length: False
  • Big Endian: True
  • Connect On Demand: False
  • Disconnect After Response: False
  • Keep Alive Enabled: True
  • Idle Timeout (seconds): 0
  • Write Timeout (seconds): 0
  • Max Connections: 0
  • SSL Enabled: False

Save the configuration changes by clicking the "Save" button.

Uplink

We also need a target connection - a client which will connect to the acquirer, for this we'll use the NbyteHeaderTCP component class again.

Open the components menu and add a new NbyteHeaderTCP component (bp::eftlab::node::ipc::NbyteHeaderTCP).

Select the bp::eftlab::node::ipc::NbyteHeaderTCP component class and name the new component as: Uplink_ISO8583_1993_1

Save the component.

Note that following Message Destination and Message Type fields have to match the From Remote Message Destination and From Remote Message Type we'll be configuring in a moment in withing the Iso8583MessageExchange component.

Fill the following:

  • Label: Uplink_ISO8583_1993_1
  • Message Destination: ISO8583_1993_Out
  • Message Type: ISO8583_1993_Response
  • Message Priority: 0
  • Record On-demand Connection Events: False
  • Plugins: <none>
  • Connections: <none>

Click Save.

Create a connection

Click "Add Connection" button.

Set Connection values as followed:

  • Enabled: True (ON)
  • Server: False
  • Remote Address: 10.0.0.37  - change this value appropriately to your Host IP address
  • Local Port: 7002 - change appropriately to your Host port
  • Priority: 0
  • Nr Header Bytes: 2
  • Header Length Included In Length: False
  • Postilion Style Extended Length: False
  • Big Endian: True
  • Connect On Demand: False
  • Disconnect After Response: False
  • Keep Alive Enabled: True
  • Idle Timeout (seconds): 0
  • Write Timeout (seconds): 0
  • Connect Timeout (seconds): 0
  • Max Connections: 0
  • SSL Enabled: False

Save the component.

Note the Component Id (e418808c-816a-4f3b-b9ef-31cb3a34697f) as it will be needed for further configuration.

Iso8583MessageExchange Component

Now we can create a Message Bus Component that will handle the message exchange with the Host (matches requests and responses & processes timeouts).

Open the components menu, add a new Iso8583MessageExchange component (bp::eftlab::node::ipc::Iso8583MessageExchange) and name it Exchange_ISO8583_1993_1.

Select the bp::eftlab::node::ipc::Iso8583MessageExchange component.

Save the component, additional fields will pop up.

Fill in the following:

  • Label: Exchange_ISO8583_1993_1
  • Format: 1993
  • From Remote Message Destination: ISO8583_1993_Out - From Remote Message Destination and From Remote Message Type are keys used for the returning data from the  ISO8583_1993_Out component, and uniquely identifies its data.
  • From Remote Message Type: ISO8583_1993_Response
  • Incoming Message Destination: ISO8583_1993_Out - The Incoming Message Destination and Incoming Message Type fields must match the in SendMesageOnline Destination and Type, so the Message Bus knows what to do with the data - but those will be filled automagically there in the next paragraph.
  • Incoming Message Type: ISO8583_1993_Exchange
  • To Remote Message Destination: e418808c-816a-4f3b-b9ef-31cb3a34697f - this UUID value comes from the Uplink_ISO8583_1993_1 component configured we've already above
  • To Remote Message Type: ISO8583_1993_Request

Save the Component.

Save the component.

Your Components screen should now look very close to the picture below.

 

Pipeline

Now when we have all the critical components configured we need to bind those with a processing logic through the Pipelines. Pipeline configuration will then tell how to interact with each other and can implement a dynamic business logic.

Go to the main menu and select Pipelines > Add Pipeline.

Fill the Label field with the previously selected pipeline name ISO8583_1993_Pipeline and click the "Save" button to store it.

After having the Pipeline created there we'll tick it Enabled and start filling it with the Pipeline Components. By repeated clicking "Add Component" fill in added forms for components CommandToIsoMessage and SendMesageOnline:

1/ CommandToIsoMessage

This component will convert data input to an Iso8583 object BP-Node can work with.

Click on Add Component and select the CommandToIsoMessage component (bp::eftlab::node::pipeline::basic_components::CommandToIsoMessage).

Fill any Label you wish, e.g. CommandToIsoMessage.

Save the pipeline, additional fields are revealed for this component.

  • Label: CommandToIsoMessage
  • Format: 1993

Save the pipeline.

2/ SendMesageOnline component

This component will send the constructed message object to the BP-Node message bus.

Click on Add Component and select the SendMesageOnline component (bp::eftlab::node::pipeline::basic_components::SendMessageOnline).

Fill the label field with some name, e.g. SendMesageOnline.

Save the pipeline, additional fields are revealed for this component.

Now we need to fill the Message Destination and Type, this information pair defines uniquely the data that will the Message Bus work with.

Fill the following data:

  • Label: SendMesageOnline
  • Request Id In Map: Iso8583Request
  • Response Id In Map: Iso8583Response
  • Do On Request: True
  • Do On Response: False
  • Pack inside Object Message: True
  • Timeout: 0
  • Destination Component: Exchange_ISO8583_1993_1 - this is a list box, which will fill in the rest of the form below
  • Message Destination: ISO8583_1993_Out
  • MessageType: ISO8583_1993_Exchange

Save the pipeline.

Check proper configuration

Adding a Listener

Go to the Tracing menu

Open Listeners, fill the Destination field with ISO8583_1993_Out and click “+ Create”. New listener will be added.

Run a ISO8583 rev.93 message against BP-Node on socket 7001.

If properly configured the message goes through BP-Node and ends on your Host, the response will be returned to your source. The message was parsed by the BP-Node into its ISO20022 internal format and compiled back to ISO8583-1993 on a request and also on the response.

You can check it in the Tracing view.

Flow diagram

The diagram below explains what has been achieved and provides a good overview on reasonably complex configuration above.

Summary

In this tutorial, we went through a part of the ISO8583-1993 pass-through functionality for EFTlab's BP-Switch.

BP-Tools

BP-Tools is a set of freeware applications for EFT testing, benchmarking and transaction service development.

See more...

Download...

Download Flyer...

BP-Sim

The Babylon Payments Simulator (BP-Sim) is a family of highly efficient regression and stress testing tools, designed for deployment in development and pre-production environments. BP-Sim allows users to perform an extensive range of tests across the chain of payment services.

See more...

Download Flyer...

BP-Processing

The Babylon Payments Processing Suite(BP-Processing) is a suite of EFTlab's products for realtime payment transaction processing and authorisation.

See more...