Jump to content


Corporate Sponsors


Latest News: (loading..)

* * * * * 12 votes

PayPal WPP Direct Payments & Express Checkout Support


4281 replies to this topic

#4101 webr

  • Community Member
  • 3 posts
  • Real Name:Rik Weber

Posted 15 February 2010, 17:08

Has anybody successfully processed a Switch / Maestro payment with 3D secure? I'm still getting 12000: "Transaction is not compliant due to missing or invalid 3D-Secure authentication values" errors.

#4102 crimble crumble

  • Community Member
  • 282 posts
  • Real Name:Smoky
  • Location:Earth

Posted 17 February 2010, 20:11

I've had a few customers who when checking out via PayPal get a message stating that the country in their address is one I don't offer service to. I can't seem to track down this bug. It's very rare. Here is a recent note of a customer who had a problem.

Quote

Trying to check out getting message that the country in my address which is the US is one you don't offer service to. I do not understand since I've ordered from you before.

I'm using version v1.0.7a

Edited by crimble crumble, 17 February 2010, 20:15.


#4103 dynamoeffects

  • Community Member
  • 1,646 posts
  • Real Name:Brian Burton
  • Gender:Male
  • Location:Italy

Posted 18 February 2010, 08:57

@webr: Yes, I've personally installed the new version with 3DSecure support on a few client websites and it works fine. You might need to contact Cardinal about enabling Maestro payments for your account because I did have one client that it had been disabled on.

@crimble crumble: If the country code that is sent back by PayPal isn't found in the countries table in your database, the payment is denied. The reason is that the way store owners can limit where they ship to is by deleting countries from the database so the module will not allow Express Checkout customers to create accounts if they're not in one of those countries.

Check in your admin under Locations / Taxes -> Countries and make sure that your customer's country is there. If it is, edit it and ensure that the country code is correct as well.
Please use the forums for support! I am happy to help you here, but I am unable to offer free technical support over instant messenger or e-mail.

#4104 crimble crumble

  • Community Member
  • 282 posts
  • Real Name:Smoky
  • Location:Earth

Posted 18 February 2010, 21:18

View Postdynamoeffects, on 18 February 2010, 08:57, said:

@crimble crumble: If the country code that is sent back by PayPal isn't found in the countries table in your database, the payment is denied. The reason is that the way store owners can limit where they ship to is by deleting countries from the database so the module will not allow Express Checkout customers to create accounts if they're not in one of those countries.

Check in your admin under Locations / Taxes -> Countries and make sure that your customer's country is there. If it is, edit it and ensure that the country code is correct as well.

In this particular case the customer was from the united states where I am based and ship most my orders. Apparently the country code returned from PayPal didn't match the one in my database. Perhaps this particular customer had multiple addresses associated with his PayPal account and had the wrong address selected on the PayPal site. I can't think of any other reason this would happen. It has only happened twice in my last 200 transactions.

#4105 SteveDallas

  • Community Member
  • 719 posts
  • Real Name:Glen
  • Gender:Male
  • Location:Alabama, US

Posted 19 February 2010, 22:41

View Postwebr, on 15 February 2010, 17:08, said:

Has anybody successfully processed a Switch / Maestro payment with 3D secure? I'm still getting 12000: "Transaction is not compliant due to missing or invalid 3D-Secure authentication values" errors.

I believe that this issue will occur if you do not replace the file catalog/includes/paypal_wpp/xml/doDirectPayment.xml with the one from v1.0.9. Please check that it is the latest version and let us know if that fixes it.

The new file is 3387 bytes; the old one was 3355 bytes.

--Glen

#4106 col_b

  • Community Member
  • 25 posts
  • Real Name:col_b

Posted 21 February 2010, 15:41

View PostSteveDallas, on 19 February 2010, 22:41, said:

I believe that this issue will occur if you do not replace the file catalog/includes/paypal_wpp/xml/doDirectPayment.xml with the one from v1.0.9. Please check that it is the latest version and let us know if that fixes it.

The new file is 3387 bytes; the old one was 3355 bytes.

--Glen

