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 appropritate values ($classname MUST contain the name of your class!)
The Payment class inherits and can overwrit 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:
<form action="index2.php" method="post" name="adminForm">
[HERE YOUR CUSTOM VARIABLES]
<input type="hidden" name="option" value="com_bids"/>
<input type="hidden" name="task" value="savepaymentconfig"/>
<input type="hidden" name="paymenttype" value="<?php echo $this->classname;?>"/>
</form>
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 recommand to format the params like standard joomal 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 then in /plugins/payment/{$this->classname}.gif
- you can specify an external image.