Làm cách nào để tạo cổng thanh toán PayPal bằng PHP?

PayPal là một doanh nghiệp thương mại điện tử quốc tế của Mỹ cho phép thanh toán và chuyển tiền được thực hiện thông qua Internet. PayPal là cổng thanh toán phổ biến nhất để gửi và nhận thanh toán trên toàn thế giới. PayPal là cổng thanh toán được sử dụng rộng rãi để chấp nhận thanh toán trong ứng dụng web. Cổng thanh toán PayPal là tùy chọn dễ dàng nhất để nhà phát triển web triển khai hệ thống thanh toán trên trang web

Cổng thanh toán tiêu chuẩn PayPal là cách nhanh nhất để chấp nhận thanh toán trực tuyến. Người mua có thể thực hiện thanh toán từ trang web để mua một mặt hàng trực tuyến. Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách tích hợp cổng thanh toán tiêu chuẩn PayPal trong PHP và lưu trữ dữ liệu giao dịch trong cơ sở dữ liệu bằng PayPal IPN. Hướng dẫn từng bước của chúng tôi về tích hợp cổng thanh toán PayPal bằng PHP giúp bạn dễ dàng tích hợp tính năng thanh toán trực tuyến vào dự án web của mình

Trong tập lệnh mẫu, chúng tôi sẽ triển khai chức năng sau để minh họa quy trình tích hợp Cổng thanh toán PayPal

  • Lấy sản phẩm từ cơ sở dữ liệu và liệt kê trên trang web bằng nút Mua PayPal
  • Nút Mua chuyển hướng người mua đến trang PayPal để hoàn tất thanh toán
  • Sau khi thanh toán, người mua sẽ chuyển hướng trở lại trang web và chi tiết thanh toán sẽ được hiển thị
  • Dữ liệu giao dịch được lưu trữ trong cơ sở dữ liệu thông qua PayPal IPN

Trước khi bắt đầu tích hợp API cổng thanh toán PayPal trong PHP, hãy xem cấu trúc tệp

paypal_integration_php/
├── config.php
├── dbConnect.php
├── index.php
├── success.php
├── cancel.php
├── ipn.php
├── css/
│   └── style.css
└── images/

PayPal có hai môi trường như Sandbox và Real Time. PayPal Sandbox cho phép các nhà phát triển thực hiện giao dịch thử nghiệm trước khi dự án đi vào hoạt động. Môi trường thời gian thực được sử dụng sau khi dự án hoạt động trên máy chủ sản xuất. Sau khi quy trình thanh toán PayPal hoạt động bình thường trên môi trường Hộp cát, bạn có thể đặt cổng thanh toán PayPal cho môi trường Thời gian thực

Tạo tài khoản PayPal Sandbox

Trước khi bắt đầu chấp nhận thanh toán từ người mua qua PayPal, cổng thanh toán cần được kiểm tra. Để kiểm tra quá trình giao dịch, bạn cần tạo tài khoản hộp cát PayPal

  • Truy cập trang Nhà phát triển PayPal và đăng nhập vào tài khoản PayPal của bạn. Nếu bạn không có bất kỳ tài khoản PayPal nào, hãy đăng ký tài khoản PayPal trước
  • Sau khi đăng nhập, bạn sẽ được chuyển hướng đến trang chủ của nhà phát triển. Bây giờ hãy nhấp vào liên kết Bảng điều khiển từ menu điều hướng trên cùng
  • Nhấp vào liên kết Tài khoản bên dưới nhãn Hộp cát từ bảng menu bên trái
  • Tạo tài khoản người mua và tài khoản người bán từ liên kết Tạo tài khoản. Đối với tài khoản người mua, bạn cần chọn nút radio Cá nhân trong phần Loại tài khoản hoặc chọn nút radio Doanh nghiệp cho tài khoản người bán

Bạn có thể làm theo hướng dẫn chi tiết về cách tạo tài khoản PayPal Sandbox từ hướng dẫn này – Tạo tài khoản thử nghiệm PayPal Sandbox và tài khoản chuyên nghiệp thanh toán trên trang web

Tạo bảng cơ sở dữ liệu

Để lưu trữ thông tin sản phẩm và thanh toán, cần tạo hai bảng trong cơ sở dữ liệu

SQL sau đây tạo một bảng

CREATE TABLE `products` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(200) 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' COMMENT '1=Active | 0=Inactive',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
0 trong cơ sở dữ liệu MySQL để lưu trữ dữ liệu sản phẩm

CREATE TABLE `products` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(200) 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' COMMENT '1=Active | 0=Inactive',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

SQL sau đây tạo một bảng

CREATE TABLE `products` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(200) 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' COMMENT '1=Active | 0=Inactive',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
1 trong cơ sở dữ liệu MySQL để lưu trữ dữ liệu giao dịch do PayPal cung cấp

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

