Jump to content
Sign in to follow this  
perfectpassion

[Contribution] Protx Direct v5 Support Thread

Recommended Posts

This module is an updated version of the Protx Direct module for osCommerce (last version was v4.4). The most important feature of this version is a major improvement in the customer experience of the payment process. This version uses the open source jQuery and Thickbox packages to bring a "Web 2.0" AJAX interface to the payment process, with a noticeable improvement particularly with the 3D-Secure phase of the process.

The module has been carefully developed to retain compatibility with JavaScript disabled in the customer's browser, albeit with a more clunky interface.

 

 

Changes since v4.4

  • Catalog Side:
    • Card payment fields moved from checkout_payment.php to checkout_confirmation.php for increased security
    • Start date and issue number fields hidden unless Maestro or Solo card types are selected
    • CVV help popup now in a "ThickBox" window
    • Upon clicking "Confirm" a "ThickBox" window appears in a new layer overlying checkout_confirmation.php. The remainder of the payment process including the 3D-Secure (Verified By Visa / MasterCard SecureCode) takes place in this layer
    • Checks for a successful transaction before allowing the order to be recorded - thus securing against the publicised payment hack
    • Minor bug fixes (error with complex database names; not showing error messages due to & instead of & in URL

  • Admin Side:
    • Variable amount for RELEASEing DEFERRED transactions
    • Check live transaction status (e.g. settlement status, batch id etc)

Requirements

  • SSL Cert (shared or dedicated)
  • cURL with OpenSSL support compiled into PHP

Works with

  • osCommerce v2.2 RC2a
  • osCommerce v2.2 MS2 17-08-2006
  • FireFox 3.0
  • IE 6.0
  • IE 7.0
  • Google Chrome 0.2.149.30
  • Safari 3.1.2

Please note this is initially a beta release as although I have successfully tested it on a mixture of osC installations and browsers I cannot guarantee it will work in all situations. Please report any issues to this thread

 

Contribution can be found at http://addons.oscommerce.com/info/4026

Edited by perfectpassion

Share this post


Link to post
Share on other sites

Hi Tom,

 

Firstly thanks for all the continued time and skills you are putting into this.

 

I am getting an error upon clicking on confirm order

 

Parse error: syntax error, unexpected ';' in /homepages/13/d196434915/htdocs/catalogue/protx_process_win.php on line 37

 

I have tried removing the ; from line 37 but it ,akes no differance?

 

hope you can help,

 

regards,

 

anthony

Share this post


Link to post
Share on other sites

Sure,

 

I've just been going through the code again myself and picked up a few small things that slipped through.

 

Regarding that particular error replace line 37 of protx_process_win.php with:

doAjax("<?php echo protxCleanUrl(tep_href_link(FILENAME_PROTX_PROCESS, 'action=process', 'SSL')); ?>", inputs);

 

(the closing bracket was in the wrong place!)

Share this post


Link to post
Share on other sites
Sure,

 

I've just been going through the code again myself and picked up a few small things that slipped through.

 

Regarding that particular error replace line 37 of protx_process_win.php with:

doAjax("<?php echo protxCleanUrl(tep_href_link(FILENAME_PROTX_PROCESS, 'action=process', 'SSL')); ?>", inputs);

 

(the closing bracket was in the wrong place!)

 

 

dam you! - I just sussed that out!! - many thanks

 

Just putting through some test orders - the first one got declined (as expected)

 

the second order I ge tthis error message

 

Sorry, your order could not be processed as no payment transaction was found. Please try again or contact the store owner.

 

this order should get authorised,

 

any ideas?

 

thanks again

Share this post


Link to post
Share on other sites

what happens is that when a transaction is processed it is recorded in the protx_direct table, the customer is then redirected to checkout_process.php.

 

Before the order is processed the checkout_process calls before_process() in the protx_direct module - this checks the protx_direct table for a successful transaction before allowing the order to be prcoessed.

 

The purpose of this step is for security to block the well publicised "flaw" that potentially allows people to order without paying.

 

Getting back to your problem: if you are getting that error it means it can't find a successful transaction in the db - this could be for a few reasons - the first step would be to take a look at your protx_direct table and see fi you can find the successful transaction (check correct date/time and that the 'status' field is 'OK') and let me know

Share this post


Link to post
Share on other sites

Hi Tom,

 

looking forward to seeing this in action :)

 

One issue though will be for those who have a combined shipping/payment page (as I have). It doesn't like me moving the payment module to checkout_confimation. I haven't had time to look into it yet but hopefully I will get time this evening and report back.

 

Just a heads up :)

 

Dave

Share this post


Link to post
Share on other sites

Hi Tom,

 

Which file do I edit to make the "3d secure box" slightly larger?

 

