first-iraqi-bank/fib-laravel-payment-sdk

Laravel SDK 用于与 FIB 支付系统集成,支持用户认证和支付交易。

1.0.7 2024-09-16 09:57 UTC

This package is auto-updated.

Last update: 2024-09-16 09:57:52 UTC


README

FIB Laravel 支付 SDK 为 Laravel 应用程序提供与 FIB 支付系统的无缝集成,支持安全高效的支付交易和退款处理。

目录

特性

  • 支付交易:通过 FIB 支付系统在您的 Laravel 应用程序中直接进行安全支付。
  • 退款处理:通过 FIB 支付系统轻松管理退款。
  • 检查支付状态:检索支付状态以确保正确的交易跟踪。
  • 取消支付:通过 FIB 支付系统根据需要取消支付。

安装

要将 SDK 集成到您的 Laravel 项目中,请通过 Composer 安装

composer require First-Iraqi-Bank/fib-laravel-payment-sdk

替代安装(不使用 Composer)

如果您不想使用 Composer,请按照以下步骤操作

  • 克隆存储库:克隆 FIB 支付 SDK 存储库

    git clone https://github.com/First-Iraqi-Bank/fib-laravel-payment-sdk.git
  • 包含在项目中:将克隆的 fib-laravel-payment-sdk 目录移动或复制到您的 Laravel 项目中。

  • 自动加载:如果未使用 Composer,请确保将 SDK 的 src 目录包含在您的 composer.json 自动加载配置中。

    {
        "autoload": {
            "psr-4": {
                "FirstIraqiBank\\FIBPaymentSDK\\": "path/to/fib-laravel-payment-sdk/src"
            }
        }
    }
  • 使用:包含 SDK 后,在您的 Laravel 应用程序中使用其类和功能。

注册服务提供者和运行迁移

步骤 1:注册服务提供者

在使用 SDK 之前,请确保您已注册 FIBPaymentServiceProvider。此服务提供者将 SDK 的服务绑定到 Laravel 服务容器,并加载必要的资源,如路由、迁移和配置。

在您的 config/app.php 文件中,将以下内容添加到 providers 数组

'providers' => [
    // Other Service Providers...

    FirstIraqiBank\FIBPaymentSDK\FIBPaymentServiceProvider::class,
],

步骤 2:发布配置

要自定义 SDK 的配置,您需要发布配置文件。运行以下 Artisan 命令

php artisan vendor:publish --tag=fib-payment-sdk-config

这将发布 SDK 配置文件到您的应用程序的 config/fib.php 文件中,您可以根据需要修改 SDK 的行为。

步骤 3:运行迁移

SDK 附带迁移文件,用于创建必要的数据库表。要运行这些迁移,请使用以下 Artisan 命令

php artisan migrate

此命令将执行 SDK 的 database/migrations 目录中的迁移文件,并创建所需的数据库表。

