В современную цифровую эпоху прием онлайн-платежей имеет решающее значение для предприятий любого размера. Paystack, популярный платежный шлюз в Нигерии, предоставляет комплексное решение для безопасной и эффективной обработки платежей. В этой статье мы рассмотрим различные методы инициализации API платежного шлюза Paystack с использованием PHP, а также приведем примеры кода.
Методы инициализации API платежного шлюза Paystack в PHP:
- Базовая интеграция.
Базовый метод интеграции включает в себя настройку необходимых конфигураций и выполнение POST-запроса к API Paystack.
<?php
$paystack_secret_key = 'YOUR_SECRET_KEY';
$amount = 5000; // Amount in kobo (for example, ₦5000)
$callback_url = 'https://example.com/checkout/callback.php';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.paystack.co/transaction/initialize');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'amount' => $amount,
'callback_url' => $callback_url,
]));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $paystack_secret_key,
'Content-Type: application/x-www-form-urlencoded',
]);
$response = curl_exec($ch);
curl_close($ch);
$payment_data = json_decode($response, true);
$authorization_url = $payment_data['data']['authorization_url'];
// Redirect the user to the authorization URL
header('Location: ' . $authorization_url);
exit;
?>
- Настраиваемая интеграция.
Настраиваемый метод интеграции позволяет вам настроить форму оплаты и управлять процессом оплаты на вашем веб-сайте.
<?php
// Add your form HTML here
// Process the form submission
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$paystack_secret_key = 'YOUR_SECRET_KEY';
$amount = $_POST['amount']; // Amount in kobo
$email = $_POST['email'];
$callback_url = 'https://example.com/checkout/callback.php';
// Make a POST request to Paystack's initialize endpoint
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.paystack.co/transaction/initialize');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'amount' => $amount,
'email' => $email,
'callback_url' => $callback_url,
]));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $paystack_secret_key,
'Content-Type: application/x-www-form-urlencoded',
]);
$response = curl_exec($ch);
curl_close($ch);
$payment_data = json_decode($response, true);
$authorization_url = $payment_data['data']['authorization_url'];
// Redirect the user to the authorization URL
header('Location: ' . $authorization_url);
exit;
}
?>
- Расширенная интеграция.
Расширенный метод интеграции предполагает использование библиотеки JavaScript Paystack для асинхронной обработки процесса оплаты.
<?php
$paystack_public_key = 'YOUR_PUBLIC_KEY';
$amount = 5000; // Amount in kobo
$callback_url = 'https://example.com/checkout/callback.php';
?>
<!DOCTYPE html>
<html>
<head>
<!-- Include Paystack's JavaScript library -->
<script src="https://js.paystack.co/v1/inline.js"></script>
</head>
<body>
<!-- Add your payment form HTML here -->
<script>
// Initialize Paystack's payment form
var handler = PaystackPop.setup({
key: <?php echo json_encode($paystack_public_key); ?>,
email: '<?php echo $_POST['email']; ?>',
amount: <?php echo $amount; ?>,
callback: function (response) {
// Handle the payment callback
window.location.href = "<?php echo $callback_url; ?>?reference=" + response.reference;
},
onClose: function () {
// Handle the case when the user closes the payment form
alert('Payment canceled.');
}
});
// Open Paystack's payment form when the submit button is clicked
document.getElementById('pay-button').onclick = function () {
handler.openIframe();
};
</script>
</body>
</html>