News:

You may pay someone to create your store, or you visit our seminar and become a professional yourself with the silver certification

Main Menu

Canadian experience with payment processors?

Started by Shibumi, March 15, 2006, 15:43:52 PM

Previous topic - Next topic

Shibumi

I am setting up a store in Canada and I am wondering if anyone has had any experience setting up a store with payment processors other than paypal or 2checkout?  I am looking at a system from beanstream which is apparently a division or sister company of TD Canada Trust.  Their web site is http://www.beanstream.com/website/merchant_services/ccprocessing/ccprocessing.asp

I am trying to find the best and potentially the easiest solution and would greatly appreciate any help with this.

One thing I have noticed while looking at payment processors is that most of the bigger ones that list supported shopping carts - none of them have VirtueMart, or even phpShop listed as a recognised cart - osCommerce is almost always listed, which is really kind of sad as I have tried osCommerce as well and I dont like the interface and ease of use as much as I like VirtueMart.

Thanks
Jeff
=================================================
Scionergy.com - www.Scionergy.com
Scion Owners Club of Ottawa - www.ScionOwnersClubOttawa.ca
Capital Door Service - www.CapitalDoorService.com - VM2.0.20b, Joomla 2.5.11 PHP5.2.11 powered site

independis

I am interested too... Beanstream and Moneris are required by my customers.

Anybody experience with these two?

Ralf

Shibumi

With regards to a BeanStream payment processor module, I have attached a copy of the API interface developers manual... maybe we get get some programmers to have a look and see what we can do to create a plugin for the processor... I am sure that there are a lot of us in Canada that would love to have this as an option for a payment processor. 

Or, Soeren, if you can give me some quick pointers on where to start, I can try and develop something myself.

Lets see if this amazing community can come up with something quick with this and help a lot of us Canadians, eh?

Many thanks

[attachment deleted by admin]
Jeff
=================================================
Scionergy.com - www.Scionergy.com
Scion Owners Club of Ottawa - www.ScionOwnersClubOttawa.ca
Capital Door Service - www.CapitalDoorService.com - VM2.0.20b, Joomla 2.5.11 PHP5.2.11 powered site

jabberwock

Just looking to set up a store with a payment processor based on Beanstream. I'm familiar with the innards of mambo so this seems like the right shop to use rather than using something like osCommerce and having to learn the code structure from scratch.

If you or anyone else has started on this and has any code written or information about how to do the integration that would be great.



Pleasure in the job puts perfection in the work. --Aristotle

Shibumi

Hi jabberwock,

From what I could tell in the API manual for Beanstream, there is not a lot of PHP coding required, but it is creating the module for VM that could be a little tricky...  I dont know if you can use one of the other payment modules as an example to start the beanstream one... I asked Soeren for any pointers or tips on where to start, but I know he is pretty busy (and judging by his requests for moderators and assistance wherever and whenever possible, getting even busier) so I havent heard anything back from him yet... I do know that Soeren does do his best to try and reply to most of the posts.

It would be nice if we could get some (if there are any?) Canadian (or North American) members of this community who have good programming backgrounds to have a look into some of the Canadian and North American aspects of VM and come up with some good modules for things like shipping, and payment processors - another key issue seems to be our multiple tax rates and how the provinces have different rates and charged in different manners as well in some cases.  Maybe some of the features that already exist in osCommerce can be "ported" over to VM?

I have heard that future issues of VM will more than likely support the ability to sellect multiple currencies similar to osCommerce so that shop visitors can switch currencies.  Some other features that would be nice would be the abilty to generate quotes, without any payment processing (ie.: select "quote" as a payment method), just create an order that gets stored in the db with the shoppers info, but gets "flagged" as a Quote and not an actually order?  An RMA (Return Merchandise Authorization) request system that would allow shoppers to submit a request to return merchandise purchased online.  The only drawback I see to features like the "quotation system" is that some shoppers are potentially going to submit false contact information.  Maybe some kind of account email verification before purchases can be made?

We CAN make this a more Canadian friendly cart with every bit us Canadian members contribute!  So, I put out a call to ALL Canadian members, developers, programmers, users and so on, to get together and do what ever we can to help Soeren and the rest of the VM dev team make this product even better!!

Maybe Soeren can even create a new Canadian or North American VM Forum for development discussions, ideas, feature requests and so on, that all of us Canadian and North American members can collaborate in!!

Cheers!
Jeff
=================================================
Scionergy.com - www.Scionergy.com
Scion Owners Club of Ottawa - www.ScionOwnersClubOttawa.ca
Capital Door Service - www.CapitalDoorService.com - VM2.0.20b, Joomla 2.5.11 PHP5.2.11 powered site

jabberwock

