I'm not sure whether this is a feature or support request - but I've signed my site up for Moneris' E-fraud tools and it seems this module isn't communicating the AVS, CVD, etc. info to the Moneris server?
The Moneris Commerce module seems to be working fine, but I spoke to Moneris tech support and they confirmed that they weren't receiving any of the info related to the various e-fraud protections which are now becoming pretty much a necessity for any retail site.
Are there any instructions on how this can be set up, or if it's not currently in place can it be an urgent feature request?
FYI - If a credit card is processed and a CVD or AVS check is not done, the customer can accept the goods, then reverse the charge/claim fraud on the credit card and the Online Retailer will have no recourse - they will be out both the $ and the products.
EDIT - P.S. I just found out that I'm out $2,300 because this module wasn't sending CVD and AVS to Moneris. If you're using this module and you've signed up for Moneris E-fraud tools, it seems that they are NOT working. Because Moneris is ready to accept the info, they are putting the blame on this module, and therefore it's anyone using it that is out the cost of any fraudulent purchases that you ship out (as I did). Don't do what I did and assume that the card security info is being sent to Moneris - according to their tech support department, IT IS NOT. And the responsibility lies with business owners to confirm that it is.
| Comment | File | Size | Author |
|---|---|---|---|
| #8 | commerce_moneris-e-fraud-update-2272701-8.patch | 12.19 KB | jarchowk |
Comments
Comment #1
storytellerjeff commentedAnybody? Does this module send CVD or AVS info by design?
Comment #2
storytellerjeff commentedBetter question - is this module still maintained?
Comment #3
storytellerjeff commentedComment #4
bgillard commentedThis is also a critical issue for us on various sites where we use Commerce Moneris. We may need to move back to PayPal if this isn't resolved, as the risk of fraud is too great.
Comment #5
ionut.alexuc commentedHi,
I do not have access to moneris system anymore.
If you provide a patch, I can make you a maintainer of this module and you can deploy the patch.
Comment #6
storytellerjeff commentedWell, first -- thanks for your hard work on this up until now.
If a new maintainer can't be found soon - and Ryan and the Commerce Guys don't want to take it over, it should be marked as not maintained and be shut down. Without getting the security issues fixed ASAP, this module presents a serious financial risk to any business that attempts to use it.
At the very least, it should warn new and existing users that they ARE NOT protected from e-fraud and that this module provides no transactional security.
Comment #7
Scott Robertson commentedI've added a warning to the module's description until this issue can be resolved.
Comment #8
jarchowk commentedThis is my first crack at an update for this. I realize that other work is going on with the module to make it more compatible with commerce, but we needed a solution right away. I've tried a few purchases in the Moneris testing environment, which come back with the proper AVS/CVD codes, but I haven't tried this yet in a production environment.
There are some other things I've included, in particular with the AVS data that might be specific to our website. I haven't coded anything in the commerce module, so please let me know.
Comment #9
Scott Robertson commentedComment #10
Scott Robertson commentedA few notes I had upon quick inspection of the patch:
Instead of using the global user variable, we should use the uid associated with the order. It looks like this is specifically for grabbing the email address, but it wouldn't work for anonymous users. I believe the email address should be available somewhere right in the order data.
Instead of pulling field data out of the order with a hardcoded language (or no language), we should create an entity metadata wrapper for the order and pull values out of it instead. This way, we don't have to worry about the field's language.
For example, the PayPal WPP module does it like so:
I think this was pasted in here by mistake?
We can use country_get_list() to get the name for any country. If the display names for the US and Canada are different than what Moneris is expecting, we'll probably have to keep them hard-coded as "Canada" and "United States", but at least with country_get_list() we can account for other countries.
It's too bad that Moneris wants the street number separated out, but I don't really think that there's a much better way of doing it. Right now, though, this function will also produce errors if the $address_num is never set.
Comment #11
storytellerjeff commentedAny progress/news on this one?
Comment #12
xmacinfoWhat is the best way to debug with and without the patch? Is using the Moneris Sandbox account enough?
Comment #13
Scott Robertson commentedHi xmacinfo,
The sandbox account allows you to simulate AVS and CVD response codes by passing Moneris different transaction amounts, but it won't actually validate the information. The Moneris developer portal has a document on how to simulate these responses titled "Test Environment eFraud (CVD & AVS) Result Codes", which is located in their "Other useful stuff" section:
https://developer.moneris.com/Downloads/Canada/Support/Other%20Useful%20Stuff.aspx (You'll need to sign up for a developer account if you don't already have one)
Without access to a production environment (which I unfortunately don't have at the moment), the best you can do is ensure that AVS and CVD information is being passed correctly to Moneris in the API call, in addition to making sure that the module is handling the response codes correctly.
Best,
Scott
Comment #14
maciej.zgadzaj commentedI have been working on a new version of this module for one of our clients. It seems to be ready now, going through some final testing, and is available on GitHub. Just sent a message to Ionut to add me as a co-maintainer so I could push it to d.o. as well (as branch 7.x-2.x).
Feel free to give it a test ride, all input is highly appreciated.
Obviously it supports eFraud (AVS+CVD) as well.
Comment #15
Scott Robertson commentedMarking as fixed as this has been addressed in 2.x; any new issues related to 2.x can be opened separately.