Author Topic: New payment method add-on: Direct Deposit  (Read 101362 times)

teemu_m

  • Beginner
  • *
  • Posts: 31
    • Photogallery
New payment method add-on: Direct Deposit
« on: November 14, 2006, 18:37:44 pm »
Hello,

I've been looking for a direct deposit payment method add-on for my Joomla!/VirtueMart -project.

My most important requirements for a direct deposit add-on are:
  • The add-on has to have a configuration of invoicer's banking and other information independently of shop's configuration.
  • The add-on has to display a table of direct deposit information  for the customer at the final step of checkout process. It also has to send a separate direct deposit information email to the customer.
  • The add-on has to form a unique bank reference number so that I'm able link a direct deposit to an order. In my case the bank reference number has to follow Finnish Bankers'  Association's standard.
  • The add-on should insert the bank reference number to order information at VirtueMart's database.
  • The add-on should not require any modification of Joomla or VirtueMart core code.

Since none of the suggested solutions I has able to find answered all my requirements, I ended up to develop my own add-on. I hope you find it usefull too.

This is the first public release of the add-on. It is still in early alpha state. It hasn't been tested on a live shop. You should not install it to a production site before trying it in a testing environment. No warranty. You have been warned ;)

I will highly appreciate your comments and feedback.

You can download the add-on (dirdepo-0.1.1.zip) here: http://www.tyovaline.fi/oss/joomla/virtuemart/dirdepo/

Below is the README -file of the add-on. The ZIP-package includes more documentation.

Code: [Select]
Direct Deposit Payment Method add-on for VirtueMart (http://www.virtuemart.com/)

General notes - see this README
Installation and user manual - see /doc/user/index.html
Class documentation for developers - see /doc/class/index.html
Changelog - see CHANGELOG
License (GNU GPL) - see LICENSE

Direct deposit as a payment method:
1. Customer selects products to his online shopping basket.
2. During the checkout process he is given a selection of different payment
   methods.
3. If he selects direct deposit, the online shop software (VirtueMart in this
   case) shows him a 'confirmation/thank you' message at the final step of
   checkout process. A confirmation message and order details are also send
   to customer's email address.
   DirDepo, as a payment method add-on, adds a table of information necessary
   for the direct deposit to the end of 'confirmation/thank you' message at the
   final step of checkout process. An other separate email, containing the
   direct deposit information, is also sent to the customer's email address.
   Direct deposit information contains info about the online vendor, the
   customer, the order and the invoicer.
   The vendor and the invoicer don't have to be the one and same party of the
   business transaction. For example 'the vendor', an online shop, might be
   just a marketing name for company, which is the actual invoicer, who
   should receive the direct deposit. On the other hand, the vendor and the
   invoicer can be the very same company or person.
   Most important pieces of direct deposit information are the name of invoicer,
   invoicers's bank and bank account number, bank reference number (or some other
   unique identifier of the deposit) and the total sum of the order.
4. VirtueMart records the order as a 'pending order' into the database. DirDepo
   adds the bank reference number into the order's payment history.
5. Sometime during the following days the customer makes a direct deposit
   to the invoicer's bank account for the sum of the order.
6. The invoicer notes that a deposit has been received and informs the vendor
   about it. The deposit can be linked to a particular order by the bank reference
   number.
7. The vendor updates the order status from 'pending' to 'confirmed'. VirtueMart
   is capable to send a status update notification to the customer if the vendor
   choses so.
8. Vendor finishes the order process (collects items of the order, packs them and
   sends the packet to the customer).

Some notes about the pitfalls of direct deposit as a payment method:
- The customer needs to trust the online vendor, because he is not protected by
  a third party like a credit card company.
  The vendor needs a good reputation, or the customer has to be protected for
  example by a law. Or - the customer has to just take his changes of being
  fooled by a rogue online vendor.
- The customer might never make the deposit.
  The vendor needs to keep book about the pending deposits and their age.
  Maybe the order has to be canceled after certain amount of time? Maybe the
  vendor has to contact the customer before the order can be concidered as
  'canceled'?
  Does the vendor procure or manufacture the order items before the deposit is
  received? Is vendor capable to sell them to some other customer, if this
  particular deposit is never received?
  Does the vendor even send the order to the customer before the deposit is
  received? What if the vendor is fooled by a rogue customer?
  Propably most vendors choose to keep the order pending and don't process the
  order any further before the deposit is received.
