Paypal Checkout API with PHP and JavaScript

Applies to:
  • PayPal OAuth2.0 API v1
  • PayPal Checkout API v2

What?
This is an article on how to build a shopping cart and get your website to accept payments via PayPal. The below isn't a final or perfect option, it's an article to help me document and refine a process.

Why?
It appears that gone are the days when sending a payment via PayPal used to be a basic HTML form. There are probably a ton of other articles out there that document PayPal Checkout REST API v2 as well, I just want to build my own that I can understand and update.

I've chosen the API method because according to PayPal's instructions you don't have to install any additional software/framework. Ideal in my opinion.

How?
This code has been built to work alongside jQuery but it could be adapted to a pure JS solution.

High Level Recap
JavaScript » Cookie » PHP

1. Client Side JS to create Cart
2. Validate Cart with PHP on Checkout
3. Confirm Transaction with PHP and JS

I need to often be reminded of how to calculate a percentage.  The context here is that I want a progress bar in one of my programs.


To determine what percent a number is of a total number:
(Progress So Far / Total Progress Units) * 100 = %
or
(Net Amount / Gross Amount) * 100 = %

eg. (12 steps / 30 steps) * 100 = 40%   ie. 12 steps of 30 is 40% progress
eg. ($8 / $10) * 100 = 80%              ie. $8 of $10 is 80%


This happened to a m8s website in VirtueMart 1.1.3. The issue here was that although all the prices lost their float/decimal and were rounded up to the nearest integer...  

At first we thought this was due to installing a Virtuemart UK Credit Card Payment Module (vm-ukcreditcard). A lot of forums were suggesting to change the number_format to convert any number to a currency or two decimal places. Another suggestion was to alter the main virtuemart database table (jos_vm_prodcut_price)...

Don't do any of these things!

After modifying tax rates and ensuring these were all the same, we also found that this was due to a country not being specified under the Store configuration within VirtueMart.


To setup your store to use SSL (Secure Socket Layer) you will first need an SSL certificate. Many hosting companies will either provide (or can offer) "Shared SSL" or the option to buy a "Dedicated SSL" certificate.

Shared SSL means that your store will run using two domains your master domain name and shared secure domain which may be used by other customers of your hosting company.
Dedicated SSL means that you will have your own SSL certificate which enable you to run your store on one domain using http and https.


Related Articles

Joes Revolver Map

Joes Word Cloud

form   page   report   note   script   code   files   error   need   database   list   table   find   site   time   used   google   added   windows   copy   select   search   following   would   mysql   program   file   server   work   website   could   data   first   zoho   system   date   display   source   name   version   using   content   license   value   solution   user   joomla   parameter   where   uploaded   JoelLipman.Com

Accreditation

Badge - Certified Zoho Creator Associate
Badge - Certified Zoho Creator Associate

Donate & Support

If you like my content, and would like to support this sharing site, feel free to donate using a method below:

Paypal:
Donate to Joel Lipman via PayPal

Bitcoin:
Donate to Joel Lipman with Bitcoin - Valid till 8 May 2022 3QnhmaBX7LQSRsC9hh6Je9rGQKEGNQNfPb
© 2021 Joel Lipman .com. All Rights Reserved.