toyosi/laravel-interswitch

此包简化了Laravel中的interswitch支付集成

dev-master 2020-12-11 05:07 UTC

This package is auto-updated.

Last update: 2024-09-11 13:45:27 UTC


README

Issues Forks Stars

一个易于集成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. 用户点击按钮进行支付,用户被重定向到支付提供商的网站,通常是通过提交带有隐藏字段的表单来实现。从这些字段中生成一个哈希值。
  2. 在支付提供商的网站上,输入卡详情。
  3. 用户被带回到显示交易详情的页面,指明交易成功或失败。

用法

测试环境

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在批准您的网站接收实时支付之前,会对您的网站进行某些检查。

  1. 您必须在网站上放置interswitch标志
  2. 您必须填写并提交用户验收测试表,该表必须经interswitch批准。您可以从这里下载表格
  3. 在此之后,您将获得唯一的产品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)。有关更多信息,请参阅 许可证文件