first-iraqi-bank / fib-laravel-payment-sdk
Laravel SDK 用于与 FIB 支付系统集成,支持用户认证和支付交易。
Requires
- php: ^8.0
- ext-json: *
- guzzlehttp/guzzle: ^7.0
- illuminate/contracts: ^8.0 || ^9.0 || ^10.0
- illuminate/http: ^8.0 || ^9.0 || ^10.0
- illuminate/support: ^8.0 || ^9.0 || ^10.0
Requires (Dev)
- laravel/legacy-factories: ^1.1
- mockery/mockery: ^1.4
- orchestra/testbench: ^6.0 || ^7.0
- phpunit/phpunit: ^8.5 || ^9.5 || ^10.0
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是为生产设计的,但请确保已正确配置,并且您拥有必要的凭据。