• Online Demo
  • 30-day Free Trial

The Blesta Payment Gateway System is based on a two tier platform:

  1. Merchant
    • Merchant Gateways handle transactions completely within Blesta, never allowing the customer to leave the site.
  2. Non-Merchant
    • Non-Merchant Gateways link users to another web site, like PayPal, or Google Checkout, for example.

View our Gateway documentation for more information.

Contents

List of Available Gateways


Merchant Gateways

  1. AuthorizeNet (visit Authorize.net)
  2. BluePay (visit BluePay)
  3. Chargeback Guardian (visit Chargeback Guardian)
  4. EPSSecureNet (visit EPSsecurenet)
  5. eWAY (visit eWAY)
  6. Innovative Gateway (visit Innovative Gateway)
  7. LinkPoint (visit LinkPoint)
  8. Optimal Payments FirePay (visit Optimal Payments)
  9. Payflow Pro (visit Payflow Pro)
  10. PayJunction (visit PayJunction)
  11. Protx VSP Direct (visit Protx VSP Direct)
  12. Quantum Gateway (visit Quantum Gateway)
  13. Virtual Merchant (visit Virtual Merchant)

Non-Merchant Gateways

  1. 2Checkout (visit 2Checkout)
  2. cashU (visit cashU)
  3. ChronoPay (visit ChronoPay)
  4. GoogleCheckout (visit GoogleCheckout)
  5. MoneyBookers (visit MoneyBookers)
  6. PayPal (visit PayPal)
  7. PayPal Subscriptions (visit PayPal Subscriptions)
  8. WorldPay (visit WorldPay)
  9. WorldPay FuturePay (visit WorldPay FuturePay)


Developing Gateways


As of v2.2, all gateways must extend the following abstract Gateway class:

  1. <?php
  2. abstract class Gateway {
  3.    /**
  4.     * Returns all currencies supported by this gateway.
  5.     * 
  6.     * @return array An array of currencies supported by this gateway
  7.     */
  8.    abstract function getCurrencies();
  9.    /**
  10.     * Returns all gateway settings fields
  11.     *
  12.     * @return array An array of all configurable fields
  13.     */
  14.    abstract function getSettingFields();
  15. }
  16. ?>

Non-Merchant Gateways

  1. Must extend the Gateway class.
  2. Must define the getCurrencies() method.
  3. Must return the currency used in the process() method as part of the return array (i.e. $trans['currency'] = "USD").

Merchant Gateways

  1. Must define the getCurrencies() method.
  2. Must define the getSettingFields() method. This method is implemented exactly as it is currently implemented in Non-Merchant gateways.

Below is an example implementation of the getCurrencies() method:

  1. <?php
  2.     // All currencies this gateway accepts
  3.    private static $supportedCurrencies = 
  4.                 array("AUD", "EUR", "JPY", "USD");
  5.  
  6.    public function getCurrencies() {
  7.       return self::$supportedCurrencies;
  8.    }
  9. ?>

You must also be sure that your gateway is POSTing the currency to your gateway in the appropriate manner. The currency will be fed to your gateway in the constructor's 1st parameter as 'currency' (i.e. $gatewayinfo['currency']). Failure to do so may result in your gateway processing your transaction in the incorrect currency, or a failed transaction.