Cài đặt PayPal và Cấu hình cơ sở dữ liệu (config. php)

Trong tệp

CREATE TABLE `products` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(200) 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' COMMENT '1=Active | 0=Inactive',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
2, các biến cố định của cài đặt cơ sở dữ liệu và PayPal được xác định

Hằng số PayPal

  • PAYPAL_ID – Chỉ định email của tài khoản PayPal Business
  • PAYPAL_SANDBOX – Chỉ định xem bạn có sử dụng môi trường Hộp cát hay không (TRUE/FALSE)
  • PAYPAL_RETURN_URL – Chỉ định URL nơi người mua sẽ được chuyển hướng sau khi thanh toán
  • PAYPAL_CANCEL_URL – Chỉ định URL nơi người mua sẽ được chuyển hướng sau khi hủy thanh toán
  • PAYPAL_NOTIFY_URL – Chỉ định URL nơi dữ liệu giao dịch sẽ được gửi để xác minh thông qua PayPal IPN
  • PAYPAL_CURRENCY – Chỉ định mã tiền tệ

Hằng cơ sở dữ liệu

  • DB_HOST – Chỉ định máy chủ cơ sở dữ liệu
  • DB_USERNAME – Chỉ định tên người dùng cơ sở dữ liệu
  • DB_PASSWORD – Chỉ định mật khẩu cơ sở dữ liệu
  • DB_NAME – Chỉ định tên cơ sở dữ liệu
/*
 * PayPal and database configuration
 */

// PayPal configuration
define('PAYPAL_ID', 'Insert_PayPal_Business_Email');
define('PAYPAL_SANDBOX', TRUE); //TRUE or FALSE

define('PAYPAL_RETURN_URL', 'http://www.example.com/success.php');
define('PAYPAL_CANCEL_URL', 'http://www.example.com/cancel.php');
define('PAYPAL_NOTIFY_URL', 'http://www.example.com/ipn.php');
define('PAYPAL_CURRENCY', 'USD');

// Database configuration
define('DB_HOST', 'MySQL_Database_Host');
define('DB_USERNAME', 'MySQL_Database_Username');
define('DB_PASSWORD', 'MySQL_Database_Password');
define('DB_NAME', 'MySQL_Database_Name');

// Change not required
define('PAYPAL_URL', (PAYPAL_SANDBOX == true)?"https://www.sandbox.paypal.com/cgi-bin/webscr":"https://www.paypal.com/cgi-bin/webscr");

Kết nối cơ sở dữ liệu (dbConnect. php)

File

CREATE TABLE `products` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(200) 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' COMMENT '1=Active | 0=Inactive',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
3 dùng để kết nối cơ sở dữ liệu bằng PHP và MySQL

________số 8_______

Sản phẩm (chỉ số. php)

Ban đầu, tất cả các sản phẩm được lấy từ cơ sở dữ liệu và được liệt kê trên trang web

  • Nút Mua ngay PayPal được đặt với mỗi sản phẩm
  • Để sử dụng cổng thanh toán tiêu chuẩn PayPal, bạn cần gửi biểu mẫu với một số biến trường biểu mẫu PayPal HTML được xác định trước
  • Theo dõi các thẻ nhận xét () để biết về các trường ẩn biểu mẫu

Thanh toán thành công (thành công. php)

Sau khi thanh toán thành công trên PayPal, người mua được chuyển hướng đến trang này

  • Dữ liệu giao dịch được lấy từ URL bằng phương thức PHP $_GET
  • Chèn/Cập nhật thông tin thanh toán vào cơ sở dữ liệu dựa trên ID giao dịch
  • Các chi tiết thanh toán được hiển thị trên trang web
// Include configuration file
include_once 'config.php';

// Include database connection file
include_once 'dbConnect.php';

// If transaction data is available in the URL
if(!empty($_GET['item_number']) && !empty($_GET['tx']) && !empty($_GET['amt']) && !empty($_GET['cc']) && !empty($_GET['st'])){
    // Get transaction information from URL
    $item_number = $_GET['item_number'];
    $txn_id = $_GET['tx'];
    $payment_gross = $_GET['amt'];
    $currency_code = $_GET['cc'];
    $payment_status = $_GET['st'];

    // Get product info from the database
    $productResult = $db->query("SELECT * FROM products WHERE id = ".$item_number);
    $productRow = $productResult->fetch_assoc();

    // Check if transaction data exists with the same TXN ID.
    $prevPaymentResult = $db->query("SELECT * FROM payments WHERE txn_id = '".$txn_id."'");

    if($prevPaymentResult->num_rows > 0){
        $paymentRow = $prevPaymentResult->fetch_assoc();
        $payment_id = $paymentRow['payment_id'];
        $payment_gross = $paymentRow['payment_gross'];
        $payment_status = $paymentRow['payment_status'];
    }else{
        // Insert tansaction data into the database
        $insert = $db->query("INSERT INTO payments(item_number,txn_id,payment_gross,currency_code,payment_status) VALUES('".$item_number."','".$txn_id."','".$payment_gross."','".$currency_code."','".$payment_status."')");
        $payment_id = $db->insert_id;
    }
}
?>

