News:

You may pay someone to create your store, or you visit our seminar and become a professional yourself with the silver certification

Main Menu

Fixed? PayPal Website Payments Pro

Started by Comenius, February 15, 2006, 05:13:38 AM

Previous topic - Next topic

Comenius

Pam,

I noticed those log files too and also thought they were pretty weird.  I downloaded the whole archive from the PayPal Developer website, though, so I figured they were the correct files.  In fact, you can sign up for a PayPal Developer account (it's free) and go through their WPP integration guide.  That's where you'll find the link for them.

Anyhoo, sorry I don't have any solid leads!

-David

Pam1234

Hi David,

Ah well. Strange stuff!

Anyway I think I *might* know what the problem is! Or at least it WILL be a problem! When I go to check out, there is no CVV blank. I understand that this is required. Where do I find that in the admin area to enable it? It's not showing under PayPal Website Pro configuration.

Pam

Pam1234

OK now I'm just being a pest but the plot thickens. The CVV yes/no option is in the configuration for PayPal Website Payments Pro, it is set to "yes," but it is not showing up for the customer.

Don't know if this is a VM issue or something else. I looked in the database and couldn't find any clues.

Pam

koltz

The ws_ftp.log file is nothing to be concerned with.  They just used ws_ftp to upload/download the files.  Other files won't see them unless it is specifically listed in the code.  My biggest problem I think when I installed originally was all the Joomla warnings (same in Mambo), I didn't have them all correct like Global Registers.  I made sure everything was 100% on my reinstall.

Corey

Comenius

Hi Pam,

I must admit I hacked the Yes/No CVV thing a bit to get it to work, so it might be a bit flakey to set it from the Admin backend.  To make sure it's set correctly, open up your ps_pdp.cfg.php file and make sure you have the following:

define ('PDP_CHECK_CARD_CODE', 'YES');

That should make the CVV field show up during checkout.  It definitely has to be there, as PayPal won't accept the card without it.

-David

koltz

Make sure EVERYTHING(like shown above) is all capitals as I have found out :)  I had YES like Yes, and the software didn't see it and wouldn't show the line and ignored it.

Pam1234

Well guys, thanks... you fixed the CVV part. At first I was so excited. Unfortunately it's still making me go... ACK! As in getack()! Same error. I'll keep plugging away at it.  ;)

Pam

Pam1234

Just read in other thread that you must have SSL. Well I was getting around to that but don't have it yet. Could THAT cause the error?

Pam

Comenius

Pam,

I don't think so.  I'm not using SSL and it's working just fine.

-David

Pam1234

So bummed about this. Can't find what's wrong.

I've been testing in "sandbox" mode. In ps_pdp.cfg.php it looks like this:

define ('PDP_MODE', 'Sandbox');

That is apparently what happens when you choose "test_mode" from the acp. I have a Sandbox acct set up. I thought maybe I'd try it "live" to see if that works. Unfortunately, if I try to switch to "live_mode," it doesn't "take." ps_pdp.cfg.php is chmod 777 and I'm not getting an error when I try to update.

So now the question is, since I can't update it automatically, and if I want to update it directly, what should that "define" line look like? (e.g., what should be there instead of 'Sandbox')

Next question:

The list of requirements on this page include:

PEAR::Log
PEAR::Net_Url
PEAR::Net_Socket
PEAR::HTTP_Request

Is this automatically there when Pear is installed, or is it something different? How do I check for it?

I realize you're just struggling along like me, but if you have any advice at this point I'm still very appreciative.

Pam

Pam1234

Progress!!

Changed the ps_pdp.cfg.php file manually from:

define ('PDP_MODE', 'Sandbox');

to

define ('PDP_MODE', 'LIVE');

Now when I place an order I get errors! Real errors! No more "getack" attacks!

Unfortunately the errors make no sense. Here's what gets spit out:

Quoteobject(errortype)(9) { ["_elements"]=> array(5) { ["ShortMessage"]=> array(3) { ["required"]=> bool(true) ["type"]=> string(6) "string" ["namespace"]=> string(31) "urn:ebay:apis:eBLBaseComponents" } ["LongMessage"]=> array(3) { ["required"]=> bool(false) ["type"]=> string(6) "string" ["namespace"]=> string(31) "urn:ebay:apis:eBLBaseComponents" } ["ErrorCode"]=> array(3) { ["required"]=> bool(true) ["type"]=> string(5) "token" ["namespace"]=> string(31) "urn:ebay:apis:eBLBaseComponents" } ["SeverityCode"]=> array(3) { ["required"]=> bool(true) ["type"]=> string(16) "SeverityCodeType" ["namespace"]=> string(31) "urn:ebay:apis:eBLBaseComponents" } ["ErrorParameters"]=> array(3) { ["required"]=> bool(false) ["type"]=> string(18) "ErrorParameterType" ["namespace"]=> string(31) "urn:ebay:apis:eBLBaseComponents" } } ["_attributes"]=> array(0) { } ["_attributeValues"]=> array(0) { } ["_namespace"]=> string(31) "urn:ebay:apis:eBLBaseComponents" ["ShortMessage"]=> string(37) "The Billing Address State is invalid." ["LongMessage"]=> string(128) "The field Billing Address State is in an invalid format. For US/CA states and territories, enter a valid two letter state code." ["ErrorCode"]=> string(5) "10751" ["SeverityCode"]=> string(5) "Error" ["ErrorParameters"]=> NULL }
Failure in Processing the Payment:

The field Billing Address State is in an invalid format. For US/CA states and territories, enter a valid two letter state code.
Error: Failure in Processing the Payment (ps_pdp)


Failure in Processing the Payment:

The field Billing Address State is in an invalid format. For US/CA states and territories, enter a valid two letter state code.

I've looked at the name/address info. There isn't a "billing address state" field at all, just a zip code. I'm off to search for a solution. Stay tuned!  :)


Pam


Pam1234

Hooray! Hooray! Hooray! Dance with me, people!

QuoteThank you for your order.
Your order has been successfully placed!

A confirmation email has been sent to: my@email.address

And I received both the customer and admin emails! Thanks for putting up with my millions of posts.

Note to any others getting "ack attacks" -- I'm guessing you're in test mode and it's not going through the Sandbox properly. I don't know how to make that work (I tried) but you might benefit from looking at my ps_pdp.cfg.php file. I had to take PayPal Pro live:

<?php
defined
('_VALID_MOS') or die('Direct Access to this location is not allowed.'); 

define ('PDP_USERNAME''username_api1.somesite.com');
define ('PDP_PASSWORD''yourpassword');
define ('PDP_SUBJECT''');
define ('PDP_CERTIFICATE''/home/yoursite/pear/Services/PayPal/cert/cert_key_pem.txt');
define ('PDP_MODE''LIVE'); // Sandbox should be changed here
define ('PDP_CHECK_CARD_CODE''YES');
?>


To test, set up a really cheap product with really cheap shipping since you have to use a real credit card.

Incidentally, as part of my desperate attempt at getting this to work, I wound up installing PEAR outside the site root, as is recommended at the PEAR site. It worked fine. It's supposed to be more secure that way but whether it made a difference as far as functionality I don't know. The important thing is, it worked for me. If anyone wants details, all you have to do is FTP to the directory above public_html or www. Upload pear. Change the path to pear in your .htaccess file. I also stored my store certificate there as you can see above. Done.

I followed Corey's advice and made sure register_globals was off.

So here is the applicable part of my .htaccess file with path to pear and turning register_globals off on a shared host:

php_value include_path ".:/usr/local/lib/php:/home/mysite/pear"
php_flag register_globals off


Finally, if you get errors like I did (previous post) regarding the state billing field, you can change your VM configuration.

Admin -> Configuration -> Global Settings tab. Look for "Frontend Features" and check the box next to "Customers can select a state/region?"

Life is good again!
Pam


Comenius

Pam,

Great news!  Congratulations!  It sure feels good to get it working, doesn't it?   :)

-David

koltz

Hopefully it will be included in the next version of VirtueMart.  Oh and great job you guys.

Corey

fidel

I have attempted to follow instructions as outlined upon this thread and associated links, but am coming up with a blank page.

Although I have manually modified the CVV to show on the front end, I was having an issue with the PDP_MODE and PDP_CHECK_CARD_CODE until I used all caps. Now this seems to be solved.

<?php
defined
('_VALID_MOS') or die('Direct Access to this location is not allowed.'); 

define ('PDP_USERNAME''XXXXXX_api1.XXXXXX.com');
define ('PDP_PASSWORD''XXXXXX');
define ('PDP_SUBJECT''');
define ('PDP_CERTIFICATE''/home/u1/XXXXXX/XXXXXX.com/html/JOOMLA/includes/PEAR/Services/PayPal/cert/cert_key_pem.txt');
define ('PDP_MODE''LIVE');
define ('PDP_CHECK_CARD_CODE''YES');
?>


One place I think I may be going wrong is with the .htaccess file. I am uncertain where I need to referrence the PEAR file or how exactly I must modify it. Would someone be more specific as to what needs to be done here, pleases? Here is what I have:

##
# @version $Id: htaccess.txt 1570 2005-12-29 05:53:33Z eddieajau $
# @package Joomla
# @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
# @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
# Joomla! is Free Software
##

Options +FollowSymLinks

#
#  mod_rewrite in use
#

RewriteEngine On

##
## NOTE!
## When using multiple Joomla sites or other web applications in sub-folders,
## you must explicitly turn the RewriteEngine off or use the settings
## recommended for the application
##

#  Uncomment following line if your webserver's URL
#  is not directly related to physical file paths.
#  Update YourJoomlaDirectory (just / for root)

RewriteBase /home/u1/XXXXXX/XXXXXX.com/html/JOOMLA

#
#  Rules
#

RewriteCond %{REQUEST_FILENAME} !\.(jpg|jpeg|gif|png|css|js|pl|txt)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php


Another reason I may have issues with getting this working is because I do not have the proper permissions set to the proper files and/or folders. If someone be more specific as to what needs to be done here, I should be able to get it going. Thanks for your help.