OK so out of necessity I've started creating the payment processor for Beanstream. It's already processing the basic card types correctly so I'll have a rough version up for testing sometime tommorow.

If there is anyone else out there who would be interested in helping out with testing just contact me and we'll be able get this up and running in a few days.

Cheers

Jabberwock.
Pleasure in the job puts perfection in the work. --Aristotle

Shibumi

Sounds great!

I already have a test BeanStream Account set up so I can help you with the testing process!

Cheers,
Jeff
=================================================
Scionergy.com - www.Scionergy.com
Scion Owners Club of Ottawa - www.ScionOwnersClubOttawa.ca
Capital Door Service - www.CapitalDoorService.com - VM2.0.20b, Joomla 2.5.11 PHP5.2.11 powered site

steph

 Wow, Could you keep us updated.  I would love to go with beanstream as well but the fact that it doesn't integrate with vm was stopping me.
I have no programing knowlege but I could go set up a test account with beanstream and help with testing.

Shibumi

Hey Steph, sounds great! Maybe send Jabberwock a pm to let him know that you can help test the module... I havent heard from him in a couple of days, so I don't know where he's at with this right now...

Thanks,
Jeff
=================================================
Scionergy.com - www.Scionergy.com
Scion Owners Club of Ottawa - www.ScionOwnersClubOttawa.ca
Capital Door Service - www.CapitalDoorService.com - VM2.0.20b, Joomla 2.5.11 PHP5.2.11 powered site

jabberwock

#9
OK was wanting to get all the extra processing options (verified by visa) built but haven't had time to get that done yet. That said here's a basic processor that works well without.

Unzip the attached php files to adminsitrator/com_virtuemart/classes/payment/   

Then in administrator/com_virtuemart/languages/english.php add the following code:
   // Beanstream Processor Text Strings
var $_PHPSHOP_ADMIN_CFG_ENABLE_BEANSTREAM_TESTMODE = 'Enable Test Mode:';
var $_PHPSHOP_ADMIN_CFG_ENABLE_BEANSTREAM_TESTMODE_EXPLAIN = 'Select \'Yes\' while testing. Select \'No\' for enabling live transactions. Must match the setting set in the Beanstrem admin area.';
var $_PHPSHOP_ADMIN_CFG_BEANSTREAM_USERNAME = 'Beanstream Merchant ID:';
var $_PHPSHOP_ADMIN_CFG_BEANSTREAM_USERNAME_EXPLAIN = 'This is your Beanstream acount id.';
var $_PHPSHOP_ADMIN_CFG_BEANSTREAM_KEY = 'Click to set secure transaction key:';
var $_PHPSHOP_ADMIN_CFG_BEANSTREAM_KEY_EXPLAIN = 'This is your Beanstream Transaction Key for signing encrypted communications. It needs to be set in the Beanstream admin area too. Set it nothing to not use the transaction key';
var $_PHPSHOP_ADMIN_CFG_BEANSTREAM_KEY_EXPLAIN2 = 'This is your Beanstream Transaction Key for signing encrypted communications';
var $_PHPSHOP_PAYMENT_BS_RECURRING = 'Use recurring billing:';
var $_PHPSHOP_PAYMENT_BS_RECURRING_TOOLTIP = 'Define wether you want recurring billings.';
var $_PHPSHOP_PAYMENT_BS_VERIFIED_BY_VISA = 'Enable Verified by Visa:';
var $_PHPSHOP_PAYMENT_BS_VERIFIED_BY_VISA_TOOLTIP = 'NOT YET BUILT. Use the Verified by Visa checking.';
var $_PHPSHOP_PAYMENT_BS_VALIDATE_YESNO = 'Use username/password validation against transaction:';
var $_PHPSHOP_PAYMENT_BS_VALIDATE_YESNO_TOOLTIP = 'Use username/password validation against transaction. Must be enabled in the Beanstring admin area.';
var $_PHPSHOP_PAYMENT_BS_VALIDATE_USER = 'User Name:';
var $_PHPSHOP_PAYMENT_BS_VALIDATE_USER_TOOLTIP = '';
var $_PHPSHOP_PAYMENT_BS_VALIDATE_PASSWORD = 'Password:';
var $_PHPSHOP_PAYMENT_BS_VALIDATE_PASSWORD_TOOLTIP = '';
//end Beanstream Processor Text Strings

Add it to line 1480 just after the line
var $_VM_BROWSE_ORDERBY_FIELDS_LBL_TIP = 'Choose the "Sort-by" fields for the browse page. Each one defines a sort method for the product browse page. If you deselect all, the Order-By-Form will not be shown.';


Then in Virtuemart create a new payment processor and make sure to fill in the following values:
Code: BS
Payment class name: ps_beanstream
Payment method type: credit card
And fill in the information under the configuration tab


