Closed (fixed)
Project:
UC Worldpay
Version:
6.x-1.x-dev
Component:
User interface
Priority:
Critical
Category:
Bug report
Assigned:
Unassigned
Reporter:
Created:
10 Mar 2009 at 08:19 UTC
Updated:
12 Jun 2009 at 11:50 UTC
I have had someone run a test purchase through my live site.
They have been diverted off to Worldpay, but once they have paid, the Order Status still shows as 'In Checkout' and that no payment has been taken.
Comments
Comment #1
GavinC commentedI have had a response from Worldpay stating there is no server side script at
/cart/worldpay/completeCan you help asap?
Comment #2
alanburke commentedIf you call
http://YOURSITE.com//cart/worldpay/complete
Do you get anything on screen?
Alan
Comment #3
bloke_zero commentedWhenever I type that in I get:
There was an error with the transaction. The host did not match.
At the moment in test mode sometimes the transaction goes through and sometimes it fails. It all ways works for me (mac firefox 3 / safari) and always fails for my co-developer in another location coming up with that error message.
Need to go live ad only just discovered the problem - any thoughts?
Comment #4
alanburke commentedOdd.
The
just means that the script is at the address and is working.
The error means the request isn't coming from the Worldpay servers and it won't process it.
It stops people from faking a response to your server.
Ask Worldpay for any errors that they are seeing.
Is the IP address resolving properly for them.
Is your server suffering downtime?
Alan
Comment #5
bloke_zero commentedHi Alan,
Thanks for your response.
The issue for me is the system works perfectly for me, but when a couple of other people tested it it came back with the response above. As a test I removed the lines:
And the transaction was completed successfully (obviously this will have security implications so isn't a 'fix').
I would suggest that those lines are catching genuine transactions as well as fake ones. I don't think it's a problem at the Worldpay end as there aren't any issues until they try to return to the site and the transaction is completed as far as they are concerned (I get the authorized transaction email from them).
Also they authorized the site, so perhaps like me, they aren't seeing the error?
It couldn't be anything to do with their recent re-branding as RBS Worldpay could it?
Thanks
Alex
Comment #6
alanburke commentedOk
I looked through the code again.
That piece of code tests that the server that sent the request to Worldpay
is the same server now processing the response from Worldpay
So when processing an order,
there isn't actually a test that it comes from the Worldpay server.
See #367935: Ideas for improvement
One possibility is that the order is being created on
example.com [no www]
and the response is sent to
www.example.com/cart/worldpay/complete [with www].
See it that is causing the issue.
If it is, you can modify the .htaccess file to make the www version the canonical
See the .htaccess file in the root of your drupal installation.
Regards
Alan
Comment #7
bloke_zero commentedHi Alan,
that sounds logical! I'll check it out and report back.
Thanks
Alex
Comment #8
bloke_zero commentedThat was indeed the problem, making www. appear in the URL fixed it - should have known, it's not the first time I've had that sort of problem.
Thanks
Comment #9
alanburke commentedGood stuff.