Jump to content
Sign in to follow this  
dynamoeffects

PayPal WPP Direct Payments & Express Checkout Support

Recommended Posts

Just an idea but if the add charge is only going to work for some customers would it be a good idea to be able to create some sort of charge request for customers who are using the 3DS.

 

So for example in admin you would click create charge, add the amount etc and then an email is sent to the customer with a login link that will take them to a screen where they can fill out their credit card details and pay the charge added by admin.

 

This may also be useful where orders are added manually in admin (something we do a lot) so that customers can pay for these manual orders themselves rather than having to give us their credit card details over the phone or by email etc.

 

Just a thought, i'd be interested to know other peoples thoughts on it.

We use the add charge feature alot also, but not entirely sure that this would work for all customers. I have found that, for some odd reason, some customers dont like to use their card details on a website and would prefer to give them to a stranger they are talking to on a phone. How thats more secure i dont know, but you cant change some peoples perceptions.

 

I would love for this feature to work though, at the moment I am having to log into paypal to use the virtual terminal which is a pain... it means having to log into 2 systems to place 1 order.

 

Tony

Share this post


Link to post
Share on other sites

We use the add charge feature alot also, but not entirely sure that this would work for all customers. I have found that, for some odd reason, some customers dont like to use their card details on a website and would prefer to give them to a stranger they are talking to on a phone. How thats more secure i dont know, but you cant change some peoples perceptions.

 

I would love for this feature to work though, at the moment I am having to log into paypal to use the virtual terminal which is a pain... it means having to log into 2 systems to place 1 order.

 

Tony

 

the idea i had could do with being a seperate option to the system thats in place now.....although that still wouldn't help where people want to give details over the phone in cases where 3DS is required.

 

Virtual terminal wasn't available to us when we set up our payments pro account so we dont have any way to add a charge where 3DS is required at the moment!


Scott

Share this post


Link to post
Share on other sites

As a possible workaround, please test this out:

 

1) Disable the Cardinal Commerce features in the module.

 

2) Click the "Add Charge" button and charge a card that you know would regularly go to 3D Secure.

 

3) Re-enable Cardinal Commerce features and then let us know if the charge went through successfully.


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.

Share this post


Link to post
Share on other sites

As a possible workaround, please test this out:

 

1) Disable the Cardinal Commerce features in the module.

 

2) Click the "Add Charge" button and charge a card that you know would regularly go to 3D Secure.

 

3) Re-enable Cardinal Commerce features and then let us know if the charge went through successfully.

Good idea! i like this thinking the box stuff lol.

 

Yes, it worked other than for a maestro card which is understandable as they now insist on it being through 3DS.

Share this post


Link to post
Share on other sites

Ok in that case I'll re-enable that feature and have it disable the cardinal commerce features and the Maestro card setting. For Maestro cards you'll just need to use the Virtual Terminal.

 

Glen, we're going to need to rethink the RETURN_URL and CANCEL_URL lines because I'm getting new reports that it's not working. I'm hoping that just forcing the SEF URL parameter to false in the tep_href_link() function will fix it.

Edited by dynamoeffects

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.

Share this post


Link to post
Share on other sites

A new version of the module has been uploaded with fixes for the issues in the last version. I also added Glen's html encoding fix and the Transaction ID is now clickable and will take you to the transaction detail page at PayPal.

 

@rrchairman: 3D Secure hasn't been tested with STS yet, but try this fix and let us know how it works. Open the /includes/paypal_wpp/paypal_wpp_3ds.php file and find this line:

 

<!-- body_eof //-->

 

Then BELOW it add this code:

<?php
if (is_object($sts)) {
if ($sts->display_template_output) {
$sts->restart_capture ('content');
}
}
?>

 

But more than likely it will need more than that.

 

Hi,

 

I have tried the code above and it does not change the page. Any other ideas?

Share this post


Link to post
Share on other sites

For those who were experiencing problems with URL formatting, please try this bleeding edge version and let me know if it resolves the issue:

http://github.com/DynamoEffects/paypal-pro-for-oscommerce/zipball/master

 

Just overwrite your /includes/modules/payment/paypal_wpp.php file with the one in the zip file.

 


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.

Share this post


Link to post
Share on other sites

For STS users trying to integrate 3D secure, I've found a workaround that stops the STS template loading.

 

In 'includes/modules/sts/sts_default.php' around line 42:

 

Replace