Updated: Working now with CW2 Numbers too (thanks Cipher)

[attachment cleanup by admin]
Pleasure in the job puts perfection in the work. --Aristotle

Shibumi

Have implemented this and I am testing... Using the BeanStream test Visa numbers, but there is no test CVV number to test, so the processor tells me invalid CVV2 number - and if I turn off the CVV check in VM and even in Beanstream, I get:
QuoteError: You need to enter your Credit Card Code to proceed.
?

btw, excellent job so far Jabberwock!!
Jeff
=================================================
Scionergy.com - www.Scionergy.com
Scion Owners Club of Ottawa - www.ScionOwnersClubOttawa.ca
Capital Door Service - www.CapitalDoorService.com - VM2.0.20b, Joomla 2.5.11 PHP5.2.11 powered site

Shibumi

#11
Okay, tried again this morning
- I have CVV turned off in BeanStream, and also turned off in VM
- tried with BeanStream test Visa 403000010001234 and exp 12/2008

getting this error:

Quote
Error: Authorization Failed

Error: Failure in Processing the Payment (ps_beanstream)

- Dont know if this matters or not, but we are not running on SSL at this time

Jabberwock,  I have VM 1.0.4, and there is no Line 1480 in my /administrator/components/com_virtuemart/languages/english.php - I think the highest line number is 1478 after adding your code... so I just stuck it in near the other payment types (right after var $_PHPSHOP_ADMIN_CFG_CYBERCASH_AUTENTICATIONTYPE_EXPLAIN = ) and the module seems okay, just not authorizing. 

- Nice to know that with the CVV on in both BeanStream and VM that the check is working
- going to call my contact at BeanStream today and see if we can trouble shoot my problem

Cheers
Jeff
=================================================
Scionergy.com - www.Scionergy.com
Scion Owners Club of Ottawa - www.ScionOwnersClubOttawa.ca
Capital Door Service - www.CapitalDoorService.com - VM2.0.20b, Joomla 2.5.11 PHP5.2.11 powered site

jabberwock

Yup it wasn't working with the CVVD codes. I've updated the file in my last post to fix the issue.
Pleasure in the job puts perfection in the work. --Aristotle

r0tt3n

I'm a programmer consultant who has clients located in Canada.  I'm still familiarizing myself to a certain degree with VirtueMart, but I'm interested in seeing what I can do to help in your testing or debugging efforts.

Shibumi

#14
Quote from: jabberwock on March 29, 2006, 05:20:17 AM(Added by CiPHeR): Updated instructions for BeanStream Payment Processor (note - addition of components/ to the path)

1. Unzip the attached php files to adminsitrator/components/com_virtuemart/classes/payment/
- you will have 2 new files (ps_beanstream.php and ps_beanstream.cfg.php) to upload to the adminsitrator/components/com_virtuemart/classes/payment/

2. Then in administrator/components/com_virtuemart/languages/english.php add the following code:
	
// Beanstream Processor Text Strings 
	
var 
$_PHPSHOP_ADMIN_CFG_ENABLE_BEANSTREAM_TESTMODE 'Enable Test Mode:';
	
var 
$_PHPSHOP_ADMIN_CFG_ENABLE_BEANSTREAM_TESTMODE_EXPLAIN 'Select \'Yes\' while testing. Select \'No\' for enabling live transactions. Must match the setting set in the Beanstrem admin area.';
	
var 
$_PHPSHOP_ADMIN_CFG_BEANSTREAM_USERNAME 'Beanstream Merchant ID:';
	
var 
$_PHPSHOP_ADMIN_CFG_BEANSTREAM_USERNAME_EXPLAIN 'This is your Beanstream acount id.';
	
var 
$_PHPSHOP_ADMIN_CFG_BEANSTREAM_KEY 'Click to set secure transaction key:';
	
var 
$_PHPSHOP_ADMIN_CFG_BEANSTREAM_KEY_EXPLAIN 'This is your Beanstream Transaction Key for signing encrypted communications. It needs to be set in the Beanstream admin area too. Set it nothing to not use the transaction key';
	
var 
$_PHPSHOP_ADMIN_CFG_BEANSTREAM_KEY_EXPLAIN2 'This is your Beanstream Transaction Key for signing encrypted communications';
	
var 
$_PHPSHOP_PAYMENT_BS_RECURRING 'Use recurring billing:';
	
var 
$_PHPSHOP_PAYMENT_BS_RECURRING_TOOLTIP 'Define wether you want recurring billings.';
	
var 
$_PHPSHOP_PAYMENT_BS_VERIFIED_BY_VISA 'Enable Verified by Visa:';
	