- The customer might use wrong bank reference number or no reference at all.
  The invoicer notes he has received a deposit, but can't link it to any
  particular order, because bank reference is wrong or missing. Maybe even
  the sum of deposit is wrong, and maybe the deposit doesn't contain any
  information about its originator? In that case the vendor doesn't have any
  way to know who's order should be completed. Will this upset the customer,
  even if it is actually his fault?
  The importance of bank reference is strongly underlined at DirDepo messages.
  At least finnish bank reference numbers have a checksum that greatly reduce
  the risk of incorrect reference numbers, since the bank validates the
  number before the customer is able to make his deposit. Do all countries have
  a similar bank reference standard? I guess not. How about international bank
  transactions? AFAIK, no. In those cases you may be able to use a message text
  in the deposit as a reference information field, but as an informal message
  it is not validated by a bank.
- Keeping eye on the received transactions does require some labor, especially
  if the reference numbers are wrong or missing very often.
  At least some finnish banks offer their online customers a possibility to
  download an ASCII-file containing a list of lately received deposits and
  their related information like the reference number. Maybe DirDepo or some
  other piece of software will some day include functionality to import such
  a list to VirtueMart and update related orders accordingly?
- I've red how some people are terrified of publishing their online shop's bank
  account number on the internet. If it is insecure to reveal your shop's bank
  account number to a customer during checkout or in the information email,
  then direct deposit isn't for you.
  In Finland it is a normal everyday routine to publish the bank account number
  of a invoicing company to a customer who is being invoiced, and I don't see
  any real risks in it.

Benefits of direct deposit (at least in Finland):
- Cheap. Doesn't require any contracts with third parties, like credit card
  companies, banks or post office, and thus no monthly payments, service fees
  or provisions. A normal bank account is all that is needed.
- Technically simple. No complicated electronic payment gateway transactions.
- Customers are familiar with the basic concept (paying invoices thru a bank).
  Most customers have online banking account, and are thus likely to make
  the deposit quickly after the order.
- Deposits are transfered fairly fast between banks. If customer and invoicer
  use the same bank group, the transaction takes place within a day.
  Transactions between different bank groups takes two to three days.
- Customers don't have to give credit card numbers or any other sensitive
  information to the vendor.

Known limitations of DirDepo:
- At the moment DirDepo is still in alpla state, meaning that it hasn't been
  widely tested in live online shops.
- Only one invoicer per VirtueMart:
  VirtueMart can have several vendors operating under one online shop. At
  the moment it is impossible to configure different invoicer settings for
  different vendors. All vendors need to share the same invoicer settings.
- VirtueMart can have several different instances of any particular payment
  method. It is possible to use DirDepo for several different direct deposit
  payment method instances, but they all need to share the same invoicer
  settings. If this is a problem for your online shop, you need to duplicate
  DirDepo by renaming one file and the subclass in it.
AFAIK, these two limitations above would require changes to the core code of
VirtueMart, or the vendorId and method code would have to duplicated on
configuration form and so on.
- DirDepo doesn't validate its input. This isn't a big problem or a security
  risk, because none of its input is directly from the customer. All
  DirDepo's input comes thru VirtueMart, which validates the user input. But
  the shop administrator needs to think carefully of what he inserts into the
  configuration settings.
This limitation shouldn't be difficult to fix, but it does require some labor.
At the moment the limitations above are not a top priority on my todo list,
because I don't need them personally on my own VirtueMart installation.
- My native language is finnish and my english isn't very good. So the
  DirDepo code and documentation is full of terrible english and bad
  terminology ;) I do how ever feel that it is more beneficial to the
  Joomla/VirtueMart OSS community if I publish DirDepo in english instead of
  finnish. I also feel that it is more beneficial to myself as a learning
  experience and as a peer review and code contributions.
For example corrected english output template file are very welcome.

Benefits of DirDepo:
- Fairly easy to install.
- Doesn't require any modifications to Joomla/VirtueMart core code.
- Support for multiple output languages.
- Output template files easily modified to suit each invoicers needs.
- Ease to extend to fit different banking processes.
- Free of charge. Open source.

DirDepo has been developed using Joomla! 1.0.11 and VirtueMart 1.0.7.
My development server runs PHP 5.1.2 and MySQL 5.0.22.
My production test server runs PHP 4.3.9 and MySQL 4.1.20.