I installed 1.0.9 today and 3d secure is working fine. The whole thing is working pretty much straight out of the box.

I just have one small thing to fix:

1) customer doesn't receive confirmation order email

if anyone can give me a quick heads up on this then that would be great.

Thanks for a great contrib!

#4107 dynamoeffects

  • Community Member
  • 1,646 posts
  • Real Name:Brian Burton
  • Gender:Male
  • Location:Italy

Posted 22 February 2010, 17:23

Glen, since your fix is now confirmed to work I'm going to revert the URL escaping portion back to your code and then release a new version.
Please use the forums for support! I am happy to help you here, but I am unable to offer free technical support over instant messenger or e-mail.

#4108 natureguy

  • Community Member
  • 45 posts
  • Real Name:Bruce

Posted 22 February 2010, 20:48

I am having trouble with credit card orders after I added super download shop add-on. I am not sure if it might be an actual payment issue. I am unable to get any help from the support page for that add-on, and am really stuck. I am hoping since it is payment related, someone on here might understand the issue. It doesn't seem to be related to the download shop add-on files, but I was able to receive credit card orders before I installed the add-on. Upon order confirmation, checkout_process.php comes up with a blank error page with the following:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 'paypal_wpp', '', ' at line 18

INSERT INTO orders_status_history_transactions ( `orders_status_history_id`, `transaction_id`, `transaction_type`, `payment_type`, `payment_status`, `transaction_amount`, `module_code`, `transaction_avs`, `transaction_cvv2`, `transaction_msgs` ) VALUES ( 32, '', '', '', '', , 'paypal_wpp', '', '', '' )

[TEP STOP]


Just before 'paypal_wpp', there is a blank in between commas, where the value of 'transaction_amount' should be. I have no idea where to even find this line 18 of code to be able to even look at it and change it. Can anyone offer any help where I might find this line of code and what should be between the commas? This error has been driving me crazy for weeks. Thanks!

#4109 dynamoeffects

  • Community Member
  • 1,646 posts
  • Real Name:Brian Burton
  • Gender:Male
  • Location:Italy

Posted 22 February 2010, 22:54

Two big issues I note right off the bat:

1) Why is there no transaction ID? Is the transaction being recorded as successful?

2) Check your currency values in the admin. If either of them are zero, that would explain why you have no order total amount.
Please use the forums for support! I am happy to help you here, but I am unable to offer free technical support over instant messenger or e-mail.

#4110 SteveDallas

  • Community Member
  • 719 posts
  • Real Name:Glen
  • Gender:Male
  • Location:Alabama, US

Posted 23 February 2010, 00:18

View Postcrimble crumble, on 18 February 2010, 21:18, said:

In this particular case the customer was from the united states where I am based and ship most my orders. Apparently the country code returned from PayPal didn't match the one in my database. Perhaps this particular customer had multiple addresses associated with his PayPal account and had the wrong address selected on the PayPal site. I can't think of any other reason this would happen. It has only happened twice in my last 200 transactions.

Check the state name in the customer's address book record. If it is the two letter code, and not the full state name, that may be the problem. Most versions prior to v1.0.6 stored the zone code instead of the zone name in the state field of the order table, and Express Checkout customers had their two letter state abbreviation stored in the address book instead of (or in addition to) the zone ID number. This can cause the code I added in v1.0.6 to get confused and return a blank state. (This happened to one or two of my customers and was kind of hard to track down.) I can't remember exactly what the error message was; I thought it was "pick a state" or something like that, not a "we don't ship to your country" error. I have a fix:

In catalog/includes/modules/payment/paypal_wpp.php, find this text around line 369:
            } else {
              $this->away_with_you(MODULE_PAYMENT_PAYPAL_DP_TEXT_STATE_ERROR);
            }
