For more information... RTFM!

You are not logged in

Powered by Interchange version 5.7.0


Interchange's support for the Concord EFSnet Link to an external page Payment Services Provider.


&charge = efsnet


[charge route="efsnet" param1="value1" param2="value2"]




LWP::UserAgent and Crypt::SSLeay

Only one of the above options needs be present and working.


The Vend::Payment::EFSNet module implements the efsnet() subroutine for use with Interchange.  It is compatible on a call level with the other Interchange payment modules.  In theory (and even usually in practise) you could switch from another payment module to EFSNet with a few configuration file changes.

To enable this module, place this directive in your "interchange.cfg" file:

Require  module  Vend::Payment::EFSNet

This must be in interchange.cfg or a file included from it.

Make sure CreditCardAuto is off, which is the default in the Standard ecommerce demo.

The "mode" can be named anything, but the "gateway" parameter must be set to "efsnet".  To make it the default payment gateway for all credit card transactions in a specific website, you can set the following in catalog.cfg:

Variable  MV_PAYMENT_MODE  efsnet

It uses several of the standard settings from Interchange payment.  Any time we speak of a setting, it is obtained either first from the tag/call options, then from an Interchange order Route named after the mode, then finally a default global payment Variable.  For example, the id parameter would be specified by:

[charge route=efsnet id=YourEFSNetID]


Route  efsnet  id  YourEFSNetID




Name Description
id Your EFSNet Store ID, which you can get from the Merchant Services control Link to an external page panel after logging in with the username and password supplied to you by Concord when you signed up.  (Look at the "Credentials" page after logging in.) The variable is MV_PAYMENT_ID.
secret Your EFSNet Store Key which, again, you can get from the Merchant Services panel.  The variable is MV_PAYMENT_SECRET.
transaction The type of transaction to be run.  Valid values are:

Interchange EFSNet
auth CreditCardAuthorize
return CreditCardRefund
reverse CreditCardRefund
sale CreditCardCharge
settle CreditCardSettle
void VoidTransaction
remap This remaps the form variable names to the ones needed by EFSNet.


Try the instructions above, and then then switch to the test servers.  A test order should complete with the "4111 1111 1111 1111" test card number.

You can switch to the test servers by adding the following to your catalog.cfg file:


If nothing works:

  • Make sure you Required the module in interchange.cfg:

    Require module Vend::Payment::EFSNet

  • Make sure either Net::SSLeay, or Crypt::SSLeay and LWP::UserAgent are installed and working.  You can test to see whether your Perl thinks they are:

    perl -MNet::SSLeay -le 'print "Available"'


    perl -MLWP::UserAgent -MCrypt::SSLeay -le 'print "Available"'

    If either of the above prints "Available", and returns to the shell prompt, then you should be OK (presuming they are in working order otherwise).

  • Check the local and global error log files.

  • Make sure you set your payment parameters properly.

  • Try an order, then put this code in a page:

        my $string = $Tag->uneval({ ref => $Session->{payment_result} });

        $string =~ s/{/{\n/;
        $string =~ s/,/,\n/g;

        return $string;

    That should show what happened.

  • If all else fails, consultants are available to help with integration for a fee.


There is actually nothing in Vend::Payment::EFSNet;  This module changes its package name to Vend::Payment and places things there.

CreditCardCredit (sale) transactions, where you apply a credit on a card without the transaction ID of a previous charge, are supported by this module, but disabled by default in new EFSNet accounts.  Call EFSNet if you need to use this function.

This module supports partial returns, but EFSNet needs to know what the original transaction amount was.  You can provide this by passing the value to the [charge] tag, using the original_amount parameter.


Concord EFSNet requires all interface code to be certified by them.  If you make a change to this module, please contact EFSNet for re-certification.  More information is available from Link to an external page.



Category:  Interchange payment modules
Last modified by: Kevin Walsh
Modification date: Tuesday 19 September 2006 at 9:21 AM (EDT)
Home  |  Legal nonsense  |  Privacy policy  |  Donations  |  Contact us