if (strstr($scriptbasename, "popup")|| strstr($scriptbasename, "info_shopping_cart"))

 

With

if (strstr($scriptbasename, "popup") || strstr($scriptbasename, "info_shopping_cart") || strstr($scriptbasename, "paypal_wpp_3ds"))

Share this post


Link to post
Share on other sites

I've upgraded to the latest version of this module from the oscommerce addons site (4th Feb 2010), and integrated with the Cardinal Centinel, but I'm still having problems with Maestro payments.

 

A customer using a Maestro card will be redirected to the 3D secure page, they enter their details, the message displays saying authentication was successful, but then they are redirected to the payment page saying there was a problem with their payment.

 

According to Paypal the error being returned is 12000: "Transaction is not compliant due to missing or invalid 3D-Secure authentication values".

 

I've been told the request to Paypal is missing the following variables:

<n2:ThreeDSecureRequest>
<n2:MpiVendor3ds>Y</n2:MpiVendor3ds>
<n2:AuthStatus3ds>Y</n2:AuthStatus3ds>
<n2:Cavv>jMKEKlqlJGiJARAbxMDZ5+fnFeg=</n2:Cavv>
<n2:Eci3ds>02</n2:Eci3ds>
<n2:XID>TTVmdlFxbERYVXo5R1hrVUY5bjY=</n2:XID>
</n2:ThreeDSecureRequest>

 

Note that all other card types (Visa, Mastercard, etc.) are using 3D secure with no problems.

 

(p.s. thank you for developing this module!)

Share this post


Link to post
Share on other sites

Would it be possible to support this mod within this one?

 

http://forums.oscommerce.com/topic/202139-contribution-ccgv-trad/

 

I see there is a section in paypal_wpp.php that makes modifications to support CCGV but it's not currently working for me. The dicount shows up fine in the 'Confirmation' page, however, when I look at PayPal it charges the full amount. It does this for both Express and Direct transactions.

Share this post


Link to post
Share on other sites

For those who were experiencing problems with URL formatting, please try this bleeding edge version and let me know if it resolves the issue:

http://github.com/DynamoEffects/paypal-pro-for-oscommerce/zipball/master

 

Just overwrite your /includes/modules/payment/paypal_wpp.php file with the one in the zip file.

Hi, I've just updated the paypal_wpp.php as suggested and turned the SES URL to true and Paypal won't now work. if i can help test other solutiond then please get in touch

 

Thanks

Share this post


Link to post
Share on other sites

Hi Brian and Steve,

 

I have the latest version of PayPal WPP installed (uploaded 2/4/10) and everything checks out in the diagnostics, but

when I try testing a purchase with PayPal Express Checkout (the 'check out with PayPal' button below the shopping cart on shopping_cart.php),

I get the error:

 

Fatal error: Call to undefined function htmlentitydecode() in /home/..../public_html/includes/modules/payment/paypal_wpp.php on line 636

 

And that's referring to this piece of code which was being discussed a short time ago:

 

$order_info['PAYPAL_RETURN_URL'] = htmlspecialchars(htmlentitydecode(tep_href_link(basename($_SERVER['SCRIPT_NAME']),'action=express_checkout', 'SSL')));
     $order_info['PAYPAL_CANCEL_URL'] = htmlspecialchars(htmlentitydecode(tep_href_link($redirect_path, $redirect_attr, 'SSL')));

 

 

Should I revert back to code in an earlier version? I'm using php 5.2.11 and have Ultimate SEO Urls 5 enabled. And this problem happens regardless if SecurityPro is enabled or not.

 

Thanks again for your time,

 

Nick

Edited by longhorn1999

Share this post


Link to post
Share on other sites

Hi Brian and Steve,

 

I have the latest version of PayPal WPP installed (uploaded 2/4/10) and everything checks out in the diagnostics, but

when I try testing a purchase with PayPal Express Checkout (the 'check out with PayPal' button below the shopping cart on shopping_cart.php),

I get the error:

 

 

Nick,

I corrected the syntax in this post. The correct function is html_entity_decode(), not htmlentitydecode().

 

--Glen

Share this post


Link to post
Share on other sites

Nick,

I corrected the syntax in this post. The correct function is html_entity_decode(), not htmlentitydecode().

 

--Glen

 

 

I wasn't sure if there were other changes in the newest upload that might've overrode that particular post. But now it works perfectly...Thanks Glen!

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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!

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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!

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×