With VBV the box is not quite tall enough and therefore displays a scroll bar. If i made it a ting bit bigger it would all fit with out the scroll bars,

 

thanks as ever,

 

anthony

Share this post


Link to post
Share on other sites

Line 190 in protx_process.php:

echo '<iframe src="'.tep_href_link(FILENAME_PROTX_PROCESS, 'action=iframe&termurl='.urlencode(str_replace('&', '&', tep_href_link(FILENAME_PROTX_PROCESS, 'action=3Dreturn&protx_id='.$GLOBALS['protx_direct']->protx_id, 'SSL'))), 'SSL').'" id="3Dsecure" style="width: 100%; height: 400px; border: none;"></iframe>';

 

The height should be sufficient according to the vbv guidelines - when you say it is not tall enough is this with a live vbv transaction or is it the test protx dialog? The test dialog is not the true size.

Share this post


Link to post
Share on other sites

Hi,

 

May be unrelated, and just chance, but i changed the above code to the box was 420px high. When i put through a transaction i just authorised it without 3d secure?

 

I put the code back to 400px and tried again - this time it did do the 3d secure?

Share this post


Link to post
Share on other sites
3DAUTH -

Request URL=https://ukvpstest.protx.com/vspgateway/service/vspdirect-register.vsp

Data string sent=VPSProtocol=2.22&TxType=DEFERRED&Vendor=elasticretail&VendorTxCode=7036-77274225649643663759532817435161&Amount=19.70&Currency=GBP&Description=Order+Number%3A+7036&CardHolder=jssjsjjsjsn+sjsjsnsns&CardNumber=5404000000000001&StartDate=&ExpiryDate=0312&IssueNumber=&CV2=123&CardType=MC&BillingAddress=29292929%2C%0D%0A22222%2C%0D%0Asssss%2C%0D%0Aindiansns%2C%0D%0AIndia&BillingPostCode=292929&DeliveryAddress=29292929%2C%0D%0A22222%2C%0D%0Asssss%2C%0D%0Aindiansns%2C%0D%0AIndia&DeliveryPostCode=292929&CustomerName=jssjsjjsjsn+sjsjsnsns&ContactNumber=9292929&CustomerEMail=saju.g%40wontonetech.com&ClientIPAddress=122.162.140.99&Basket=4%3ASterling+Silver+Heart+Clasp+Charm+Bracelet%3A1%3A17.50%3A0.00%3A17.50%3A17.50%3AVelveteen+Gift+Bag+%28+Choice+of+Colour+%29%3A1%3A0.00%3A0.00%3A0.00%3A0.00%3ACharm+-+Choice+of+6+%28+Please+Click+to+see+selection+%29%3A1%3A0.00%3A0.00%3A0.00%3A0.00%3AShipping%3A1%3A2.2%3A----%3A2.2%3A2.2&AccountType=E&Apply3DSecure=0

Protx response=VPSProtocol=2.22

Status=3DAUTH

StatusDetail=2007 : Please redirect your customer to the ACSURL, passing the MD and PaReq.

3DSecureStatus=OK

MD=2012253471906431670

ACSURL=https://ukvpstest.protx.com/mpitools/accesscontroler?action=pareq

PAReq=eJxVUttSgzAQffcrGD6AJEApdLbp9OKMHW1FrY6vGHaEabk0hIJ/b1Kp1rc9Jydnd08Cs744WCeUTV6VU5s51J7xG9hlEnH1gqKVyGGDTZN8opWnU9ulzHVHnj9mEQ18jwVj

anOI58945DD4cG3jMCAXqA2kyJJScUjEcbHe8pFPfS8AMkAoUK5XAzuiXhjQKNIGPzSUSYE8bg8NWjsU

m

fV6bz2oFMiZB1G1pZJfPHS14QVAKw88U6qeENJ1naMyfTGRRVfJfeOIqgBiFED+RotbUzXasc9T/vj+UT+9FdvWw3RZ3O7np8U+3iyPIe2mQIwC0kQhdykNGfWoRYMJ8yaMAjnzkBRmFM6isaYGALXpMb8+u

WZAxy2xFJddLgiwr6sStcIF8ltDio3gsaxUb23ite5rMJC/PZZ3JnChdIbMZH2ujFmuE2Iu9c5uBgAxWjI8IxkeXFf/PsI3Ncu2Cg==

Response array=Array

