📅  最后修改于: 2023-12-03 15:03:32.176000             🧑  作者: Mango
Paystack 网关集成 Laravel - PHP
Paystack 是一家基于尼日利亚的在线支付网关,它提供了快速简便的支付解决方案,可以轻松地集成到您的 Laravel 应用程序中。本文将介绍如何在 Laravel 中集成 Paystack 网关。
在开始之前,需要先在 Paystack 注册账户并创建一个测试应用程序。接下来,您需要安装 PHP、Composer 和 Laravel。
在终端中执行以下命令以创建新的 Laravel 应用程序:
composer create-project --prefer-dist laravel/laravel paystack-laravel
该命令将创建一个名为 paystack-laravel 的新 Laravel 应用程序。
运行以下命令来安装 Paystack PHP SDK:
composer require paystackhq/paystack-php
此命令将在 Laravel 应用程序中安装 Paystack 官方 SDK。
在 Laravel 中使用 Paystack 前,需要配置您的 Paystack API 密钥。打开 .env
文件并添加以下内容:
PAYSTACK_SECRET_KEY=your_secret_key_here
PAYSTACK_PUBLIC_KEY=your_public_key_here
替换 your_secret_key_here
和 your_public_key_here
为您在 Paystack 中获得的密钥。
运行以下命令以创建一个新的 Paystack 控制器:
php artisan make:controller PaystackController
定义以下函数:
public function initialize()
{
$paystack = new Paystack(config('services.paystack.secret_key'));
try {
$trx = $paystack->transaction->initialize([
'amount' => 5000,
'email' => 'test@example.com',
'callback_url' => url('/payment/callback'),
]);
return redirect($trx['data']['authorization_url']);
} catch (HttpException $e) {
return redirect()->back()->withErrors('Something went wrong, please try again');
}
}
public function handleCallback(Request $request)
{
$paystack = new Paystack(config('services.paystack.secret_key'));
$trx = $paystack->transaction->verify([
'reference' => $request->input('reference'),
]);
if ($trx['data']['status'] === 'success') {
return view('success');
} else {
return view('fail');
}
}
此代码将使用 $paystack->transaction->initialize()
函数来初始化一个新的交易,并将用户重定向到 Paystack 带有付款选项的付款页面。初始化交易成功后,用户将被重定向回您指定的 callback_url。在 handleCallback()
函数中,我们使用 $paystack->transaction->verify()
函数来验证付款交易并确认它是否成功完成。如果交易成功完成,则显示名为 "success" 的视图,否则显示 "fail" 视图。
要将 Paystack 控制器中的函数与应用程序的路由相关联,请打开 routes/web.php
并添加以下代码:
Route::get('/payment', 'PaystackController@initialize');
Route::get('/payment/callback', 'PaystackController@handleCallback');
此代码将定义一个名为 /payment
的路由,用于调用 Paystack 控制器中的 initialize()
函数。回调 URL /payment/callback
将被用于处理用户的交易回调并调用 Paystack 控制器中的 handleCallback()
函数。
现在,您已经成功集成了 Paystack 支付网关。运行 Laravel 应用程序并导航到 /payment
URL。您将被重定向到 Paystack 网站以进行付款。付款成功后,将回调回到您的应用程序,并显示相应的视图。
通过集成 Paystack 网关,您可以大大简化您的 Laravel 应用程序中的付款过程。Paystack 官方 SDK 提供了完整且易于使用的支付解决方案,可轻松集成到您的 Laravel 应用程序中。