At the moment DirDepo add-on includes a subclass which implements direct
deposit process suitable to finnish banking standards. This implementation is
in english and finnish.
Since DirDepo add-on is programmed in Object Oriented fashion, it should be
fairly simple to write other subclasses, which implement slightly different
banking processes for other banking standards. Other languages should be easy
to implement as well.
Please consider to contribute your subclasses, modifications and translations
to the public in the spirit of free and open source software.

As DirDepo is free (free as in speech, see http://www.fsf.org/) and
open source (see http://www.opensource.org/) software, it is free
(free as in beer) of charge.
If you feel that DirDepo is a great add-on to your VirtueMart online shop, and
that you have benefited financially of it, and if you feel you would like to
make a monetary donation, please donate a suitable amount to VirtueMart
(see http://www.virtuemart.com/).

Absinth

  • Beginner
  • *
  • Posts: 13
Re: New payment method add-on: Direct Deposit
« Reply #1 on: November 27, 2006, 14:04:49 pm »
This is exactly what I've been looking for.
Thank you for your hard work, I'll test it out and let you know.

fiscal

  • Beginner
  • *
  • Posts: 11
Re: New payment method add-on: Direct Deposit
« Reply #2 on: December 16, 2006, 01:28:57 am »
I cannot seem to get it to work - the config details do not show for some reason. In the zip file the ps_dirdepo_fi.cfg.php is zero bytes. Is this correct?

Thanks

Tony

teemu_m

  • Beginner
  • *
  • Posts: 31
    • Photogallery
Re: New payment method add-on: Direct Deposit
« Reply #3 on: December 16, 2006, 08:57:43 am »
I cannot seem to get it to work - the config details do not show for some reason. In the zip file the ps_dirdepo_fi.cfg.php is zero bytes. Is this correct?

Your webserver has to have write permissions to the config-file, otherwise it can't save your settings into it.

ps_dirdepo_fi.cfg.php is suppose to be empty before you save your settings for the first time.

fiscal

  • Beginner
  • *
  • Posts: 11
Re: New payment method add-on: Direct Deposit
« Reply #4 on: December 16, 2006, 09:54:00 am »
Hi,

Thanks,

I found that in the first instance I did not get any of the fields showing, but when I saved it and went back, there they were waiting for input.

Many Thanks

Tony

teemu_m

  • Beginner
  • *
  • Posts: 31
    • Photogallery
Re: New payment method add-on: Direct Deposit
« Reply #5 on: December 16, 2006, 11:19:29 am »
I found that in the first instance I did not get any of the fields showing, but when I saved it and went back, there they were waiting for input.

Yes, that is right. You need to configure the "General"-tab first, then save it, then open it again, configure the "Configuration"-tab (including the "Payment Extra Info"-field) and save again.

fiscal

  • Beginner
  • *
  • Posts: 11
Re: New payment method add-on: Direct Deposit
« Reply #6 on: December 18, 2006, 03:20:01 am »
Hi,

I have just one more question.

The bank reference number appears like 100 00592 which I thought was the vendoID followed by the OrderID followed by the UserID, but I all I want is the OrderID - but I the MakeBankRef functions does not seem to do this - Where is the reference created and how can I chnage it to be juts the orderID

Thanks

Tony

teemu_m

  • Beginner
  • *
  • Posts: 31
    • Photogallery
Re: New payment method add-on: Direct Deposit
« Reply #7 on: December 18, 2006, 06:40:36 am »
The bank reference number appears like 100 00592 which I thought was the vendoID followed by the OrderID followed by the UserID, but I all I want is the OrderID - but I the MakeBankRef functions does not seem to do this - Where is the reference created and how can I chnage it to be juts the orderID

It is all it the code:

.../administrator/components/com_virtuemart/classes/payment/ps_dirdepo_fi.php
Code: [Select]
<?php
//[...]
/**
     * Makes and sets the bank refrence number, valid in Finland
     *
     * Numeric format is 'VOO OOOOC' where:
     * - V = Vendor Id, length can change, no padding.
     * - O = Order ID, max length 6 character, left padding with zeros. Max value 999999.
     * - C = checksum according to Finnish Banker's Assosiation standard. Length one character.
     * The reference number is split into chunks of five characters.
     * @uses countBankRefCheckSum()
     * @access protected
     */
    
function makeBankRef()
    {
         
$refNum $this->ddInfo['vendor_id'].
                   
str_pad($this->ddInfo['order_id'], 6'0'STR_PAD_LEFT);
         
$this->ddInfo['bank_ref'] =
            
strrev(chunk_split(strrev($refNum.$this->countBankRefCheckSum($refNum)), 5' '));
    }
//[...]
?>


fiscal

  • Beginner
  • *
  • Posts: 11
Re: New payment method add-on: Direct Deposit
« Reply #8 on: December 18, 2006, 07:40:32 am »
Thanks,

I was working in the wrong file - I was looking at the one in the dirdepo folder<sigh>

All now amended and fixed.

Regards

Tony

EyeScream

  • Beginner
  • *
  • Posts: 39
Re: New payment method add-on: Direct Deposit
« Reply #9 on: December 28, 2006, 21:29:45 pm »
Thanks for a great add-on, teemu_m!
I´m working on a swedish Joomla installation with VirtueMart 1.0.7 and I´m using your add-on which works really well!

The following issue is unfortunately something I cant solve, though:

The customer gets 2 mail when the order is confirmed.
The first one contains the order confirmation with the order specifications (number of products, product SKU´s, total price, etc.).
The second one contains the billing information (address, bank account number, etc).

I´m trying to customize the invoice-mail (2:nd mail) to get the look and feel of a real invoice and I´m almost done except from one part: I´d really like to include the order specifications (like the one in the first mail) in this mail too? Is that possible?

I know that this part is handled from: com_virtuemart/html/templates/order_emails/email_<language>.html but maybe there is a way to pass on that info to dir_depo?

Again, thanks for a great add-on!

/..EyeScream

teemu_m

  • Beginner
  • *
  • Posts: 31
    • Photogallery
Re: New payment method add-on: Direct Deposit
« Reply #10 on: December 28, 2006, 21:47:49 pm »
I´m trying to customize the invoice-mail (2:nd mail) to get the look and feel of a real invoice and I´m almost done except from one part: I´d really like to include the order specifications (like the one in the first mail) in this mail too?

Take a look at ps_dirdepo::setInfo()
(in .../administrator/components/com_virtuemart/classes/payment/dirdepo/ps_dirdepo.php)
Code: [Select]
<?php
//[...]
        /** Retrieve Order Info **/
        
$sql "SELECT order_total, order_status, cdate
                FROM #__{vm}_orders
                WHERE order_id='"
.$this->ddInfo['order_id']."'";
        
$this->Db->query($sql);
        
$this->Db->next_record();
        
$this->ddInfo['order_total'] = $this->Db->f('order_total');
        
$this->ddInfo['order_status'] = $this->Db->f('order_status');
        
$this->ddInfo['order_date'] = strftime_DATE_FORMAT_LC$this->Db->f('cdate'));
//[...]
?>


You probably need to include more DB-fields to the SQL-query above (and then edit ps_dirdepo::formMessageBody() and the template file accordingly).

EyeScream

  • Beginner
  • *
  • Posts: 39
Re: New payment method add-on: Direct Deposit
« Reply #11 on: December 29, 2006, 00:33:11 am »
Thanks, teemu_m!
I tried to make this work but this is actually the first time I´m hacking PHP code! :-)
My experience with ASP programming helped though but I realize that the bar is set
a little to high for me this time.

Here´s what I thought would do the trick:
Code: [Select]
<?php
/** Retrieve Order Info **/
        
$sql "SELECT order_total, order_subtotal, order_tax, order_shipping, order_status, cdate
                FROM #__{vm}_orders
                WHERE order_id='"
.$this->ddInfo['order_id']."'";
        
$this->Db->query($sql);
        
$this->Db->next_record();
        
$this->ddInfo['order_total'] = $this->Db->f('order_total');
$this->ddInfo['order_subtotal'] = $this->Db->f('order_subtotal');
$this->ddInfo['order_tax'] = $this->Db->f('order_tax');
$this->ddInfo['order_shipping'] = $this->Db->f('order_shipping');
        
$this->ddInfo['order_status'] = $this->Db->f('order_status');
        
$this->ddInfo['order_date'] = strftime_DATE_FORMAT_LC$this->Db->f('cdate'));
?>


