
All we wish to do is verify the card details before we take payment. A prime example being the expiry date of the card. I appreciate that payment gateways differ, but we are doing a simple request to Paypal Web Payments Pro and we get nothing back that would imply an error with completely invalid card details.
Example Code Snippet:-
Code: Select all
if (authTx != null && authTx.TransactionStatus == TransactionStatus.Successful)
{
//SEND THE CUSTOMER TO THE RECEIPT PAGE
// Debug Messages
Response.Write("<h1>AuthorizationCode=" + authTx.AuthorizationCode + "<br />ResponseCode=" + authTx.ResponseCode + "<br />AVS=" + authTx.AVSResultCode + "<br />CAVResultCode=" + authTx.CAVResultCode + "<br />CVVResultCode=" + authTx.CVVResultCode + "<br />IsDirty=" + authTx.IsDirty + " TransactionStatus=" + authTx.TransactionStatus + "<br />TransactionType=" + authTx.TransactionType + "</h1>");
Why is this the case? TransactionStatus.Successful for:-
- Any CC that matches the formula
- Any Billing Address
- Any CVV number
- Any expiry date!
Most the time the response would be:-
AuthorizationCode=(A valid code)
ResponseCode=PENDING (Fine)
AVS= Nothing
ResponseMessage = Nothing
CAVResultCode= Nothing
CVVResultCode = M (This happens regardless of the numbers we put in? Paypal says that it will return the correct error on the sandbox)
IsDirty = false
TransactionStatus = Successful
TranscationType = Authorize
So this happens on my own valid Visa card. It also happens with this test card:-
Card: 4366843303086261
08/2018
BUT, if we use this test card:-
5555555555554444 we get
TransactionStatus = Fail
Incorrect billing address (10759)
This is the only card (a test card given by Paypal) that does a fail??
I must stress that by trying this in code, or using the controls that come with Able, we get the same issue.
Along with the null exceptions for standard paypal we are experiencing, this is costing us lots of development time that should be handled entirely for us by the Ablecommerce system. Like many others we have purchased the software to do this stuff for us. I would very much appreciate an answer why this is not functioning as it should.
Thank you