Your Payment has been Successful

Payment Information

Reference Number:

Transaction ID:

Paid Amount:

Payment Status:

Product Information

Name:

Price:

Your Payment has Failed

Back to Products

Hủy thanh toán (cancel. php)

Nếu người mua muốn hủy thanh toán tại trang thanh toán PayPal, người mua sẽ được chuyển hướng đến trang này

Your PayPal Transaction has been Canceled

Back to Products

Định cấu hình Chuyển dữ liệu thanh toán và trả lại tự động PayPal

Đảm bảo bạn đã định cấu hình Tự động hoàn trả cho Thanh toán trên trang web trên tài khoản doanh nghiệp PayPal của mình. Nếu không, bạn sẽ không nhận được thông tin giao dịch từ PayPal trong tệp

CREATE TABLE `products` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(200) 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' COMMENT '1=Active | 0=Inactive',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
4. Xem hướng dẫn sau để bật Tự động trả lại, Chuyển dữ liệu thanh toán và đặt URL trả lại trên tài khoản PayPal của bạn

Thiết lập thông báo thanh toán tức thì PayPal (IPN)

Để đảm bảo an toàn cho Thanh toán tiêu chuẩn PayPal, hãy xác thực giao dịch bằng Thông báo thanh toán tức thì của PayPal (IPN). Thực hiện theo các bước bên dưới để thiết lập IPN trong tích hợp cổng thanh toán tiêu chuẩn PayPal

Bật IPN
Để sử dụng tính năng này, IPN phải được bật trong tài khoản PayPal. Chúng tôi đã xuất bản hướng dẫn từng bước để bật IPN trong PayPal, vui lòng xem hướng dẫn bên dưới

Thêm thông báo URL trong biểu mẫu PayPal
Thêm trường nhập sau (

CREATE TABLE `products` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(200) 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' COMMENT '1=Active | 0=Inactive',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
5) HTML cùng với các Biến HTML PayPal khác

Xác thực giao dịch
Khi IPN được bật, PayPal sẽ gửi dữ liệu giao dịch đến URL thông báo (

CREATE TABLE `products` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(200) 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' COMMENT '1=Active | 0=Inactive',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
6). Đặt mã sau vào tệp
CREATE TABLE `products` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(200) 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' COMMENT '1=Active | 0=Inactive',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
7 để xác thực giao dịch và chèn thông tin thanh toán vào cơ sở dữ liệu

// Include configuration file
include_once 'config.php';

// Include database connection file
include_once 'dbConnect.php';

/*
 * Read POST data
 * reading posted data directly from $_POST causes serialization
 * issues with array data in POST.
 * Reading raw POST data from input stream instead.
 */
$raw_post_data = file_get_contents('php://input');
$raw_post_array = explode('&', $raw_post_data);
$myPost = array();
foreach ($raw_post_array as $keyval) {
    $keyval = explode ('=', $keyval);
    if (count($keyval) == 2)
        $myPost[$keyval[0]] = urldecode($keyval[1]);
}

// Read the post from PayPal system and add 'cmd'
$req = 'cmd=_notify-validate';
if(function_exists('get_magic_quotes_gpc')) {
    $get_magic_quotes_exists = true;
}
foreach ($myPost as $key => $value) {
    if($get_magic_quotes_exists == true && get_magic_quotes_gpc() == 1) {
        $value = urlencode(stripslashes($value));
    } else {
        $value = urlencode($value);
    }
    $req .= "&$key=$value";
}

/*
 * Post IPN data back to PayPal to validate the IPN data is genuine
 * Without this step anyone can fake IPN data
 */
$paypalURL = PAYPAL_URL;
$ch = curl_init($paypalURL);
if ($ch == FALSE) {
    return FALSE;
}
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
curl_setopt($ch, CURLOPT_SSLVERSION, 6);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);

// Set TCP timeout to 30 seconds
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: Close', 'User-Agent: company-name'));
$res = curl_exec($ch);

/*
 * Inspect IPN validation result and act accordingly
 * Split response headers and payload, a better way for strcmp
 */