Then I created a new section right after the "Retrieve Order Info":
Code: [Select]
<?php
/** Retrieve Order Specifications **/
        
$sql "SELECT order_item_sku, order_item_name, product_quantity, product_item_price
                FROM #__{vm}_order_item
                WHERE order_id='"
.$this->ddInfo['order_id']."'";
        
$this->Db->query($sql);
        
$this->Db->next_record();
        
$this->ddInfo['order_item_sku'] = $this->Db->f('order_item_sku');
$this->ddInfo['order_item_name'] = $this->Db->f('order_item_name');
$this->ddInfo['product_quantity'] = $this->Db->f('product_quantity');
$this->ddInfo['product_item_price'] = $this->Db->f('product_item_price');
?>


Finally, I added the new DB quieries:
Code: [Select]
<?php
    
function formMessageBody($str)
    {
        
$str str_replace('{dirDepoVendorName}',$this->ddInfo['vendor_store_name'],$str);
        
$str str_replace('{dirDepoVendorEmail}',$this->ddInfo['vendor_email'],$str);
        
$str str_replace('{dirDepoVendorImage}',"<img src=\"cid:vendor_image\" alt=\"vendor_image\" border=\"0\" />"$str);
        
$str str_replace('{dirDepoInvoicerName}',$this->ddInfo['invoicer_name'],$str);
        
$str str_replace('{dirDepoBankName}',$this->ddInfo['invoicer_bank'],$str);
        
$str str_replace('{dirDepoBankAccount}',$this->ddInfo['invoicer_account'],$str);
        
$str str_replace('{dirDepoVatId}',$this->ddInfo['invoicer_vat_id'],$str);
        
$str str_replace('{dirDepoIBAN}',$this->ddInfo['invoicer_iban'],$str);
        
$str str_replace('{dirDepoBIC}',$this->ddInfo['invoicer_bic'],$str);
        
$str str_replace('{dirDepoOrderId}',$this->ddInfo['order_id'],$str);
        
$str str_replace('{dirDepoOrderTotal}',$this->ddInfo['order_total'],$str);
        
$str str_replace('{dirDepoOrderSubTotal}',$this->ddInfo['order_subtotal'],$str);
        
$str str_replace('{dirDepoOrderTax}',$this->ddInfo['order_tax'],$str);
        
$str str_replace('{dirDepoOrderShipping}',$this->ddInfo['order_shipping'],$str);
        
$str str_replace('{dirDepoBankReference}',$this->ddInfo['bank_ref'],$str);
        
$str str_replace('{dirDepoDaysWithin}',$this->ddInfo['invoicer_days_within'],$str);
        
$str str_replace('{dirDepoOrderDate}',$this->ddInfo['order_date'],$str);
        
$str str_replace('{dirDepoPhone}',$this->ddInfo['invoicer_phone'],$str);
        
$str str_replace('{dirDepoEmail}',$this->ddInfo['invoicer_email'],$str);
        
$str str_replace('{dirDepoFax}',$this->ddInfo['invoicer_fax'],$str);
        
$str str_replace('{dirDepoAddress1}',$this->ddInfo['invoicer_address1'],$str);
        
$str str_replace('{dirDepoAddress2}',$this->ddInfo['invoicer_address2'],$str);
        
$str str_replace('{dirDepoZip}',$this->ddInfo['invoicer_zip'],$str);
        
$str str_replace('{dirDepoCity}',$this->ddInfo['invoicer_city'],$str);
        
$str str_replace('{dirDepoState}',$this->ddInfo['invoicer_state'],$str);
        
$str str_replace('{dirDepoCountry}',$this->ddInfo['invoicer_country'],$str);
        
$str str_replace('{dirDepoUserCompany}',$this->ddInfo['user_company'],$str);
        
$str str_replace('{dirDepoUserFirstName}'$this->ddInfo['user_first_name'], $str);
        
$str str_replace('{dirDepoUserMiddleName}'$this->ddInfo['user_middle_name'], $str);
        
$str str_replace('{dirDepoUserLastName}'$this->ddInfo['user_last_name'], $str);
        
$str str_replace('{dirDepoUserAddress1}',$this->ddInfo['user_address_1'],$str);
        
$str str_replace('{dirDepoUserAddress2}',$this->ddInfo['user_address_2'],$str);
        
$str str_replace('{dirDepoUserCity}',$this->ddInfo['user_city'],$str);
        
$str str_replace('{dirDepoUserState}',$this->ddInfo['user_state'],$str);
        
$str str_replace('{dirDepoUserCountry}',$this->ddInfo['user_country'],$str);
        
$str str_replace('{dirDepoUserZip}',$this->ddInfo['user_zip'],$str);
        
$str str_replace('{dirDepoOrderUrl}',$this->ddInfo['order_url'],$str);
        
$str str_replace('{dirDepoOrderItemSku}',$this->ddInfo['order_item_sku'],$str);
        
$str str_replace('{dirDepoOrderItemName}',$this->ddInfo['order_item_name'],$str);
        
$str str_replace('{dirDepoProductQuantity}',$this->ddInfo['product_quantity'],$str);
        
$str str_replace('{dirDepoProductItemPrice}',$this->ddInfo['product_item_price'],$str);
        return 
$str;
    }