(

[VPSProtocol] => 2.22

[status] => 3DAUTH

[statusDetail] => 2007 : Please redirect your customer to the ACSURL, passing the MD and PaReq.

[3DSecureStatus] => OK

[MD] => 2012253471906431670

[ACSURL] => https://ukvpstest.protx.com/mpitools/access...er?action=pareq

[PAReq] => eJxVUttSgzAQffcrGD6AJEApdLbp9OKMHW1FrY6vGHaEabk0hIJ/b1Kp1rc9Jydnd08Cs744WCeUTV6VU5s51J7xG9hlEnH1gqKVyGGDTZN8opWnU9ulzHVHnj9mEQ18jwVj

anOI58945DD4cG3jMCAXqA2kyJJScUjEcbHe8pFPfS8AMkAoUK5XAzuiXhjQKNIGPzSUSYE8bg8NWjsU

m

fV6bz2oFMiZB1G1pZJfPHS14QVAKw88U6qeENJ1naMyfTGRRVfJfeOIqgBiFED+RotbUzXasc9T/vj+UT+9FdvWw3RZ3O7np8U+3iyPIe2mQIwC0kQhdykNGfWoRYMJ8yaMAjnzkBRmFM6isaYGALXpMb8+u

WZAxy2xFJddLgiwr6sStcIF8ltDio3gsaxUb23ite5rMJC/PZZ3JnChdIbMZH2ujFmuE2Iu9c5uBgAxWjI8IxkeXFf/PsI3Ncu2Cg==

[debug] => 1

)

 

curl_error=

---------------------------------------------------

 

hi tom

 

I am getting this error in my protx account, seems to its not getting the url of 3dsecure. I has not change any thing in the code.. every thing according to your newer version. But every time what ever card type i am using , it always pop up this same message.

Edited by wontonesaju

Share this post


Link to post
Share on other sites

and also if i will disable the 3dsecure then it only showing

 

StatusDetail=0000 : The Authorisation was Successful.

 

 

but its not redirecting to successfully paid or checkout out completion page.

 

i have installed this module in creloaded 6.2

Edited by wontonesaju

Share this post


Link to post
Share on other sites

i have also checked that during the non secure 3d, it correctly passes and process the order . Response=ok but i am not getting the final page ..it stuck here..

 

Request URL=https://ukvpstest.protx.com/vspgateway/service/vspdirect-register.vsp

Data string sent=VPSProtocol=2.22&TxType=PAYMENT&Vendor=elasticretail&VendorTxCode=7036-92141544790988295823947150752977&Amount=19.70&Currency=GBP&Description=Order+Number%3A+7036&CardHolder=saju+gopal&CardNumber=4929000000006&StartDate=&ExpiryDate=0512&IssueNumber=&CV2=123&CardType=VISA&BillingAddress=a-39+tagore+garden+extn%2C%0D%0A%2C%0D%0Anew+delhi%2C%0D%0Aindia%2C%0D%0AIndia&BillingPostCode=110027&DeliveryAddress=a-39+tagore+garden+extn%2C%0D%0Anew+delhi%2C%0D%0Aindia%2C%0D%0AIndia&DeliveryPostCode=110027&CustomerName=saju+gopal&ContactNumber=828282828&CustomerEMail=saju.g%40wontonetech.com&ClientIPAddress=122.162.140.99&Basket=4%3ASterling+Silver+Heart+Clasp+Charm+Bracelet%3A1%3A17.50%3A0.00%3A17.50%3A17.50%3AVelveteen+Gift+Bag+%28+Choice+of+Colour+%29%3A1%3A0.00%3A0.00%3A0.00%3A0.00%3ACharm+-+Choice+of+6+%28+Please+Click+to+see+selection+%29%3A1%3A0.00%3A0.00%3A0.00%3A0.00%3AShipping%3A1%3A2.2%3A----%3A2.2%3A2.2&AccountType=E&Apply3DSecure=2

Protx response=VPSProtocol=2.22

Status=OK

StatusDetail=0000 : The Authorisation was Successful.

VPSTxId={CF71A86E-08AD-F6A0-B272-B9C57BA2D27E}

SecurityKey=GILOVLLNST

TxAuthNo=4007779

AVSCV2=SECURITY CODE MATCH ONLY

AddressResult=NOTMATCHED

PostCodeResult=NOTMATCHED

CV2Result=MATCHED

3DSecureStatus=NOTCHECKED

Response array=Array

