Not Connecting to Sagepay it Seems
HershelSR - August 6, 2009 - 12:59
| Project: | SagePay (former Protx) Direct Payment Gateway for Ubercart |
| Version: | 6.x-1.0 |
| Component: | Code |
| Category: | support request |
| Priority: | normal |
| Assigned: | Unassigned |
| Status: | closed |
Jump to:
Description
I have a new D6 site and I am using this module. I have the Vendor Login Name correct I believe. The host is 1&1 in the UK and it's a VPS and so I added the ip address listed on the control panel. If I run
curl -s http://whatismyip.org/
From an ssh shell on the VPS, I get that same IP address as well. But when I attempt to make a transaction I get:
We were unable to process your credit card payment. Please verify your
card details and try again. If the problem persists, contact us to
complete your order.and I don't see any failed transactions at sagepay. Nothing in fact. I also don't see anything on the server error log.
Do you have a suggestion as to how I can debug this?
Thank you.

#1
Have you contacted SagePay? They can run a test their end I think to see if it's connecting OK. Are you using the test server?
#2
I have:
Payment settings: edit
* Payment tracking is enabled.
* Payments can be deleted by users with permission.
* Log payments are being entered to and deleted from the order log.
* Default payment details message is:
Continue with checkout to complete payment.
Payment methods: edit
* Credit card is enabled for checkout.
Payment gateways: edit
* SagePay VSP Direct is enabled.
and in SagePay config I am using Test Server and Transaction type: PAYMENT. I disabled "inline frames for 3D-Secure" and when I check out, I enter my CC data on my site and submit and it never goes to SagePay. It never attempts to connect--it simply remains at my site and gives the error message noted above.
#3
I have traced the code to see what the issue is. If I put:
print_r($response);after
list($response, $http_response_code, $curl_error) = uc_protx_vsp_direct_curl($url, $post);which is line 535 of the module file I get:
Array(
[VPSProtocol] => 2.23
[Status] => INVALID
[StatusDetail] => 3058 : The CardHolder field is required.
)
There is indeed no field on the screen for "CardHolder." If I hard code that field in the code, then it proceeds. I actually realize now that the reason I thought it wasn't connecting was because I was logging into the SagePay live system and it was configured for the Test system. When I set it for Live, then it indeed connects and I see the error in my SagePay transaction listing: "INVALID - 3058 : The CardHolder field is required."
I have temporarily set the CardHolder value to be Billing First Name, space, Billing Last Name and now it works fine.
But why do I not have a CardHolder field in the form?
#4
Under Payment Settings you should have selected 'Enable card owner text field on checkout form.' which is the field for the name that's on the card.
#5
I see. Under "Payment methods" there is a section called "Credit card settings" and in there is a checkbox called "Enable card owner text field on checkout form."
OK, that was fairly easy. :)
Thank you.