Setting up an account with PayPal.
Click
here to create an account with PayPal.
Ecommerce Templates offers two
methods for hooking up with PayPal Website Payments Pro. The three
token method is
the simpler of the two. If you do run into any issues with the
integration, please check out our PayPal troubleshooting section. UK
based merchants should follow the help here.
Using the three token authentication for Paypal
Website Payments Pro
Version 5.1 saw the introduction of the three
token authentication system for PayPal Payment Pro. This method
is much more "shared hosting friendly" than the API
certificate method described above.
- Log in to your PayPal account and click on Profile.
- In the left hand "Account Information" column
click "API Access".
- Click on "Request API Credentials", check "API
Signature", agree to the terms and press Submit.
- Enter the API Username, API Password and Signature into
the payment providers admin page for PayPal Direct / PayPal
Pro.
- Select "API Method" as "API Signature".
- In includes.php you will need to set the path
to your ssl certificate.
- That should be all you have to do.

Setting
up Paypal Website Payments Pro with the API Certificate method
You will require the Ecommerce Plus version 4.9.2 or higher.
You can check the version you are running by logging
into your store control panel and the number will appear at the
top of the first page. If you are running an earlier version
then the latest updater will always be available here for
download.
These are the configuration steps you will need to take:
- Log in to your PayPal account
- Go to Profile -> API Access -> API Certificate Request
- You will need to fill in the application for the certificate
request. It may take some time for you to be granted this certificate.
- The certificate you receive from Paypal will have a .txt extension
so you will need to rename that to .pem ie. cert_key_pem.txt ->
cert_key.pem
- As part of the signup process, an “account name” will
be suggested for the certificate. This will be of the form “user_api1.yoursite.com”.
You will also be required to create a password for the certificate.
You are strongly recommended for security reasons to NOT use
your PayPal login password. Create a new password.
- When you receive your certificate you will need to save it
to your webserver. Make sure that for security reasons you save
the certificate OUTSIDE the web root. This means that nobody
can download the certificate by entering it’s URL in their
web browser.
- PayPal Payments Pro - Direct Payment is a system where the credit card
number is taken on your site. Because of this you must have your
own SSL setup and set the pathtossl parameter in includes.php so
that the credit card details are entered over a secure connection.
- Now log in to your ecommerce plus template admin section, click
on the payment providers admin page and enter the following information
for PayPal Direct.
API Account Name: (Such as user_api1.yoursite.com)
API Password: The password you created above.
Path to certificate : The full path to the certificate on your server. For instance
/user/websites/yoursite.com/certificate.pem
Please note that for security reasons this path should be outside your web
root. That way your certificate can’t be downloaded by someone entering
the path to the certificate in their web browser.
Transaction Type: Authorize only or Authorize / Capture.

Advanced
Tip
In your cart.php page, above the opening HTML tab you should have
some lines of PHP like this . . .
<?php
session_cache_limiter('none');
session_start(); ?>
When using PayPal Payments Pro it helps if you have “output
buffering” turned on. To do this, just make sure you have
the ob_start() directive which you can add like this . . .
<?php
session_cache_limiter('none');
session_start();
ob_start(); ?>
This step is optional, but it does mean that when using Express
Checkout the transition between your site and the PayPal server
will be smoother. 
Notes for UK based merchants
PayPal don't support UK accounts via their
standard PayPal Pro interface but they do via their PayFlow
Pro interface. The details for setting this up are on this page.
In the setup, for the "Partner" you
would enter PayPalUK. The user id and vendor would both be
your API account name such as info_api1.yoursite.com and the
password your API account password.

Using
the PayPal Sandbox (demo mode)
You can put PayPal into Demo Mode on the ecommerce plus template
payment provider admin section, but this will involve using the
PayPal “Sandbox” as here . . . https://www.sandbox.paypal.com/
This would mean creating a separate sandbox email login, password
and certificate request. (Sandbox certificates are assigned immediately).
When testing your PayPal account using the PayPal sandbox you
may find the usual test credit card number (4111111111111111) doesn’t
work correctly. If you follow the instructions below this should
help you generate a test credit card number that is compatible
with the PayPal sandbox.
- Login into your Sandbox Account
- Click on Add Credit Card under Profile section
- Then use the CC information to make a payment as a non-PayPal
account. Just Don't click on 'Add Card' button. Copy the number
down, once you leave the page, the number is gone.

Troubleshooting
If you receive this error on thanks.php:
"I'm sorry, there was a problem with your transaction.
Transaction Result: Direct Payment has been disabled on this account.
Transaction has not been processed."
...then make sure you have agreed to the PayPal Billing Agreement
at https://www.paypal.com/us/cgi-bin/webscr?cmd=_wp-pro-overview
If you get this error when hitting the checkout button:
Fatal error: Call to undefined function: curl_init()
... it probably means that the cURL component is not installed on your server.
cURL is required for connecting to the PayPal server. PayPal Pro requires communication
over a secure (HTTPS) connection and cURL is the only way to do it really. if
it's not available, check with your host to see if they would add it. It's quite
simple, free and there are details here . . .
http://www.php.net/manual/en/function.curl-init.php
An alternative is provided for those that don't have cURL compiled
into PHP, but where the host provides cURL on the command line.
To use this feature you need to set the path to the cURL binary
on your server in the parameter $pathtocurl in your vsadmin/includes.php
file. For instance...
$pathtocurl="/usr/local/curl";
This was introduced in version 4.3.0, and if that line doesn't appear in your
includes.php file, you can add it to the list.
If you get this error. . .
SSL: error:14094418:SSL routines:func(148):reason(1048)
Then the problem is having PayPal Direct in demo mode, but a
non-demo mode certificate and vice-versa
- If you need your customer to provide a phone number then
in your PayPal Profile go to Website Payment Preferences -> Contact
Telephone Number
...and set it to "On (Required Field)"

AVS
and CVV Checking and codes
Do check these codes and make a decision accordingly of whether
to ship the order
- AVS codes
A Address Address only (no ZIP)
B International “A” Address only (no ZIP)
C International “N” None
D International “X” Address and Postal Code
E Not allowed for MOTO (Internet/Phone)
transactions
Not applicable
F UK-specific “X” Address and Postal Code
G Global Unavailable Not applicable
I International Unavailable Not applicable
N No None
P Postal (International “Z”) Postal Code only (no Address)
R Retry Not applicable
S Service not Supported Not applicable
U Unavailable Not applicable
W Whole ZIP Nine-digit ZIP code (no Address)
X Exact match Address and nine-digit ZIP code
Y Yes Address and five-digit ZIP
Z ZIP Five-digit ZIP code (no Address)
All
others
Error Not applicable
- CVV codes
M Match CVV2
N No match None
P Not Processed Not applicable
S Service not Supported Not applicable
U Unavailable Not applicable
X No response Not applicable
All
others
Error Not applicable

Please do read our guide here on credit
card fraud.
For more information, rates and support, please visit the PayPal
website.
|