Insert this code AFTER the the text above:
          } else {
		    $the_state = $state;

I will commit this fix to github later this evening.

--Glen

#4111 natureguy

  • Community Member
  • 45 posts
  • Real Name:Bruce

Posted 23 February 2010, 00:57

Well, I ended up figuring my issue out. I got the idea of running wpp_diagnostics.php just for the heck of it. I didn't think this issue was even related, but it found that the old bug in checkout_process wasn't fixed anymore after installing the Super Download Shop Controller. It was due to poor instructions from that add-on using really old files. I fixed the line of code and all is working great now. Thank God for wpp_diagnostics!!

View Postdynamoeffects, on 22 February 2010, 22:54, said:

Two big issues I note right off the bat:

1) Why is there no transaction ID? Is the transaction being recorded as successful?

2) Check your currency values in the admin. If either of them are zero, that would explain why you have no order total amount.


#4112 col_b

  • Community Member
  • 25 posts
  • Real Name:col_b

Posted 23 February 2010, 16:01

Guys,

After installing 1.0.9 the other day I'm doing a load of testing on it in localhost before I even think about letting it loose on a live site.

So today I tested a Maestro payment, but deliberately used a different address to the one associated with the card. So the transaction should've failed.

3D secure worked fine.

The transaction went thru, I landed on checkout_success.php which obviously gave my default text - your order is being processed. There was no 'transaction failed' screen / text. The transaction wasn't recorded in PayPal. The order was recorded in the backend of the store, but with the following details:

Transaction Type: AUTHORIZATION
Payment Type: NONE
Payment Status: NONE
AVS Code: Error
CVV2 Code: Error

No email came from paypal. So as far as the customer would've been concerned, the order and transaction was successful. But it actually wasn't.

So, is there something I'm missing here? Just wondered if anyone had any thoughts.

Cheers,
Col

#4113 dynamoeffects

  • Community Member
  • 1,646 posts
  • Real Name:Brian Burton
  • Gender:Male
  • Location:Italy

Posted 23 February 2010, 16:22

@col_b: Set "Cardinal Centinel: Only Accept Chargeback Protected Orders" to true in the module's settings.
Please use the forums for support! I am happy to help you here, but I am unable to offer free technical support over instant messenger or e-mail.

#4114 Dangermouse

  • Community Member
  • 19 posts
  • Real Name:Tony
  • Gender:Male

Posted 23 February 2010, 16:29

View Postdynamoeffects, on 23 February 2010, 16:22, said:

@col_b: Set "Cardinal Centinel: Only Accept Chargeback Protected Orders" to true in the module's settings.
is this what should be set for all of us?

#4115 col_b

  • Community Member
  • 25 posts
  • Real Name:col_b

Posted 23 February 2010, 16:54

View Postdynamoeffects, on 23 February 2010, 16:22, said:

@col_b: Set "Cardinal Centinel: Only Accept Chargeback Protected Orders" to true in the module's settings.

Thanks for the quick response.

Can you explain a bit more about what will this actually do? I'm just trying to get a handle on the actual process & what's happening.

Cheers,
Col

Edited by col_b, 23 February 2010, 17:01.


#4116 dynamoeffects

  • Community Member
  • 1,646 posts
  • Real Name:Brian Burton
  • Gender:Male
  • Location:Italy

Posted 24 February 2010, 08:15

It was just a thought, it shouldn't have any direct relevance on that specific behavior. If the payment completed, that means that it received a "Success" response but why it wasn't recorded, I'm not sure. Setting "Only Accept Chargeback Protected Orders" to "No" means that cards which are eligible but not enrolled in SecureCode or Verified by Visa are not accepted since they won't be covered by the chargeback protection.

I'd need to see the request/response from your DoDirectPayment call.

Find this line:
$final_req = $this->wpp_execute_transaction('doDirectPayment', $order_info);

and below it add this:

tep_mail(STORE_OWNER, 
 	STORE_OWNER_EMAIL_ADDRESS, 
 	'PayPal DoDirectPayment Transaction', 
 	"Request: " . $this->last_data . "\r\n\r\n" . 
 	"Response:" . print_r($final_req, true), 
 	STORE_OWNER, 
 	STORE_OWNER_EMAIL_ADDRESS);

Then attempt the exact same transaction you did before with the incorrect address. You'll receive an email containing the details of that transaction that you'll need to clean to remove any sensitive information and then send to me on PM.
Please use the forums for support! I am happy to help you here, but I am unable to offer free technical support over instant messenger or e-mail.

