Codeigniter 4: Пример интеграции платежного шлюза Stripe
![](/uploads/posts/2022-04/1650486344_codeigniter-4.webp)
В этом руководстве вы узнаете, как интегрировать платежный шлюз Stripe в ваши проекты или приложения на основе Codeigniter 4. Мы постараемся объяснить, как шаг за шагом, интегрировать платежный шлюз Stripe в наш проект на основе Codeigniter 4. Stripe — самый популярный платежный шлюз, интегрированный во многие веб-сайты. Платежная система Stripe проста в интеграции и использовании. Stripe — очень простой, но самый мощный и гибкий инструмент.
Интеграция Stripe Payment в Codeigniter 4
Шаг 1: Загрузите и установите Codeigniter 4
На этом шаге загрузите последнюю версию Codeigniter 4. Перейдите по этой ссылке https://codeigniter.com/download загрузите новую новую установку Codeigniter 4 и разархивируйте установку в вашей локальной системе xampp/htdocs/. И измените имя папки загрузки на «demo».
Шаг 2: Основные конфигурации
Далее вы установите базовую конфигурацию, поэтому давайте перейдем к app/Config/Config.php и откроем этот файл в текстовом редакторе.
Установите базовый URL-адрес следующим образом
public $baseURL = 'http://localhost:8080';
// Замните на:
public $baseURL = 'http://localhost/demo/';
Шаг 3: Настройка учетных данных базы данных
На этом шаге вам нужно подключить наш проект к базе данных. вам нужно перейти в app/Config/ и открыть файл Database.php в текстовом редакторе. После открытия файла в текстовом редакторе вам необходимо настроить учетные данные базы данных в этом файле, как показано ниже.
public $default = [
'DSN' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'demo',
'DBDriver' => 'MySQLi',
'DBPrefix' => '',
'pConnect' => false,
'DBDebug' => (ENVIRONMENT !== 'production'),
'cacheOn' => false,
'cacheDir' => '',
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'encrypt' => false,
'compress' => false,
'strictOn' => false,
'failover' => [],
'port' => 3306,
];
Шаг 4: Установите пакет Stripe через Composer
На этом шаге вам необходимо загрузить библиотеку PHP PhpSpreadsheet, чтобы создать и сохранить динамический файл Excel. Итак, откройте свой терминал и выполните на нем следующую команду:
composer require stripe/stripe-php
Чтобы использовать привязки, используйте автозагрузку Composer
require_once('vendor/autoload.php');
Шаг 5: Создайте контроллер
На этом шаге зайдите в app/Controllers и создайте имя контроллера Stripe.php. В этом контроллере нужно добавить в него следующие методы:
<?php namespace App\Controllers;
use CodeIgniter\Controller;
use CodeIgniter\HTTP\RequestInterface;
class Stripe extends Controller
{
public function index()
{
return view('home');
}
/**
* Get All Data from this method.
*
* @return Response
*/
public function payment()
{
require_once('application/libraries/stripe-php/init.php');
$stripeSecret = 'sk_test_j5k0976GOLSOtiRzbDLpKqat00og5iM3cY';
\Stripe\Stripe::setApiKey($stripeSecret);
$stripe = \Stripe\Charge::create ([
"amount" => $this->request->getVar('amount'),
"currency" => "usd",
"source" => $this->request->getVar('tokenId'),
"description" => "Test payment from makekodes.ru"
]);
// после успешной оплаты вы можете сохранить информацию, связанную с оплатой, в вашей базе данных
$data = array('success' => true, 'data'=> $stripe);
echo json_encode($data);
}
}
Шаг 6: Создайте вид
На этом этапе вам нужно посетить app/Views/ и создать новый файл в папке с именем Home.php. Затем обновите приведенный ниже HTML-код в файле index.php:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>Codeigniter 4 Интеграция с платёжного шлюза Stripe</title>
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" />
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<style>
.container {
padding: 0.5%;
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-12">
<pre id="token_response"></pre>
</div>
</div>
<div class="row">
<div class="col-md-4">
<button class="btn btn-primary btn-block" onclick="pay(100)">Оплатить $100</button>
</div>
<div class="col-md-4">
<button class="btn btn-success btn-block" onclick="pay(500)">Оплатить $500</button>
</div>
<div class="col-md-4">
<button class="btn btn-info btn-block" onclick="pay(1000)">Оплатить $10000</button>
</div>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
<script src="https://checkout.stripe.com/checkout.js"></script>
<script type="text/jаvascript">
function pay(amount) {
var handler = StripeCheckout.configure({
key: 'pk_test_5f6jfFP2ZV5U9TXQYG0vtqFJ00eFVWNoRX', // идентификатор вашего ключа издателя
locale: 'auto',
token: function (token) {
// Вы можете получить доступ к ID токена с помощью `token.id`.
// Получите ID токена в свой серверный код для использования.
console.log('Токен создан!!');
console.log(token)
$('#token_response').html(JSON.stringify(token));
$.ajax({
url: "<?php echo base_url(); ?>stripe/payment",
method: 'post',
dаta: {
tokenId: token.id,
amount: amount
},
dataType: "json",
success: function (response) {
console.log(response.data);
$('#token_response').append('<br />' + JSON.stringify(response
.data));
}
})
}
});
handler.open({
name: 'Демонстрационный сайт',
description: '2 виджета',
amount: amount * 100
});
}
</script>
</body>
</html>
Шаг 7: Создайте маршрут
На этом шаге вам нужно создать маршрут, который отображает таблицу в представлении, поместите следующий код в файл app/Config/Routes.php.
$routes->get('/', 'Stripe::index');
Шаг 8: Запустите сервер разработки
На этом шаге откройте терминал и выполните следующую команду, чтобы запустить сервер разработки:
php spark serve
Затем перейдите в браузер и введите URL:
http://localhost:8080
В этом руководстве вы узнали, как реализовать интеграцию Stripe Payment Gateway в приложение codeigniter 4.
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.