Logo

API for 3rd party Payment Gateways integration (for Auction Factory v2.x.x).

We will explain this using the Moneybookers Plugin as a sample.

First we create the php file containing the Payment Gateway processing Class. The file and the class must be named identically (of course the file must have a .php extension). The file and classname must start with ‘pay_’ and must be located in the plugins/payment folder of the Auction Factory component folder (components/com_bids).

The class must inherit payment_object (located in payment_object.php). Don’t forget to include the /plugins/payment /payment_object.php file at the top of the class file.

Following Class variables are inherited, and have to be adapted:

 var $classname="payment_object";  
 var $classdescription="generic Payment method";

You have to replace these in your class with the appropriate values ($classname MUST contain the name of your class!) +

The Payment class inherits and can overwrite the following methods:

loadPluginLanguage($filename=null)

  • loads the specific file with language strings for this gateway
  • you can have a standard file named like the class only with .en.php extension for english for instance. For instance pay_moneybookers.en.php is english, pay_moneybookers.de.php is german. If you use this naming convention the files will be included automatically, no need to overwrite this function.

ipn($d)

  • processes the Gateway IPN (the $d param will be an array with the request values - $_REQUEST)

checkout($d)

  • prepares and displays the payment form; most Gateways will not have to overwrite this one.

show_payment_form($order_id,$item_description, $itemname,$quantity,$price,$currency,$return_url=null)

  • this function MUST be overwritten. It is the Gateway specific part. Here you display the HTML needed for the payment form. Specific to each Payment processor.

Parameters are:

$order_id unique identifier for the transaction.
$item_description the description of the product (payment item) the user is paying for. You should display this in order to confirm this with the user.
$itemname this is the PAYMENT ITEM internal name. YOU have to pass it on, so that it gets back per IPN. If no IPN is needed, then you can ignore it
$quantity the amount of item the user purchases; most time it is one.
$price the item price.
$currency the currency you set up in payment item admin.
$return_url the url to pass the gateway as return url after payment was processed. (IT IS NOT THE IPN URL).

show_admin_config()

  • this function MUST be overwritten. It displays the ADMIN form for configuring the Processor. for instance you can ask the moneybookers email.
  • very important- the form must look like this:
      //
  **[HERE YOUR CUSTOM VARIABLES]**
      //
      //
      //classname;?>"/>
      //

save_admin_config()

  • in this function you save the variables from the config form in the database.
  • you must use the PARAMS field of the #__bid_paysystems table in the row for your payment system (where classname='$this→classname')
  • We recommend to format the params like standard joomla parameters (variablename=value\n)
  • Have a look at the moneybookers class to see an example.

getLogo()

  • overwrite this if you want to place the Processor logo somewhere else than in /plugins/payment /{$this→classname}.gif
  • you can specify an external image.