Making Payments Effortless: Laravel and PayPal Integration

Introduction

In today’s fast-paced world, businesses need to provide their customers with quick and effortless payment options. The integration of Laravel with PayPal is one such solution that offers a seamless payment experience. Laravel is a popular PHP framework used to develop web applications, and PayPal is a leading online payment platform that provides businesses with a secure and convenient way to accept payments.

Benefits of Integrating Laravel with PayPal

  1. User-friendly experience: Integrating Laravel with PayPal provides a user-friendly experience for your customers as they can complete transactions without leaving your website.
  2. Increased security: PayPal has a robust security system in place to protect both the business and the customer’s sensitive information.
  3. Increased conversions: With a seamless and secure payment process, customers are more likely to complete transactions, leading to increased conversions for your business.
  4. Easy to set up: Integrating Laravel with PayPal is easy and requires minimal coding.

Step 1: Create a PayPal account

The first step in integrating PayPal with Laravel is to create a PayPal account. If you already have a PayPal account, you can skip this step. To create a PayPal account, follow the steps below:

  1. Visit the PayPal website via this link
  2. Click on the “Sign Up” button.
  3. Select the type of account that best suits your needs.
  4. Fill out the required information, such as your name, address, email, and password.
  5. Click on the “Agree and Create Account” button.
  6. After your account is created follow the link to create a developer account and a merchant application

Step 2: Set up Laravel.

In this step, you will set up Laravel on your local machine or server. To set up Laravel, follow the steps below:

Install the latest version of Laravel.
Create a new Laravel project by running the command “laravel new project_name” in your terminal.
Navigate to the newly created Laravel project by running the command “cd project_name”.

Step 3: Install PayPal packages.

In this step, you will install the PayPal packages that will be used for the integration. To install the PayPal packages, follow the steps below:

Open the terminal and navigate to the root of your Laravel project.
Run the command “composer require paypal/rest-api-sdk-php”.
Once the package has been installed, add the following code to the providers array in your “config/app.php” file: “PayPal\Rest\Api\Payment\PaymentServiceProvider::class”.
Add the following code to the aliases array in your “config/app.php” file: ‘Payment’ => PayPal\Rest\Api\Payment\Facades\Payment::class’.

Step 4: Create a PayPal payment controller and appropriate methods.

In this step, you will create a PayPal payment method in Laravel. To create a PayPal payment method, follow the steps below:

  1. Create a new controller by running the command “php artisan make:controller PayPalController” in the terminal.
  2. In the newly created controller, add the following code:
<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use PayPal\Api\Amount;
use PayPal\Api\Payer;
use PayPal\Api\Payment;
use PayPal\Api\RedirectUrls;
use PayPal\Api\Transaction;
use PayPal\Auth\OAuthTokenCredential;
use PayPal\Rest\ApiContext;

class PayPalController extends Controller
{
    private $_api_context;
    public function __construct()
    {
        $this->_api_context = new ApiContext(
            new OAuthTokenCredential(
                'client_id',
                'secret_id')
        );
        $this->_api_context->setConfig(
            array(
                'mode' => 'sandbox',
                'http.ConnectionTimeOut' => 30,
                'log.LogEnabled' => true,
                'log.FileName' => storage_path('logs/paypal.log'),
                'log.LogLevel' => 'FINE',
            )
        );
    }
    public function createPayment(Request $request)
    {
        $payer = new Payer();
        $payer->setPaymentMethod('paypal');
        $amount = new Amount();
        $amount->setCurrency('USD')
            ->setTotal($request->amount);
        $transaction = new Transaction();
        $transaction->setAmount($amount)
            ->setDescription('Payment for the purchase');
        $redirect_urls = new RedirectUrls();
        $redirect_urls->setReturnUrl(route('paypal.status'))
            ->setCancelUrl(route('paypal.status'));
        $payment = new Payment();
        $payment->setIntent('Sale')
            ->setPayer($payer)
            ->setTransactions(array($transaction))
            ->setRedirectUrls($redirect_urls);
        try {
            $payment->create($this->_api_context);
        } catch (\PayPal\Exception\PPConnectionException$ex) {
            return response()->json(['error' => $ex->getMessage()], 400);
        }
        foreach ($payment->getLinks() as $link) {
            if ($link->getRel() == 'approval_url') {
                $redirect_url = $link->getHref();
                break;
            }
        }
        return response()->json(['paymentID' => $payment->getId(), 'approval_url' => $redirect_url], 200);
    }
    public function executePayment(Request $request)
    {
        $payment_id = $request->paymentID;
        $payment = Payment::get($payment_id, $this->_api_context);
        $execution = new PaymentExecution();
        $execution->setPayerId($request->PayerID);
        try {
            $result = $payment->execute($execution, $this->_api_context);
        } catch (\PayPal\Exception\PPConnectionException$ex) {
            return response()->json(['error' => $ex->getMessage()], 400);
        }
        return response()->json(['payment' => $result], 200);
    }
}

Finally, make sure to create the necessary routes. i.e. all the routes referenced in the controller.

In conclusion, integrating PayPal with Laravel is a straightforward process that requires a few simple steps to get started. With the help of PayPal’s API and the power of Laravel’s framework, making payments has never been easier. Whether you’re an individual seller or a large business, Laravel and PayPal integration can help you streamline your payment process and increase your customer satisfaction.

 

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top
× Let's Chat