This module implements PayPal Website Payments Pro which consists of PayPal's Express Checkout and Direct Payment methods. Since it over-writes several checkout files, it is likely to be incompatible with any modifications you have made to your checkout process or any other contributions that modify the checkout process. We hope to enhance it in the future so that it can be installed along side other checkout modifications.
This module does not use the PayPal PHP SDK so the installation is fairly easy.
Legend: 
Download

Report
I receive a few emails a week regarding this, so I want to clear up any confusion about the various versions of the PayPal Pro module that are available.
I don't believe this module is in development any longer, but you have two other options. If you are looking for the community developed version, it is here:
http://www.oscommerce.com/community/contributions,3647
and the support thread is here:
http://forums.oscommerce.com/index.php?showtopic=174981
PayPal's official version, that you'll find in the link posted by jasonabc, is v0.7.3 of the community-developed module found in the link above, with some modifications. 0.7.3 is a stable, but old release and doesn't include features such as order item lists being sent to PayPal, CCGV support, improved error handling, etc.
Also note that since PayPal handles all development of that fork, all support questions regarding it should go to them. Hopefully that clears up any confusion regarding the various versions available.
PayPal have released an official osCommerce contribution for their Website Payment Pro service. I have attached the ZIP here - but it can also be downloaded from the PayPal Tech repository here:
http://paypaltech.com/content/index.php?option=com_remository&Itemid=64&func=select&id=20
This needs a lot more testing, but it appears to work. It will allow the user to process the Paypal transaction using the displayed currency, as long as it is supported by the Paypal API.
The tax is coming out all wrong - so more work is needed there...
Seems like a security risk having the private key used to encrypt the transactions between the web server and PayPal payment server accessible via a web browser. Using the default path if you go to http://www.domain.com/catalog/paypal_wpp/certs/cert_key_pem.txt you will see this key in plain text.
I wasn’t sure where in the code the key file was being read to manually change the path to somewhere outside the “public html” area. Would be nice if we could set the full path for the private key file in OS commerce backend instead of the root beginning at catalog/ I know naming this file with a weird name and maybe under another subfolder of /catalog would make it hard to guess, but I have another quick fix.
My quick fix which worked for me is putting on a single line a PHP exit above the key file text. Of course you need to make this file a .php (or whatever your PHP looks for to parse) for it to work:
<? exit; ?>
-----BEGIN RSA PRIVATE KEY-----
xxxxxx
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
xxxxx
-----END CERTIFICATE-----
This way if someone guesses the path and filename of you key file it will not display, but the OS Commerce module will still read the certificate without problems.
This module implements PayPal Website Payments Pro which consists of PayPal's Express Checkout and Direct Payment methods. Since it over-writes several checkout files, it is likely to be incompatible with any modifications you have made to your checkout process or any other contributions that modify the checkout process. We hope to enhance it in the future so that it can be installed along side other checkout modifications.
This module does not use the PayPal PHP SDK so the installation is fairly easy.