?>


Then I realized that there are more involved than just fetching new db posts and sending them to dir_depo.
I guess that I have to use some kind of array to get the order info presented row by row?

The file email_<language>.html in com_virtuemart/html/templates/order_emails/ just uses the variable {phpShopOrderItems} to present the whole order info! Some sort of ready-to-use array?

"Well! That´s kind of a nice approach" I think to myself I´m starting to think that there might be some way to pass the info from "{phpShopOrderItems}" over to dir_depo instead?

I don´t think I have the knowledge to get this working whithout some pointers.

If this should turn out to be real difficult to get going, maybe this could be a feature in the next release?

Be well!

/..EyeScream
# Going to bed after staring at a monitor for 16 hours...#

teemu_m

  • Beginner
  • *
  • Posts: 31
    • Photogallery
Re: New payment method add-on: Direct Deposit
« Reply #12 on: December 29, 2006, 08:12:58 am »
I guess that I have to use some kind of array to get the order info presented row by row?

Yes, that's right.

The file email_<language>.html in com_virtuemart/html/templates/order_emails/ just uses the variable {phpShopOrderItems} to present the whole order info! Some sort of ready-to-use array?

I believe {phpShopOrderItems} is just a placeholder in a template. There is probably a class method (similar to ps_dirdepo::formMessageBody()) that replaces it by a HTML-table containing the actual order items. Try to find the class method and see if you can copy and paste its functionality into ps_dirdepo.

