flutterwavedev / flutterwave-v3
Flutterwave支付集成的简单SDK
Requires
- php: ^7.4 || ^8.0 || ^8.1
- ext-curl: *
- ext-json: *
- ext-openssl: *
- composer/ca-bundle: ^1.3
- guzzlehttp/guzzle: ^7.5
- monolog/monolog: ^2.0 || ^3.0
- php-http/guzzle7-adapter: ^1.0
- psr/http-client: ^1.0
- vlucas/phpdotenv: ^2.5 || ^3.0 || ^5.0
Requires (Dev)
- dg/bypass-finals: ^1.4
- eloquent/liberator: ^3.0
- mockery/mockery: >=1.2
- nunomaduro/phpinsights: ^2.6
- pestphp/pest: ^1.22
- phpbench/phpbench: ^1.2
- phpstan/phpstan: ^1.9
- phpunit/phpunit: >=6.0
- squizlabs/php_codesniffer: 3.*
- symfony/var-dumper: 5.4.13
This package is auto-updated.
Last update: 2024-09-21 17:49:00 UTC
README
Flutterwave v3 PHP SDK。
此Flutterwave v3 PHP库为从PHP应用程序访问Flutterwave for Business (F4B) v3 API提供了方便。它抽象了直接集成中涉及到的复杂性,并允许您快速调用API。
提供的功能包括
- 集合:卡,账户,移动货币,银行转账,USSD,易货交易,NQR。
- 支付和受益人。
- 定期支付:令牌化和订阅。
- 分割支付
- 卡片发行
- 交易纠纷管理:退款。
- 交易报告:集合、支付、结算和退款。
- 账单支付:话费、数据包、有线电视、电力、通行费、电子账单和Remitta。
- 身份验证:解决银行账户、解决BVN信息。
目录
需求
- Flutterwave for business API密钥
- 支持的PHP版本:>= 7.4.0。对于较旧的PHP版本,请使用 Legacy Branch
安装
通过Composer安装。
要通过Composer安装包,请运行以下命令。
composer require flutterwavedev/flutterwave-v3
初始化
创建一个.env文件,并按照.env.example文件的格式保存您的PUBLIC_KEY、SECRET_KEY、ENV到.env文件中
cp .env.example .env
您的.env文件应该看起来像这样。
PUBLIC_KEY=FLWSECK_TEST-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-X SECRET_KEY=FLWPUBK_TEST-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-X ENCRYPTION_KEY=FLWSECK_XXXXXXXXXXXXXXXX ENV='staging/production'
渲染支付模态
SDK提供两种通过著名的支付模态进行集合的简单方法。 了解更多
开始使用
编辑paymentForm.php和processPayment.php文件以适应您的需求。这两个文件都有良好的文档。
只需将浏览器重定向到paymentForm.php文件即可处理支付。
在此实现中,我们期望该脚本是表单编码的POST请求。请求将包含以下参数。
{ "amount": "The amount required to be charged. (*)", "currency": "The currency to charge in. (*)", "first_name": "The first name of the customer. (*)", "last_name" : "The last name of the customer. (*)", "email": "The customers email address. (*)", "phone_number": "The customer's phone number. (Optional).", "success_url": "The url to redirect customer to after successful payment.", "failure_url": "The url to redirect customer to after a failed payment.", "tx_ref":"The unique transaction identifier. if ommited the apiclient would generate one" }
paymentProcess.php中的脚本通过PaymentController处理请求数据。如果您正在使用Laravel或CodeIgniter等框架,您可能想查看PaymentController
<?php declare(strict_types=1); # if vendor file is not present, notify developer to run composer install. require __DIR__.'/vendor/autoload.php'; use Flutterwave\Controller\PaymentController; use Flutterwave\EventHandlers\ModalEventHandler as PaymentHandler; use Flutterwave\Flutterwave; use Flutterwave\Library\Modal; # start a session. session_start(); try { Flutterwave::bootstrap(); $customHandler = new PaymentHandler(); $client = new Flutterwave(); $modalType = Modal::POPUP; // Modal::POPUP or Modal::STANDARD $controller = new PaymentController( $client, $customHandler, $modalType ); } catch(\Exception $e ) { echo $e->getMessage(); } if ($_SERVER["REQUEST_METHOD"] === "POST") { $request = $_REQUEST; $request['redirect_url'] = $_SERVER['HTTP_ORIGIN'] . $_SERVER['REQUEST_URI']; try { $controller->process( $request ); } catch(\Exception $e) { echo $e->getMessage(); } } $request = $_GET; # Confirming Payment. if(isset($request['tx_ref'])) { $controller->callback( $request ); } else { } exit();
配置设置
创建一个.env文件,并在发起收费之前首先添加bootstrap方法。
use \Flutterwave\Flutterwave; # normal configuration Flutterwave::bootstrap(); # this will use the default configuration set in .env
如果您不想使用.env,您可以直接传递API密钥,如下例所示。
use \Flutterwave\Helper\Config; $myConfig = Config::setUp( 'FLWSECK_TEST-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-X', 'FLWPUBK_TEST-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-X', 'FLWSECK_XXXXXXXXXXXXXXXX', 'staging' ); Flutterwave::bootstrap($myConfig);
用法
收费
资源
测试
SDK 中的所有测试均使用 PHP 的 phpunit
模块编写。当前测试包括:Account
、Card
、Transfer
、Preauth
、Collection Subaccount
、Payout Subaccount
、Subscriptions
和 Paymentplan
可以按照以下方式运行
phpunit
注意:如果创建子账户时测试失败,只需将
account_number
、account_bank
和businesss_email
改为不同的值即可
注意:测试可能因账户验证失败而失败 -
Pending OTP validation
,这取决于服务是否中断
调试错误
我们理解您在集成我们的库时可能会遇到一些错误。您可以在这里了解更多关于我们的错误信息。
对于 authorization
和 validation
错误响应,请仔细检查您的 API 密钥和请求。如果您遇到 server
错误,请联系支持团队。
支持
如需使用此库的额外帮助,请联系开发者体验(DX)团队,通过电子邮件或在 slack 上。
您还可以关注我们 @FlutterwaveEng 并告诉我们您的想法 😊。
贡献指南
更多关于我们社区贡献指南的信息,请点击这里
许可
通过向此库贡献,您同意您的贡献将根据其 MIT 许可证进行许可。
版权所有 © Flutterwave Inc.