var 
$_PHPSHOP_PAYMENT_BS_VERIFIED_BY_VISA_TOOLTIP 'Use the Verified by Visa checking.'// NOT YET BUILT
	
var 
$_PHPSHOP_PAYMENT_BS_VALIDATE_YESNO 'Use username/password validation against transaction:';
	
var 
$_PHPSHOP_PAYMENT_BS_VALIDATE_YESNO_TOOLTIP 'Use username/password validation against transaction. Must be enabled in the Beanstring admin area.';
	
var 
$_PHPSHOP_PAYMENT_BS_VALIDATE_USER 'User Name:';
	
var 
$_PHPSHOP_PAYMENT_BS_VALIDATE_USER_TOOLTIP '';
	
var 
$_PHPSHOP_PAYMENT_BS_VALIDATE_PASSWORD 'Password:';
	
var 
$_PHPSHOP_PAYMENT_BS_VALIDATE_PASSWORD_TOOLTIP '';
	
//end Beanstream Processor Text Strings 


(Added by CiPHeR): look through the code til you find other payment types and insert at the end of the existing types and it will work fine. For example, I looked around line 1010 and inserted the code between Cybercash and Advanced Search:


	
var 
$_PHPSHOP_ADMIN_CFG_CYBERCASH_URL 'CyberCash PAYMENT URL';
	
var 
$_PHPSHOP_ADMIN_CFG_CYBERCASH_URL_EXPLAIN 'CyberCash PAYMENT URL is the URL provided by Cybercash for secure payment';
	
var 
$_PHPSHOP_ADMIN_CFG_CYBERCASH_AUTENTICATIONTYPE 'CyberCash AUTH TYPE';
	
var 
$_PHPSHOP_ADMIN_CFG_CYBERCASH_AUTENTICATIONTYPE_EXPLAIN 'CyberCash AUTH TYPE is the Cybercash authentication type provided by Cybercase';
	
// Beanstream Processor Text Strings 

                insert beanstream code here

	
//end Beanstream Processor Text Strings 
	
var 
$_PHPSHOP_ADVANCED_SEARCH 'Advanced Search';
	
var 
$_PHPSHOP_SEARCH_ALL_CATEGORIES 'Search All Categories';
	
var 
$_PHPSHOP_SEARCH_ALL_PRODINFO 'Search all product info';
	
var 
$_PHPSHOP_SEARCH_PRODNAME 'Product name only';

3. Save the file then upload to adminsitrator/components/com_virtuemart/languages/

4. Then in Virtuemart create a new payment processor and make sure to fill in the following values:
Payment Method Name: Credit Card or Visa, or Mastercard, (whatever you want to show in checkout for payment option)
Code: BS
Payment class name: ps_beanstream  (must be ps_beanstream)
Payment method type: credit card

Save the payment type then go back...

5. And fill in the information under the configuration tab

If you select username and password verification, note that you must setup a username and password in your BeanStream Account

BeanStream Account --> Administration --> Account Settings --> Order Settings

- the username and password can be anything you want, then enter that username and password in the appropriate fields

It is important to note that your settings in your Beanstream Admin MUST sync with your settings in VirtueMart

Updated: Working now with CW2 Numbers too (thanks Cipher)

6. If the ps_beanstream.php still shows this code at line 321:
            'ordName'
	
	
=> 
substr($dbbt->f("first_name"), 032) . substr($dbbt->f("last_name"), 032) ,


replace it with:
            'ordName'
	
	
=> 
substr($dbbt->f("first_name"), 032) ." "substr($dbbt->f("last_name"), 032) ,


and the same for line 332:
            'shipName'
	
	
=> 
substr($dbst->f("first_name"), 032) . substr($dbst->f("last_name"), 032),


replace it with:
            'shipName'
	
	
=> 
substr($dbst->f("first_name"), 032) ." "substr($dbst->f("last_name"), 032),


this fixes the order and shipping names adding a single whitespace between First and Last name

Have not tested this extensively yet, but the module does work with CVV verification, username and password is great for verifying the process is legit.  Beanstream will give you a test account to try this out, and they are fairly helpful with regards to getting you up and running.  Orders will show payment processed sucessfully in VM, and you can also track your orders in Beanstream as well as issue refunds, or void transactions - even on test account.

Beanstream seems to use the session id for the order numbers, and not the actual order number from VM - this is something jabberwock and I are looking into to see if we can get the actual order from VM to be passed, and not the session id - this will make it easier to match up orders.

[attachment cleanup by admin]
Jeff
=================================================
Scionergy.com - www.Scionergy.com
Scion Owners Club of Ottawa - www.ScionOwnersClubOttawa.ca
Capital Door Service - www.CapitalDoorService.com - VM2.0.20b, Joomla 2.5.11 PHP5.2.11 powered site