The code is now sent, my apologies for the delay.
The code is now sent, my apologies for the delay.
[FONT="Georgia"]Samuel Turnmire[/FONT]
[FONT="Century Gothic"]co-Founder[/FONT]
[FONT="Book Antiqua"]geekFoundry[/FONT]
I didn't see all the other responses . . . it's good to see this project gaining attention. First, let me point out what I know so far.
VM and ViaKLIX are very similar but they are not the same. There are a few minor code changes as far as where the data should be posted to. One of the biggest differences between the two is that VM now has logic error handling. For example:
With ViaKlix if you make an error and key in the wrong Pin during the setup phase and you were to run a transaction the process would die at viaKLIX with no redirection possible
With VM if you make the same mistake you can have the error code redirected back to whatever URL you are so inclined to use.
The problem is this though. With the logic error handling of VM it doesn't return an ssl_result message, instead it returns an errorcode= message. My goal was to have ZenCart look for ssl_result=0 (which means approved transaction) and if it got said message it would continue on. If it did not then it would kick back to the previous page and state there was a problem with the transaction. I thought this would be an easy 'if\then' statement but apparently I was wrong.
As far as being able to run transactions, I have a demo account setup:
Account ID: 000007
User ID: website
Pin: 937215
As this is a demo you'll have to post your transactions to:
https://demo.myvirtualmerchant.com/V...emo/process.do
In the version I'm working on the option in the set up of being set to 'demo' or 'production' . . . Demo or Test mode would send you to the above URL while production would send you to the live location of:
https://www.myvirtualmerchant.com/Vi...ant/process.do
If we can get a working VM module then I can mod it backwards to a working ViaKLIX module. Yes they are going to eventually move everyone over to VM (1-2 years down the road) but I figure best to have it and not need it than vice versa.
If anyone has code that they think will work I've got a site I can test their code on. Just let me know.
[FONT="Georgia"]Samuel Turnmire[/FONT]
[FONT="Century Gothic"]co-Founder[/FONT]
[FONT="Book Antiqua"]geekFoundry[/FONT]
Yes, I was using the MOD you posted. There we're other minor changes. Some of the variables had to be changed, but really that was it. Since I was starting from scratch I wanted to see what happens.
Thank you for the information ThePatch, as well as the code you had sent. I will look at this and get back to you all asap.
Patch, how do you test for an invalid credit card? The demo bypasses the CC check, and works for me every time when I use "41111..." for CC info.
I have a few ideas for the error checking but I can't test them.
Hi guys. I'm writing my own module for this, and just came across this thread. After reading through the other module posted a few messages above, I'm confused about a few things.
I don't want to post the whole module's code, but I have a few questions about why some of the things are done the way they are in the other module.
1. What is the correct way to do the CVV checking? I've heard ssl_cvvcvc2 and ssl_cvvcvc2_indicator, and ssl_cvv2. The developers guide says to use 'ssl_cvv2' as the indicator (ie present), and ssl_cvv2cvc2 as the number. The other module uses 'ssl_cvv2' as the indicator and 'ssl_cvv2cvc2_indicator' as the number? Something change? Also, shouldn't this ALWAYS be 'present' by design (unless your not collecting them)?
2. ssl_result_format is HTML by default. Is this just being extra careful in passing it?
3. What is the hidden field 'main_page' for? Couldn't you just change the redirect to 'FILENAME_CHECKOUT_PROCESS' instead of 'FILENAME_DEFAULT'? In the below example I have the modified code I am using after looking over the other module, and my own original code commented out below it. Can someone explain the reasoning for using the separate apprvl and decl addresses? This is probably just my ignorance on how Zen Cart handles them, but please enlighten...
zen_draw_hidden_field('main_page', 'checkout_process') .
zen_draw_hidden_field('ssl_receipt_apprvl_method', 'REDG') .
zen_draw_hidden_field('ssl_receipt_decl_method', 'REDG') .
zen_draw_hidden_field('ssl_receipt_apprvl_get_url', zen_href_link(FILENAME_DEFAULT, '', 'SSL', FALSE)) .
zen_draw_hidden_field('ssl_receipt_decl_get_url', zen_href_link(FILENAME_CHECKOUT_PAYMENT, 'payment_error=' . $this->code . '&viaklix_cc_owner=' . urlencode($_POST['virtualmerchant_cc_owner']) . '&passedvars=coming' , 'SSL', FALSE)) .
//zen_draw_hidden_field('ssl_receipt_link_method', 'REDG') .
//zen_draw_hidden_field('ssl_receipt_link_url', zen_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL', false)) .
4. I BELIEVE the before_process method is executed when VirtualMerchant returns something back to Zen Cart, correct? So is this module not doing any error checking? Or is THAT why there is a different decl_get_url? Doesn't virtual merchant do some funky error checking where it can return an 'ssl_result' of 0, but still fail a CVV or AVS check or something like that? I thought I read something about that in the developers guide... Ah yes, a failed AVS check will NOT result in a declined transaction... Not sure if this is something we might add in there to check for?
5. Shouldn't ssl_transaction_type be 'CCSALE', not 'SALE'?
I'd like to test my current module with the demo account posted above. Would that be ok? I'd be happy to provide my code, I'm jsut not sure how the best way to do that would be here as I'm new...
Michael
Your answers:
1.) what you should pass is:
ssl_cvv2cvc2_indicator with a value of '1'
ssl_cvv2cvc2 with a value of (cvv2 data)
You should always pass this, period.
2.) I'm thinking this should be AsCii, not sure though
3.) The idea behind this would be that your approvals would be sent to one page while declines to another. I don't know that this really applies to ZenCart though.
4.) I don't know that I would have Zen do anything with the AVS result. What I WOULD do is set up the business rules function in VM to auto-pend the transaction to allow the client to review the transaction before shipping the product out. Just my 2 cents
5.) Yes, trantype needs to be ccsale
By all means feel free to use the demo information
[FONT="Georgia"]Samuel Turnmire[/FONT]
[FONT="Century Gothic"]co-Founder[/FONT]
[FONT="Book Antiqua"]geekFoundry[/FONT]
So what's the verdict on ViaKlix working with Zen Cart? Does it work dependably or no? I've scanned the hundreds of postings and still not sure what the answer is. I have a customer who uses ViaKlix and is thinking of upgrading to Zen Cart however my first impression is to simply have them change to Pay Pals merchant system or Authorize.net.
Is this not necessary?
Thanks in advance!
MH
.
Zen Cart - putting the dream of business ownership within reach of anyone!
Donate to: DrByte directly or to the Zen Cart team as a whole
Remember: Any code suggestions you see here are merely suggestions. You assume full responsibility for your use of any such suggestions, including any impact ANY alterations you make to your site may have on your PCI compliance.
Furthermore, any advice you see here about PCI matters is merely an opinion, and should not be relied upon as "official". Official PCI information should be obtained from the PCI Security Council directly or from one of their authorized Assessors.
That new ViaKlix2 Enhanced Payment Module that Dr. Byte referred to looks to be pretty extensive. It looks like it can do a lot more things than the old ViaKlix mods. Is there any way that this one can be modified to connect to Virtual Merchant? Or, could some of the code be used to fix the problems with the VM mod?
They say it has been tested with Zen 1.3.7 and found to work. I tried installing it but had a few warning messages in my admin payment modules section. It said "failed to open stream: no such file or directory in admin/modules.php on line 174.
It sure would be nice if this would work for VM.