Codeigniter Paypal Integration Example

Today, We want to share with you paypal integration in codeigniter.In this post we will show you payfast payment gateway integration in codeigniter, hear for razorpay payment gateway integration in codeigniter we will give you demo and example for implement.In this post, we will learn about Paypal Payment Gateway Integration In Php with an example.

Next PayPal Payment Gateway Integration in CodeIgniter

Step 1 : Download Paypal Payment Gateway Library

https://github.com/tutsmake/paypal-payment-gateway-library-for-codeigniter

paypal_lib.php file => will be placed in the application/libraries/ directory
paypallib_config.php file => will be placed in the application/config/ directory.

Step 2 : Create Database Tables

Step 2: items table

CREATE TABLE `items` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
 `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
 `price` float(10,2) NOT NULL,
 `status` tinyint(1) NOT NULL DEFAULT '1',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

payments table

CREATE TABLE `payments` (
 `payment_id` int(11) NOT NULL AUTO_INCREMENT,
 `visitor_id` int(11) NOT NULL,
 `item_id` int(11) NOT NULL,
 `txn_id` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
 `payment_gross` float(10,2) NOT NULL,
 `currency_code` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
 `payer_email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
 `payment_status` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
 PRIMARY KEY (`payment_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Step 3 : Create New Controller

application/controller/paypalController.php

load->library('paypal_lib');
        $this->load->model('item');
        $this->load->database();
    }
     
    function index(){
        $response = array();
        //get items inforamtion from database table
        $response['items'] = $this->item->getProducts();
        //loav view and pass the items information to view
        $this->load->view('items/index', $response);
    }
     
    function buyProduct($id){
        //Set variables for paypal form
        $returnURL = base_url().'paypal/success'; //payment success url
        $failURL = base_url().'paypal/fail'; //payment fail url
        $notifyURL = base_url().'paypal/ipn'; //ipn url
        //get particular item response
        $item = $this->item->getProducts($id);
        $visitorID = 1; //current visitor id
        $logo = base_url().'Your_logo_url';
         
        $this->paypal_lib->add_field('return', $returnURL);
        $this->paypal_lib->add_field('fail_return', $failURL);
        $this->paypal_lib->add_field('notify_url', $notifyURL);
        $this->paypal_lib->add_field('item_name', $item['name']);
        $this->paypal_lib->add_field('custom', $visitorID);
        $this->paypal_lib->add_field('item_number',  $item['id']);
        $this->paypal_lib->add_field('amount',  $item['price']);        
        $this->paypal_lib->image($logo);
         
        $this->paypal_lib->paypal_auto_form();
    }
 
     function paymentSuccess(){
 
        //get the transaction data
        $paymentData = $this->input->get();
           
        $response['item_number'] = $paymentData['item_number']; 
        $response['txn_id'] = $paymentData["tx"];
        $response['payment_amt'] = $paymentData["amt"];
        $response['currency_code'] = $paymentData["cc"];
        $response['status'] = $paymentData["st"];
         
        //pass the transaction response to view
        $this->load->view('paypal/paymentSuccess', $response);
     }
      
     function paymentFail(){
        //if transaction cancelled
        $this->load->view('paypal/paymentFail');
     }
      
     function ipn(){
        //paypal return transaction details array
        $paymentData    = $this->input->post();
 
        $response['visitor_id'] = $paymentData['custom'];
        $response['item_id']    = $paymentData["item_number"];
        $response['txn_id']    = $paymentData["txn_id"];
        $response['payment_gross'] = $paymentData["mc_gross"];
        $response['currency_code'] = $paymentData["mc_currency"];
        $response['payer_email'] = $paymentData["payer_email"];
        $response['payment_status']    = $paymentData["payment_status"];
 
        $paypalURL = $this->paypal_lib->paypal_url;        
        $solution    = $this->paypal_lib->curlPost($paypalURL,$paymentData);
         
        if(preg_match("/VERIFIED/i",$solution)){
            $this->item->storeTransaction($response);
        }
    }
}

Step 4 : Create Paypal Model

application/models/Paypal.php

load->database();
    }

    public function getProducts($id = ''){
        $this->db->select('id,name,image,price');
        $this->db->from('items');
        if($id){
            $this->db->where('id',$id);
            $query = $this->db->get();
            $solution = $query->row_array();
        }else{
            $this->db->order_by('name','asc');
            $query = $this->db->get();
            $solution = $query->result_array();
        }
        return !empty($solution)?$solution:false;
    }
 
    public function storeTransaction($response = array()){
        $insert = $this->db->insert('payments',$response);
        return $insert?true:false;
    }
}

Step 5 : Create View

application/views/items/index.php




  Codeigniter Paypal Integration Example - www.pakainfo.com
  
 
  


  

Products

$

application/views/paypal/paymentSuccess.php




  Transaction Successfull - Codeigniter Paypal Integration Example - www.pakainfo.com

 
  


  

Transaction Detalis

Your payment was successful done, thank you for purchase.
Item Number :
TXN ID :
Amount Paid : $
Payment Status :

application/views/paypal/paymentFail.php




  Transaction Fail - Codeigniter Paypal Integration Example - www.pakainfo.com
 
  


  

Transaction Detalis

Sorry! Your last transaction was cancelled.

Note:- Paypal Payment Gateway Live
So Open the application/config/paypallib_config.php and change the following two configuration values

1. Change the SANDBOX environment to FALSE for make PayPal payment gateway live.

$config['sandbox'] = FALSE;

2.Change the BUSINESS EMAIL with your live PayPal business email.

$config['business'] = '[email protected]';

I hope you get an idea about stripe payment gateway integration in codeigniter .
I would like to have feedback on my infinityknow.com blog.
Your valuable feedback, question, or comments about this article are always welcome.
If you enjoyed and liked this post, don’t forget to share.

Leave a Comment