$tokens = explode("\r\n\r\n", trim($res));
$res = trim(end($tokens));
if (strcmp($res, "VERIFIED") == 0 || strcasecmp($res, "VERIFIED") == 0) {

    // Retrieve transaction info from PayPal
    $item_number    = $_POST['item_number'];
    $txn_id         = $_POST['txn_id'];
    $payment_gross     = $_POST['mc_gross'];
    $currency_code     = $_POST['mc_currency'];
    $payment_status = $_POST['payment_status'];

    // Check if transaction data exists with the same TXN ID
    $prevPayment = $db->query("SELECT payment_id FROM payments WHERE txn_id = '".$txn_id."'");
    if($prevPayment->num_rows > 0){
        exit();
    }else{
        // Insert transaction data into the database
        $insert = $db->query("INSERT INTO payments(item_number,txn_id,payment_gross,currency_code,payment_status) VALUES('".$item_number."','".$txn_id."','".$payment_gross."','".$currency_code."','".$payment_status."')");
    }

}
?>

Lưu ý rằng. Sau khi thiết lập PayPal IPN hoàn tất, mã chèn cơ sở dữ liệu không cần thiết trong tệp

CREATE TABLE `products` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(200) 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' COMMENT '1=Active | 0=Inactive',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
4

Làm cho cổng thanh toán PayPal hoạt động

Khi quá trình kiểm tra luồng thanh toán của ứng dụng hoàn tất, bạn nên đặt cổng thanh toán PayPal hoạt động

trong cấu hình. tập tin php,

  • Chỉ định email của tài khoản doanh nghiệp PayPal trong
    CREATE TABLE `products` (
     `id` int(11) NOT NULL AUTO_INCREMENT,
     `name` varchar(200) 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' COMMENT '1=Active | 0=Inactive',
     PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    9
  • Đặt
    CREATE TABLE `payments` (
     `payment_id` int(11) NOT NULL AUTO_INCREMENT,
     `item_number` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
     `txn_id` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
     `payment_gross` float(10,2) NOT NULL,
     `currency_code` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
     `payment_status` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
     PRIMARY KEY (`payment_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    0 thành FALSE
define('PAYPAL_ID', 'Insert_PayPal_Business_Email');
define('PAYPAL_SANDBOX', FALSE);

Tích hợp cổng thanh toán PayPal Pro bằng PHP

Phần kết luận

Cổng thanh toán tiêu chuẩn PayPal là cách dễ dàng nhất để chấp nhận thanh toán trên ứng dụng web. Với tập lệnh mẫu của chúng tôi, bạn có thể dễ dàng tích hợp API thanh toán PayPal trên trang web. Để làm cho quy trình thanh toán trở nên thân thiện với người dùng, bạn có thể tích hợp PayPal Express Checkout để thanh toán trực tuyến

Bạn có muốn nhận trợ giúp triển khai hay sửa đổi hoặc nâng cao chức năng của tập lệnh này không?

Làm cách nào để tạo cổng thanh toán của riêng bạn bằng PHP?

Cách tích hợp cổng thanh toán với cửa hàng trực tuyến của bạn bằng PHP .
Bước 1. Tạo biểu mẫu HTML để thu thập thông tin nguồn thanh toán của khách hàng. .
Bước 2. Tạo mã thông báo để truyền dữ liệu được mã hóa một cách an toàn. .
Bước 3. Cho phép gửi biểu mẫu cùng với thông tin thanh toán. .
Bước 4. Xác minh và xác thực các khoản phí

Cổng thanh toán nào tốt nhất cho PHP?

Stripe là một trong những giải pháp cổng thanh toán thân thiện với nhà phát triển nhất hiện có, với các thư viện API dành cho nhà phát triển cho PHP, Ruby, Python, Java, Node. js, đi,. NET, iOS và Android, với tải xuống hoặc cài đặt trực tiếp qua Trình soạn thảo cho PHP.

Bạn có thể sử dụng PayPal làm cổng thanh toán không?

Cổng thanh toán là phần mềm hỗ trợ, xử lý và/hoặc ủy quyền thông tin ngân hàng hoặc thẻ tín dụng cho các nhà bán lẻ trực tuyến. Nó giúp đảm bảo rằng khách hàng có tiền để thanh toán cho sản phẩm để bạn, chủ cửa hàng, được trả tiền. PayPal là một ví dụ về cổng thanh toán phổ biến trong thương mại điện tử .

Làm cách nào để tích hợp cổng thanh toán PayPal trong Laravel?

Cách tích hợp cổng thanh toán Paypal trong Laravel 8 .
Bước 1. Cài đặt ứng dụng Laravel mới. .
Bước 1. Tạo dự án mới trong laravel. .
Bước 2. Cấu hình cơ sở dữ liệu. .
Bước 3. Cài đặt Gói cho Cổng thanh toán Paypal bằng Composer. .
Bước 4. cấu hình paypal. tập tin php. .
Bước 5. Tạo tuyến đường. .
Bước 6. Tạo bộ điều khiển