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
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

Dickster - August 6, 2009 - 18:40

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

HershelSR - August 9, 2009 - 13:49

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

HershelSR - August 10, 2009 - 14:26

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

Dickster - August 10, 2009 - 14:38

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

HershelSR - August 11, 2009 - 07:55
Status:active» closed

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.

 
 

Drupal is a registered trademark of Dries Buytaert.