toyosi / laravel-interswitch
此包简化了Laravel中的interswitch支付集成
This package is auto-updated.
Last update: 2024-09-11 13:45:27 UTC
README
一个易于集成interswitch的Laravel包
安装
需要PHP 7.2+和Composer。
要获取Laravel Interswitch的最新版本,只需将其包含进来
composer require toyosi/laravel-interswitch
安装后,该包会自动注册其服务提供者和外观。
接下来,运行迁移以获取记录所有交易的数据库表
php artisan migrate
配置
您可以使用此命令发布配置文件
php artisan vendor:publish --provider="Toyosi\Interswitch\InterswitchServiceProvider"
带有一些默认值的配置文件'interswitch.php'已放置在您的配置目录中。
使用此包,您可以轻松集成interswitch的三大支付类型:webpay、paydirect或collegepay。Webpay是默认类型。
支付流程
以下描述的支付流程适用于interswitch和许多其他支付网关
- 用户点击按钮进行支付,用户被重定向到支付提供商的网站,通常是通过提交带有隐藏字段的表单来实现。从这些字段中生成一个哈希值。
- 在支付提供商的网站上,输入卡详情。
- 用户被带回到显示交易详情的页面,指明交易成功或失败。
用法
测试环境
1. 打开.env并添加
INTERSWITCH_SITE_REDIRECT_URL="${APP_URL}/response"
这是测试环境中唯一的变量,'response'如上所示可以是任何东西。指定的值表示每次交易后用户被重定向到的URL。不要忘记在您的项目中添加此路由。在这种情况下,将是
Route::get('response', function(){ return $_GET; });
注意:请确保APP_URL定义正确。
2. 创建支付路由和视图
在web.php中创建您的支付路由。例如
Route::get('pay', function(){ return view('payment'); });
然后创建视图。在这种情况下,'payment.blade.php'。视图可以如下所示
<form action="interswitch-pay" method="post"> <input type="hidden" name="customerName" value="Toyosi Oyelayo" /> <input type="hidden" name="customerID" value="1" /> <input type="hidden" name="customerEmail" value="toyosioyelayo@gmail.com" /> <input type="hidden" name="amount" value="12000" /><!-- Amount must be in kobo --> <button type="submit" style="padding: 10px 20px; background-color: #ff0000; border: none; color: #fff; cursor: pointer">Pay Now</button> </form>
注意:'amount'字段必须是考博
导航到您新建的路由,点击“立即支付”按钮并按照要求操作。请注意,表单提交到路由'interswitch-pay',这是该包中预定义的。所有字段都是必需的。在点击“立即支付”按钮后,用户将被重定向到interswitch的支付页面,在该页面中输入卡详情。然后,用户将被重定向回您的网站,如“INTERSWITCH_SITE_REDIRECT_URL”所示。此URL将返回交易结果。示例响应如下
{ "paymentReference": "FBN|WEB|CDEM|10-12-2020|383104", "responseCode": "00", "responseDescription": "Approved Successful", "amount": "12000", "transactionDate": "2020-12-10T15:59:37.827", "customerEmail": "toyosioyelayo@gmail.com", "customerName": "Toyosi Oyelayo" }
测试卡列表可以在这里找到。
生产环境
上述测试环境中的描述过程同样适用于生产环境。请注意,Interswitch在批准您的网站接收实时支付之前,会对您的网站进行某些检查。
- 您必须在网站上放置interswitch标志
- 您必须填写并提交用户验收测试表,该表必须经interswitch批准。您可以从这里下载表格
- 在此之后,您将获得唯一的产品ID、MAC ID和支付项目ID。这些必须在.env文件中包含,如下所示
INTERSWITCH_PRODUCT_ID= INTERSWITCH_MAC_KEY= INTERSWITCH_PAY_ITEM_ID=
您还必须将环境更改为生产,如下所示
INTERSWITCH_ENV=LIVE
要更改集成类型,请使用
INTERSWITCH_GATEWAY_TYPE=
值可以是 'WEBPAY'、'PAYDIRECT' 或 'COLLEGEPAY'。'WEBPAY' 是默认值。
分账支付
使用分账支付,您可以将网站收到的资金分配到多个账户。此功能仅在 COLLEGEPAY 中可用。分账实现使用 XML,我已经在包中处理了。您可以通过以下两个简单步骤设置分账支付:
1. 在 .env 中启用分账支付,如下所示:
INTERSWITCH_SPLIT=true
2. 配置账户和百分比分配。
您需要指定要贷记的账户编号和要贷记到每个账户的总金额百分比。为此,打开 'config/interswitch.php' 并编辑 'splitDetails' 键。请注意,此键已经存在,您只需要编辑它。
'splitDetails' => [ [ 'itemName' => 'item1', 'bankID' => 7, 'accountNumber' => 1234567890, 'percentageAllocation' => 50 ], [ 'itemName' => 'item2', 'bankID' => 10, 'accountNumber' => 4564567890, 'percentageAllocation' => 50 ] ],
在上面的示例中,指出了两个银行账户,总金额被分成两部分(各占50%),如 'percentageAllocation' 所示。在测试环境中,'accountNumber' 可以是任何10位数。别忘了在实时环境中更改到有效的账户编号。该包处理转换为 XML 和其他必要的操作。注意:您可以在 此处找到银行 ID 列表。
交易日志
您可以在 'interswitch-logs' 路由中找到所有交易日志。别忘了保护此路由。您不希望任何用户都能访问它。
重新查询交易
有时,当用户进行支付时可能会出错。可能是电源故障或网络连接不稳定。要完成已经开始的支付过程,您可以在 'interswitch 日志' 中点击 '重新查询' 按钮。这将根据需要更新交易。
更多信息
Interswitch 要求用户在每次交易成功后都收到一封邮件。这已经添加到包中。您只需要将以下内容添加到您的 .env 文件中:
INTERSWITCH_SEND_MAIL=true
确保您的邮件变量在 .env 中已正确设置。
贡献
请随意fork此存储库,并通过提交拉取请求来贡献。让我们使它变得更好。
星标
我很希望您能星标此存储库。您还可以 在推特上关注我
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。