ogunsakindamilola / laravel-interswitch
Interswitch的Laravel包
Requires
- php: ^7.4|^8.0
- doctrine/dbal: ^2.10
- illuminate/support: ^8.0
- laravel/legacy-factories: ^1.1
Requires (Dev)
- orchestra/testbench: ^6.21
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-09-16 14:20:53 UTC
README
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
可以设置为LIVE
或TEST
。 INTERSWITCH_GATEWAY
可以设置为WEBPAY
或PAYDIRECT
。重定向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');
就这样,您可以开始了
现在您在这里
感谢您花时间使用我的包。