(

[VPSProtocol] => 2.22

[status] => OK

[statusDetail] => 0000 : The Authorisation was Successful.

[VPSTxId] => {CF71A86E-08AD-F6A0-B272-B9C57BA2D27E}

[securityKey] => GILOVLLNST

[TxAuthNo] => 4007779

[AVSCV2] => SECURITY CODE MATCH ONLY

[AddressResult] => NOTMATCHED

[PostCodeResult] => NOTMATCHED

[CV2Result] => MATCHED

[3DSecureStatus] => NOTCHECKED

[debug] => 1

 

my order is passing it without the 3secure...

 

I may guess some thing having a issue with the url...some where in the code....

Share this post


Link to post
Share on other sites
i have installed this module in creloaded 6.2

 

I doubt that the module is compatible with CREloaded without being re-written

Edited by perfectpassion

Share this post


Link to post
Share on other sites
I doubt that the module is compatible with CREloaded without being re-written

 

 

yes its working fine the only thing is

 

you know when we have 3dsecure there is a form comes with 3 hidden field thats is it. this form is not coming and producing the status :2000 error.

 

the last one is if i will disable the 3dsecure , then it showing the authorization=ok but there is no last page coming.

 

it seems to me some issue ....

 

the website url is there in my last post, now i only have to do is just to configure it with my customise code, but i am not having a time thats why i used your countribution module.

Share this post


Link to post
Share on other sites
Not having any experience with CRELoaded I'm afraid I can't offer any support using this module with it

 

Success :

 

Tom you want the creloaded version 6.2 of your code.

 

I used some little tweak and its successfully taken the order, but i have disable the 3dsecure from the protx but a little tweaks i have done in the ->

 

protx_direct.php

template/content/checkout_confirmation.tpl.php

 

 

your ajax page was great once it successfully done it closes the model window and showing the success page.

 

My modification was not big but the guy who know structure then he can easily implement your code, well.

 

i will write you in details and also give you the creloaded 6.2 version of your code if you require (:

 

regards

Saju

Share this post


Link to post
Share on other sites

tom

 

here is the site link for you to test

 

http://backup.elasticretail.com/mainwebsit...talog/index.php

 

but i think a normal user or any other end users cant install this easily in creloaded untill and unless he know the structure of creloaded 6.2

 

but your code is good, and i think we can implment it more for zen cart and creloaded 6.2

 

Currently there is only one protx mods available for creloaded 6.2 which cost is around 250pound. (:

 

buzz me i will share the file with you....

 

nothing big change i have done....but only a little things i have added.

 

its also working in 3dsecure. so i am happy.

 

Regards

Saju

Share this post


Link to post
Share on other sites

Tom,

 

I've not managed to get this working yet with my modified site, but I haven't been able to spend too long on it yet, i hope to at the weekend.

 

Can you confirm the checkout process for me in this update? Does checkout_payment exist anymore?

 

Currently I have a combined checkout_shipping and checkout_Payment page and then it goes to checkout_confirmation. I need to revert back to basics so what comes now after checkout_shipping?

 

Thanks

 

Dave

Share this post


Link to post
Share on other sites

checkout_payment still exists but customers simply select the payment method on it they do not enter the card details at that point - they are entered on checkout_confirmation.

 

On clicking confirm a new layer appears that processes the payment / 3D-Secure then directs to checkout_process as normal

 

HTH,

Tom

Share this post


Link to post
Share on other sites
checkout_payment still exists but customers simply select the payment method on it they do not enter the card details at that point - they are entered on checkout_confirmation.

 

Ahh ok, so there's no reason why that option shouldn't still appear in my existing set up really, as it currently displays that option and then the card details below.

 

Thanks Tom

Share this post


Link to post
Share on other sites

Hi Tom,

 

I have this working to a fashion at the moment. A couple of questions for you.. :)

 

Adding this breaks my stylesheet

<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">

for some reason it doesn't like the 'body' style so my page is just white. How important is it for this to be in place?

 

Secondly is it possible to change the location of the layer which appears when pressing confirm? At the moment it appears off screen at the top.

 

Lastly, just a suggestion really, when a customer selects maestro for example, would it be possible to keep the entries in tradional order? e.g start date, expiry date, issue number and then cvv rather than cvv > expiry > start date > issue number?

 

All the best

 

Dave

Share this post


Link to post
Share on other sites

Unfortunately the thickbox won't work without a valid DOCTYPE (it doesn't have to me HTML Transitional but it has to be valid) - the default doctype in the osC files is invalid. If using a valid doctype breaks your page then that means your page is non compliant - you should be striving to have all your pages w3c compliant which the standard osC files aren't

 

Run your pages against http://validator.w3.org

 

The position of the layer is done automatically and should be centered on your page - if it isn't then it is likely to be due to the issues just mentioned.

 

Regarding the order of the fields that is certainly something I will look at for the next update.

Share this post


Link to post
Share on other sites

Hi Tom,

 

doh... all it was that was causing the problem was a missing # infront of the background colour. All works now!

 

Just to let you know, incase anyone else has the problem, that I had clash with an existing script in my header that displayed different image on each page load. It caused all fields to show and stopped the layer from appearing. I removed that script and it now works fine.

 

Thanks for your help

 

Dave

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×