Commerce PayPal
Everything you need to accept payments online
PayPal is the faster, safer way to pay and get paid online, via mobile devices and in stores. With more than 123 million active accounts in 190 markets and 25 currencies around the world, PayPal enables global commerce.
This project integrates PayPal into the Drupal Commerce payment and checkout systems. It currently supports off-site payment via PayPal Payments Standard (WPS) and PayPal Express Checkout (EC), off-site or on-site payment via PayPal Payments Advanced (PPA) and Payflow Link (PFL), and on-site credit card payment via PayPal Payments Pro (WPP). The PayPal WPS / EC integration supports PayPal's Instant Payment Notifications (IPNs) to react to authorizations, captures, voids, and refunds with full logging for testing and debugging.
We recently added PayPal Credit support on top of the Express Checkout integration to enable merchants to extend financing opportunities to their customers.
The full integration for PayPal Express Checkout, PayPal Payments Advanced, and Payflow Link was added in the 2.x version of the module and has been verified by PayPal. There is no upgrade path for the 1.x branch, so it has been discontinued. Additionally, this module deprecates the third party project(s) attempting to extend this module for EC support.
Sponsored by Commerce Guys.
Supported payment methods
This project includes a base module that defines some helper functions and a listener for PayPal IPNs. Each payment method offered by PayPal is enabled via its own module:
-
PayPal Payments Standard (WPS) - Register an account | View documentation
Redirects from checkout to PayPal and includes IPN support for authorizations during checkout, prior authorization captures, authorizations plus capture during checkout ("Sale"), voids, and refunds. -
PayPal Payments Pro (WPP) - Register an account | View documentation
Supports authorization and authorization plus capture during checkout ("Sale"). Authorization only transactions can be captured on the site or at PayPal with IPN support coming in the next release candidate to mark pending authorization transactions as complete locally that were captured at PayPal. -
PayPal Express Checkout (EC) - Register an account | View documentation
Redirects from the cart form or checkout form to PayPal for hosted checkout and payment, updating the order upon return. The basic EC feature set is available for review in the 2.x version of this module. This should be used instead of the standalone EC modules. -
PayPal Payments Advanced (PPA) / Payflow Link (PFL) - Register a PPA accountRegister a PFL account | View documentation
These are functionally equivalent, facilitating on-site payment via PayPal or credit card through an iframe integrated into the checkout process. The primary difference between the two is that PPA is U.S. only and uses PayPal as the merchant account provider while PFL works internationally and lets the merchant use another merchant account provider. A comprehensive integration is available for review in the 2.x version of this module.
Additional payment methods may be added in subsequent branches. If you'd like to see a specific payment method supported, check the issue queue to ensure it hasn't already been requested before opening a new feature request. Recurring billing support using PayPal's native recurring solution will not be incorporated into this module.
Note: as of April 2012, PayPal's service names and integration requirements have changed. As of right now, the modules still refer to PayPal Payments Standard as Website Payments Standard and PayPal Payments Po as Website Payments Pro. However, the configuration and code for these modules is up to date with the most recent versions of their APIs. The labels of these services will be updated in the 2.x branch along with Express Checkout integration.
Frequently Asked Questions
- What do I need to configure in my PayPal profile to use this module?
- Do I need to configure the IPN settings in my PayPal profile?
- What can I do if IPNs are failing?
- What URL do I use for auto return from PayPal Payments Standard?
- Why isn't my currency shown in the currency select list?
Note: you will only receive IPNs from PayPal if you do your testing on a public web server to which PayPal can actually POST notifications. Installations on your localhost or behind HTTP authentication will not be accessible by PayPal, so your PayPal WPS payments will never appear on your orders.
Development notes
If you have unanswered questions about how PayPal's services work or want to contribute to the development of this project, you can find PDF guides and HTML resource pages for every PayPal service on their developer network. Before requesting a feature or code change, please ensure it is supported by PayPal and provide a link to the documentation backing up your request. Thanks!
If your PayPal API requests are failing due to SSL certificate verification, refer to the comments in the cURL request preparation of commerce_paypal_api_request() to read how to specify a local CA certificate bundle file.
Multiple solutions
If you already have a merchant account from your financial institution, PayPal connects it with a gateway solution to receive payments online. If you don't, PayPal's all-in-one payment solutions let you accept credit cards, PayPal payments, and PayPal Credit orders.
Sell in fewer steps
Gone are the days of waiting to get paid: Now you can request a secure payment in a few clicks. When it's that easy, you both get what you want faster. All someone needs to start buying from you is your e-mail address or mobile number.
Safer with every transaction
Automatic fraud screening blocks malicious attempts, while our Seller Protection (for U.S. sellers) covers you for the full amount of the payment on eligible sales. And since PayPal is PCI-compliant, your task of meeting standards is much simpler.