0
votes

I'm trying to perform transaction using Sagepay Server API. I've properly setup by simulator vendor account and also added the IP address. Still im getting the following error

Sage Pay returned an MALFORMED status. The POST was Malformed because "Simulator cannot find your vendor name. Ensure you have have supplied a Vendor field with your Vendor name assigned to it."

Here is my POST request data

[VPSProtocol] => 2.23
[TxType] => PAYMENT
[Currency] => GBP
[Vendor] => curiouslabx
[NotificationUrl] => http://localhost:8080/numberplate/sagepay_notification
[Description] => Purchase of number plate AU59STG
[AllowGiftAid] => 0
[ApplyAVSCV2] => 0
[Apply3DSecure] => 0
[Profile] => NORMAL
[AccountType] => E
[Amount] => 700.00
[success_url] => http://localhost:8080/numberplate/payment/payment_status/success/
[failure_url] => http://localhost:8080/numberplate/payment/payment_status/failure/
[BillingFirstnames] => test
[BillingSurname] => test
[BillingAddress1] => test
[BillingAddress2] => test
[BillingCity] => testtest
[BillingPostCode] => test
[BillingCountry] => test
[BillingState] => test
[BillingPhone] => test
[DeliveryFirstnames] => test
[DeliverySurname] => test
[DeliveryAddress1] => test
[DeliveryAddress2] => test
[DeliveryCity] => testtest
[DeliveryPostCode] => test
[DeliveryCountry] => test
[DeliveryState] => test
[DeliveryPhone] => test
[VendorTxCode] => 14-04-30-20-10-53-572086512

I'm using sagepay server library for codeigniter https://github.com/ollierattue/codeigniter-sagepay-server/

1
I can see that transactions are reaching your simulator account now using FORM (yesterday/today). Your vendor name is valid within Simulator. Ensure you are using the correct SimulatorURL test.sagepay.com/Simulator/… You would get the error if there was no Simulator account generated of the vendor name was incorrect.Sage Pay Support
The same vendor name works with FORM but not SERVER!casper123
With Server the SuccessURL, FailureURL are n/a (FORM only) as when we respond via the Notification URL you'll at that stage provide a RedirectURL in your acknowledgement post. The BillingState/DeliveryState should be 2 characters (ISO code). Needs to be a https post request, sent to the intial Sage Pay Payment URL (as above). The details should be encodede Name=Value fields and separated by '&' characters. Also ensure casing is correct per field. Re the vendor name not being found, send a ShowPost to Sage Pay. Change the Payment/Transaction Registration URL to the Showpost URL. We'll be able >Sage Pay Support
>> to see what it is you are sending. Showpost URL is test.sagepay.com/showpost/showpost.asp as if we are not recognising the vendor name, and as checked, you have Server ticked in your account settings in Simulator account you should be able to post a successful server integration (as long as you are sending it in the same order as we recommend in the protocol guide. Try VPSProtocol, then TxType, then Vendor, then VendorTxCode and so on ...). Make sure your IP is added to Simulator account and ports 443 and 80 are also open for later on in the integration process.Sage Pay Support
Make sure you are sending the correct Content-Type header: application/x-www-form-urlencoded. The array of data, put into the POST body, must be URL encoded. The error reported often means the gateway cannot parse the POST body at all, so there is something wrong with the POST as a whole.Jason

1 Answers

0
votes

If you are using the Simulator, things are in a bad way anyway. It does not support protocol 3.00 - your will need to integrate at this level, or your integration will cease to function on 31/7/15