将以下环境变量添加到您的 .env 文件中

  • FIB_API_KEY:您的 FIB 支付 API 密钥。
  • FIB_API_SECRET:您的 FIB 支付 API 密码。
  • FIB_BASE_URL:FIB 支付 API 的基本 URL(默认:https://api.fibpayment.com)。
  • FIB_GRANT_TYPE:认证的授权类型(默认:client_credentials)。
  • FIB_REFUNDABLE_FOR:交易可以退款的有效期(默认:P7D)。
  • FIB_CURRENCY:交易使用的货币(默认:IQD)。
  • FIB_CALLBACK_URL:支付通知的回调 URL。
  • FIB_ACCOUNT:FIB 支付账户标识符。

SDK 的使用

确保安装依赖项

使用 Composer 安装所需依赖项

composer install

设置环境变量

在Laravel项目的根目录下创建一个.env文件并设置必要的环境变量。

创建支付

以下是如何创建付款的示例

<?php

use FirstIraqiBank\FIBPaymentSDK\Services\FIBAuthIntegrationService;
use FirstIraqiBank\FIBPaymentSDK\Services\FIBPaymentIntegrationService;

// Initialize the authentication service
$authService = new FIBAuthIntegrationService();

// Initialize the payment integration service
$paymentService = new FIBPaymentIntegrationService($authService);

try {
    // Create a new payment
    $paymentResponse = $paymentService->createPayment(1000, 'https:///callback', 'Test payment description');
    $paymentData = json_decode($paymentResponse->getBody(), true);
    
    // Return the payment ID
    return $paymentData['paymentId'];
} catch (Exception $e) {
    throw new Exception("Error creating payment: " . $e->getMessage());
}

检查付款状态

要检查付款的状态

<?php

use FirstIraqiBank\FIBPaymentSDK\Services\FIBAuthIntegrationService;
use FirstIraqiBank\FIBPaymentSDK\Services\FIBPaymentIntegrationService;

// Initialize the authentication service
$authService = new FIBAuthIntegrationService();

// Initialize the payment integration service
$paymentService = new FIBPaymentIntegrationService($authService);

try {
    $paymentId = 'your_payment_id'; // Retrieve from your storage
    $response = $paymentService->checkPaymentStatus($paymentId);
    echo "Payment Status: " . $response['status'] ?? null;
} catch (Exception $e) {
    echo "Error checking payment status: " . $e->getMessage();
}

退款支付

要处理退款

<?php

use FirstIraqiBank\FIBPaymentSDK\Services\FIBAuthIntegrationService;
use FirstIraqiBank\FIBPaymentSDK\Services\FIBPaymentIntegrationService;

// Initialize the authentication service
$authService = new FIBAuthIntegrationService();

// Initialize the payment integration service
$paymentService = new FIBPaymentIntegrationService($authService);

try {
    $paymentId = 'your_payment_id'; // Retrieve from your storage
    $response = $paymentService->refund($paymentId);
    echo "Refund Payment Status: " . $response['status_code'];
} catch (Exception $e) {
    echo "Error Refunding payment: " . $e->getMessage();
}

取消支付

要取消付款

<?php

use FirstIraqiBank\FIBPaymentSDK\Services\FIBAuthIntegrationService;
use FirstIraqiBank\FIBPaymentSDK\Services\FIBPaymentIntegrationService;

// Initialize the authentication service
$authService = new FIBAuthIntegrationService();

// Initialize the payment integration service
$paymentService = new FIBPaymentIntegrationService($authService);

try {
    $paymentId = 'your_payment_id'; // Retrieve from your storage
    $response = $paymentService->cancel($paymentId);
    if (in_array($response->getStatusCode(), [200, 201, 202, 204])) {
        echo "Cancel Payment Status: Successful";
    } else {
        echo "Cancel Payment Status: Failed with status code " . $response->getStatusCode();
    }
} catch (Exception $e) {
    echo "Error Cancelling payment: " . $e->getMessage();
}

处理支付回调

要处理付款回调,创建一个路由和控制器方法

// web.php or api.php
Route::post('/callback', [PaymentController::class, 'handleCallback']);

// PaymentController.php
public function handleCallback(Request $request)
{
    $payload = $request->all();

    $paymentId = $payload['id'] ?? null;
    $status = $payload['status'] ?? null;

    if (!$paymentId || !$status) {
        return response()->json(['error' => 'Invalid callback payload'], 400);
    }

    try {
        // Implement your callback handling logic
        return response()->json(['message' => 'Callback processed successfully']);
    } catch (Exception $e) {
        return response()->json(['error' => 'Failed to process callback: ' . $e->getMessage()], 500);
    }
}

FIB 支付文档

有关FIB在线付款的详细文档,请参阅完整文档

测试

使用PHPUnit运行测试

vendor/bin/phpunit --testdox

贡献

欢迎贡献!请阅读CONTRIBUTING.md以了解我们的行为准则和提交拉取请求的流程。

许可

本项目采用MIT许可证。有关详细信息,请参阅LICENSE.md文件。

支持

如有支持需求,请联系support@fib-payment.com或访问我们的网站。

致谢

感谢FIB付款开发团队所作的贡献。此SDK使用cURL库进行API请求。

版本控制

我们使用语义版本控制(SemVer)原则。有关可用版本,请参阅此存储库上的标签。

常见问题解答

问:我如何获取FIB付款系统的API密钥?

答:请联系我们的支持团队support@fib-payment.com以请求API密钥。

问:我可以在生产环境中使用此SDK吗?

答:是的,SDK是为生产设计的,但请确保已正确配置,并且您拥有必要的凭据。