If this should turn out to be real difficult to get going, maybe this could be a feature in the next release?

In theory - yes. But I can't make promises, because I don't need the functionality by myself, and thus this is very deep down in my long todo-list. Sorry.

Planet

  • Beginner
  • *
  • Posts: 1
Re: New payment method add-on: Direct Deposit
« Reply #13 on: December 29, 2006, 13:18:16 pm »
I think a part of this is just what Ive been looking for, Im trying to adapt a form original created for redirect the payment directly to a bank, Could you help me?

Ive created a generic Paypal but I have to change this code but really dont know why guys.

<form action="https://the bank/" method="post"
name="pay33">
<input type="hidden" name="idConv" value="<%=number%>">
<input type="hidden" name="refTran" value="<%=refTran%>">
<input type="hidden" name="value" value="<%=valor%>">
<input type="hidden" name="urlReturn" value="<%=urlRetorno%>">
<input type="hidden" name="date" value="<%=dtVenc%>">
<input type="hidden" name="tyPayment" value="<%=tpPagamento%>">
<input type="hidden" name="urlInform" value="<%=urlInforma%>">
<input type="hidden" name="name" value="<%=nome%>">
<input type="hidden" name="address" value="<%=endereco%>">
<input type="hidden" name="city" value="<%=cidade%>">
<input type="hidden" name="uf" value="<%=uf%>">
<input type="hidden" name="Zipcode" value="<%=cep%>">
<input type="hidden" name="msgshop" value="<%=msgLoja%>">
</form>

I need also to write some lines to make virtuemart understand these parameters

make a Donation to Virtuemart for a consistent contribution

teemu_m

  • Beginner
  • *
  • Posts: 31
    • Photogallery
Re: New payment method add-on: Direct Deposit
« Reply #14 on: December 29, 2006, 14:04:13 pm »
I think a part of this is just what Ive been looking for, Im trying to adapt a form original created for redirect the payment directly to a bank, Could you help me?

Actually I think "Finnish Instant Payment Notification payment method add-on" is a lot closer to what you are looking for.