📜  paystack 网关集成 laravel - PHP (1)

📅  最后修改于: 2023-12-03 15:03:32.176000             🧑  作者: Mango

Paystack 网关集成 Laravel - PHP

Paystack 是一家基于尼日利亚的在线支付网关,它提供了快速简便的支付解决方案,可以轻松地集成到您的 Laravel 应用程序中。本文将介绍如何在 Laravel 中集成 Paystack 网关。

前置条件

在开始之前,需要先在 Paystack 注册账户并创建一个测试应用程序。接下来,您需要安装 PHP、Composer 和 Laravel。

步骤一:创建 Laravel 应用程序

在终端中执行以下命令以创建新的 Laravel 应用程序:

composer create-project --prefer-dist laravel/laravel paystack-laravel

该命令将创建一个名为 paystack-laravel 的新 Laravel 应用程序。

步骤二:安装 Paystack 官方 SDK

运行以下命令来安装 Paystack PHP SDK:

composer require paystackhq/paystack-php

此命令将在 Laravel 应用程序中安装 Paystack 官方 SDK。

步骤三:配置 Paystack

在 Laravel 中使用 Paystack 前,需要配置您的 Paystack API 密钥。打开 .env 文件并添加以下内容:

PAYSTACK_SECRET_KEY=your_secret_key_here
PAYSTACK_PUBLIC_KEY=your_public_key_here

替换 your_secret_key_hereyour_public_key_here 为您在 Paystack 中获得的密钥。

步骤四:创建 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 应用程序中。