Some stuff for Interchange.
— last updated January 2020
PayWay CPAN module for Westpac bank in Australia
January 2020, v1.0, public release after quite some production use. Works with Interchange's BusinessOnlinePayment.

Cardsave Payment module for Interchange
August 2013, v0.9.8, for use with in the UK. This fixes a bug at Cardsave whereby they return the issuer for the new Lloyds cards as a string, when all other issuers are returned as a hash, contrary to their API.

HSBC Payment Module for Interchange
December 2012: v1.0.1 with change of URLs due to change of legal ownership from eSecurePayments to GlobalIris.
This does 3DSecure for HSBC - it was written for the UK but probably works anywhere in the world. It also does repeat payments and various other functions provided by the API.

Iridium payment module for Interchange
October 2011, v1.0.0. This module is for Iridium in the UK, who are seen as the replacement of choice for those abandoning Sagepay.

SagePay payment module for Interchange
July 2010, v0.8.9. This is the erstwhile Protx gateway rebranded after purchase by Sage. This module runs 3DSecure (ie, "Verified by Visa" and "Mastercard Securecode") and falls back to standard processing for those cards not part of 3DS. Besides the usual authenticate, payment and deferred types, when used with a suitable terminal it can also do the following: authorise, repeat, refund, void, cancel, abort and direct payment to a credit card. It has a function to check that the Sagepay gateway is available and optionally complete the transaction offline if it's not. It has another function to check for the response from Sagepay being empty and then querying their database to hopefully obtain a correct response during run-time . Their database may be queried at any time from a suitable terminal keyed on the IC-generated 'order-id'. An 'offline' order may be converted into a normal paid order using a suitable terminal.
TODO: Sagepay are still promising to provide the "Third Man" fraud-checking results at run-time, and if they do I will add this function in.
As a 3DS 'authenticate' does not provide any of the normal AVS/CV2 results, a function should be added to run an 'authorise/void' for a token amount after the 'authenticate', to get the AVS/CV2 results back. module

Paypal Express Payment Module for Interchange
November 2015, v1.1.6: bug fixes, update to allow setting of LandingPage
March 2014, v1.1.2: incorporated Racke's updates ; stripped locale tags from data displayed in the basket at Paypal ; truncated description field displayed in itemised basket at paypal to 127 chars ; set $Vend::Cfg->{'PriceField'} to $::Scratch->{'PriceField'} if so defined ; fixed rounding error when sending basket with discounts
October 2011, v1.1.0, added repeat payments, itemised checkout at Paypal, added full or partial refunds, add 'getbalance' of your account (including multi currency accounts), added 'send credit' to a credit card, added functions to manage or modify repeat payments. NB:/ now requires Date::Calc
Full documentation is in the head.  

GoogleCheckout payment module for Interchange
September 2009, v0.7.4. Updated documentation. This version uses XML::Simple rather than Google's own custom libraries. It also uses a temporary order number until Google reports that the card has been charged, when it creates a normal order number. It logs the order in the database as pending immediately upon hitting 'submit to Google' and also logs a backup order in text format. It updates the database status each time that Google sends a notification, and upon successful completion at Google it completes the IC order route and sends emails to the customer and merchant. It allows all possible commands, eg 'refund', 'authorise', 'deliver' etc to be actioned via a suitable admin terminal. This includes options to add bothe IC and GCO order numbers to the emailed report, along with various other tweaks. One thing it does not do, as a result of an early policy decision, is allow the customer to change address once at Google. This function may be added into a future version however. All configuration options are documented in the head of the module.  

Moneris payment module for Interchange
September 2009, v1.1.1. This implements standard payments plus recurring billing for Moneris in Canada - it does not implement either "Interac" or "Verified by Visa". It requires that the classes library is also installed into the same directory as the module. |

Worldpay payment module for Interchange
November 2011, v1.0.2. This was written by Andy Smith of, and kindly donated to Interchange. It handles callbacks from Worldpay and updates the database and inventory accordingly. This update adds encryption to the request string to prevent tampering.
Usertags and other stuff for Interchange

Log order tag: this logs the entire basket plus the customer's delivery and billing addresses, and is intended as a failsafe backup in case your order route or something else fails. Place it in the body of the final submit button in the checkout page (some payment modules, eg PaypalExpress and SagePay) will optionally call this tag themselves without putting it in the button.

Verifyemail tag: this checks not only the format, but checks with the recipient's mail server that the address exists. Not all mail servers will respond to this check, but it's still a useful check that catches many bad addresses. Required perl modules listed in the tag
Schedule 'at' tag: this hands IC jobs over to the 'at' daemon to execute, either at some future date specified, or at a specified interval in the future. Eg, if time is '2010:10:20:20:10' then the file will be executed at 20:10 on 20.10.2010 (20th Oct). Or time can be 'now + 1 month'. The file to be executed should run whatever code you want, eg a mass mailing, and the system will handle this without any further impact on IC.
State.txt with entries for all countries within the UK (England, Scotland, Wales plus Northern Ireland), a separate list for Great Britain (ie without Northern Ireland), and entries for these countries and their regions: France, Germany, Spain, Italy, Portugal, New Zealand, Austria, Switzerland


External links

Interchange hosting and consulting here
Kevin Walsh's excellent Interchange documentation site here