ogunsakindamilola/laravel-interswitch

Interswitch的Laravel包

1.2.7 2022-08-26 19:06 UTC

This package is auto-updated.

Last update: 2024-09-16 14:20:53 UTC


README

Latest Stable Version License Total Downloads GitHub Actions

Interswitch的Laravel包

安装

需要PHP ^7.4|^8.0和Composer

要获取Laravel Interswitch的最新版本,只需要求它即可。

composer require ogunsakin01/laravel-interswitch

配置

您可以使用以下命令发布配置文件

php artisan vendor:publish

然后选择ogunsakin01/laravel-interswitch

一个名为interswitch.php的配置文件将带有一些合理的默认值放置在您的config目录中

<?php

return [
    /**
     *  Your payment environment
     *  Accepts LIVE or TEST
     *
     */

    'env' => env('INTERSWITCH_ENV', 'TEST'),

    'currency' => 566,

    /**
     *  Interswitch payment gateway of choice
     *  Accepts WEBPAY or PAYDIRECT
     *
     */

    'gateway' => env('INTERSWITCH_GATEWAY'),

    /**
     *  Redirect URL
     *  This is the URL Interswitch redirects you to
     *  **PLEASE DO NOT CHANGE**  `The cost of using magic will be your soul`
     */

    'systemRedirectUrl' => 'interswitch-pay-redirect',


    /**
     *  This is the redirect url defined by you in your environment file
     *
     */

    'redirectUrl' => env('INTERSWITCH_REDIRECT_URL'),

    /**
     *  Live credentials as defined in your environment variables
     *
     */


    'live' => [
        'requestUrl' => env('INTERSWITCH_REQUEST_URL'),
        'queryUrl' => env('INTERSWITCH_QUERY_URL'),
        'macKey' => env('INTERSWITCH_MAC_KEY'),
        'itemId' => env('INTERSWITCH_ITEM_ID'),
        'productId' => env('INTERSWITCH_PRODUCT_ID'),
    ],

    /**
     *  This are the default test credentials of interswitch for both gateways
     *
     */

    'test' => [
        'webPay' => [
            'requestUrl' => 'https://sandbox.interswitchng.com/webpay/pay',
            'queryUrl' => 'https://sandbox.interswitchng.com/webpay/api/v1/gettransaction.json',
            'macKey' => 'D3D1D05AFE42AD50818167EAC73C109168A0F108F32645C8B59E897FA930DA44F9230910DAC9E20641823799A107A02068F7BC0F4CC41D2952E249552255710F',
            'itemId' => 101,
            'productId' => 6205,
        ],
        'payDirect' => [
            'requestUrl' => 'https://sandbox.interswitchng.com/collections/w/pay',
            'queryUrl' => 'https://sandbox.interswitchng.com/collections/api/v1/gettransaction.json',
            'macKey' => '',
            'itemId' => 101,
            'productId' => 1706,
        ],
    ],

];

打开您的.env文件并添加以下内容

INTERSWITCH_ENV=TEST
INTERSWITCH_GATEWAY=WEBPAY
INTERSWITCH_REDIRECT_URL=https://:8000/payment-confirmation/
INTERSWITCH_REQUEST_URL=
INTERSWITCH_QUERY_URL=
INTERSWITCH_MAC_KEY=
INTERSWITCH_ITEM_ID=
INTERSWITCH_PRODUCT_ID=

INTERSWITCH_ENV可以设置为LIVETESTINTERSWITCH_GATEWAY可以设置为WEBPAYPAYDIRECT。重定向URL必须是您希望在支付过程完成后重定向到的路由中声明的GET URL。请确保此路由已在您的web.php中定义为GET路由。请确保用从Interswitch收到的其他环境变量替换这些变量。

在您的.env文件中,请确保您设置了数据库环境

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

将变量替换为您数据库连接变量,然后运行php artisan migrate。当迁移完成后,返回您的.env文件并设置您的邮件环境

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"

完成这些后,您就可以开始使用此包了。

用法

Interswitch在实现其支付网关时要求您遵循一些特定的步骤

1 初始化交易

此初始化交易向支付网关发送POST请求并将您重定向到支付页面

2 客户预付款通知电子邮件

您应该向您的客户发送预付款通知电子邮件,通知他们即将进行的交易。

3 存储交易详情

您应该在交易完成之前将所有交易存储在数据库中

4 支付确认通知电子邮件

您必须向您的客户发送支付确认电子邮件,说明交易是否成功以及原因。

5 交易日志表和重新查询

Interswitch要求您有一个显示所有交易的页面,并且您有一个可以用来重新确认交易状态的重新查询按钮。

哇,生活艰难。光把这些写出来就让人筋疲力尽,我可以想象实施起来会是什么样子。不用担心,我知道那是什么感觉。嗯,在这个包中,您只需要在您的支付页面上添加这个。

<form method="post" action="{{route('InterswitchPay')}}">
  <input type="hidden" name="customer_name" value="John Doe" required />
  <input type="hidden" name="customer_id" value="1" required/>
  <input type="email" name="customer_email" required value="" placeholder="a valid email" />
  <input type="number" min="0" name="amount" required value=""/>
  <button type="Submit">Pay</button>
</form>

如果您希望使用您定义的交易参考,只需将<input type="hidden" name="reference" value="87YYUIJIJ" />添加到您正在发送的字段中。

就是这样,当点击支付按钮时,所有脏活累活都在幕后为您完成。支付完成后,您将被重定向到您在.env中设置的INTERSWITCH_REDIRECT_URL,并带有以下查询参数

[
  "id" => "11"
  "customer_id" => "1"
  "customer_name" => "Ogunsakin Damilola"
  "customer_email" => "ogunsakin191@gmail.com"
  "environment" => "TEST"
  "gateway" => "WEBPAY"
  "reference" => "5E5C880D78133"
  "amount" => "90000"
  "response_code" => "Z6"
  "response_description" => "Customer cancellation"
  "created_at" => "2020-03-02 04:14:08"
  "updated_at" => "2020-03-02 04:14:14"
]

要查看您的交易日志,请访问此路由

url(interswitch-transactions-log);
OR
route('InterswitchTransactionsLog');

就这样,您可以开始了

现在您在这里

感谢您花时间使用我的包。