#4117 col_b

  • Community Member
  • 25 posts
  • Real Name:col_b

Posted 24 February 2010, 09:53

View Postdynamoeffects, on 24 February 2010, 08:15, said:

It was just a thought, it shouldn't have any direct relevance on that specific behavior. If the payment completed, that means that it received a "Success" response but why it wasn't recorded, I'm not sure. Setting "Only Accept Chargeback Protected Orders" to "No" means that cards which are eligible but not enrolled in SecureCode or Verified by Visa are not accepted since they won't be covered by the chargeback protection.

I'd need to see the request/response from your DoDirectPayment call.

Find this line:
$final_req = $this->wpp_execute_transaction('doDirectPayment', $order_info);

and below it add this:

tep_mail(STORE_OWNER, 
 	STORE_OWNER_EMAIL_ADDRESS, 
 	'PayPal DoDirectPayment Transaction', 
 	"Request: " . $this->last_data . "\r\n\r\n" . 
 	"Response:" . print_r($final_req, true), 
 	STORE_OWNER, 
 	STORE_OWNER_EMAIL_ADDRESS);

Then attempt the exact same transaction you did before with the incorrect address. You'll receive an email containing the details of that transaction that you'll need to clean to remove any sensitive information and then send to me on PM.

ok, so i tried the above.

Tried it with a Visa transaction, rather than maestro, with the wrong address. This time it went thru though. Email received from paypal confirming transaction, transaction recorded in Paypal, transaction recorded in backend of store.

I didn't receive an email after putting the suggested code in. Maybe I put it in the wrong place; I put it in catalog/includes/modules/payment/paypal_wpp at ~line 1591.

I now don't have access to the maestro card that failed before, so I can't test it. I wonder then if this is just a maestro issue?

On a somewhat separate note, I noted this during the 3D secure process:

Undefined index: blank in C:\wamp\www\catalog\includes\paypal_wpp\paypal_wpp_3ds.php on line 2

It appeared in the header during 3Dsecure, and then in the main conetent page during the authorisation stage. Refers to this:

if ($_GET['blank'] == '1') die('<html></html>');

Cheers.

Edited by col_b, 24 February 2010, 09:54.


#4118 dynamoeffects

  • Community Member
  • 1,646 posts
  • Real Name:Brian Burton
  • Gender:Male
  • Location:Italy

Posted 24 February 2010, 16:03

It's just a warning that it's checking the value of a GET variable that doesn't exist. It doesn't affect the behavior of the module.

Are you testing this on the Cardinal Centinel sandbox or on their live server?

Edited by dynamoeffects, 24 February 2010, 16:04.

Please use the forums for support! I am happy to help you here, but I am unable to offer free technical support over instant messenger or e-mail.

#4119 col_b

  • Community Member
  • 25 posts
  • Real Name:col_b

Posted 24 February 2010, 18:48

View Postdynamoeffects, on 24 February 2010, 16:03, said:

It's just a warning that it's checking the value of a GET variable that doesn't exist. It doesn't affect the behavior of the module.

Are you testing this on the Cardinal Centinel sandbox or on their live server?

Testing on live server.

#4120 dynamoeffects

  • Community Member
  • 1,646 posts
  • Real Name:Brian Burton
  • Gender:Male
  • Location:Italy

Posted 24 February 2010, 21:02

Ok in that code I sent you earlier to email you the details of the transaction, change "STORE_OWNER_EMAIL_ADDRESS" to just your email address so that it looks like:

tep_mail(STORE_OWNER, 
 	'YOUR@EMAILADDRESS.COM', 
 	'PayPal DoDirectPayment Transaction', 
 	"Request: " . $this->last_data . "\r\n\r\n" . 
 	"Response:" . print_r($final_req, true), 
 	STORE_OWNER, 
 	'YOUR@EMAILADDRESS.COM');

If that still doesn't work, your spam filter might be catching it. If so use a mailinator.com address like: colb@mailinator.com and check it by going to www.mailinator.com

Please use the forums for support! I am happy to help you here, but I am unable to offer free technical support over instant messenger or e-mail.