ineffablesam / indipay-2
适用于Laravel 5+的印度支付网关包。当前支持的网关:CCAvenue、PayUMoney、EBS、CitrusPay、InstaMojo、ZapakPay、Paytm、Mocker。
Requires
- php: >=5.4.0
- guzzlehttp/guzzle: ^7.0
- illuminate/support: ^10.0
This package is auto-updated.
Last update: 2024-09-03 21:28:50 UTC
README
适用于Laravel 5+的印度支付网关包。当前支持的网关:CCAvenue、PayUMoney、EBS、CitrusPay、ZapakPay(Mobikwik)、Paytm、Mocker
安装
步骤1:使用composer安装包
composer require softon/indipay
步骤2:将服务提供者添加到Laravel的config/app.php文件中(Laravel 5.5+可选)
Softon\Indipay\IndipayServiceProvider::class,
步骤3:将门面别名添加到Laravel的config/app.php文件中(Laravel 5.5+可选)
'Indipay' => Softon\Indipay\Facades\Indipay::class,
步骤4:在终端运行以发布配置和中间件
php artisan vendor:publish --provider="Softon\Indipay\IndipayServiceProvider"
步骤5:修改app\Http\Kernel.php以使用新的中间件。这是必需的,以避免在支付网关的响应URL上进行CSRF验证。 您还可以调整config/indipay.php文件中的路由,以禁用网关响应路由上的CSRF。
注意:您还可以使用新的
VerifyCsrfToken
中间件,并将路由添加到$except
数组中。
App\Http\Middleware\VerifyCsrfToken::class,
到
App\Http\Middleware\VerifyCsrfMiddleware::class,
用法
编辑config/indipay.php。设置适当的网关参数。还要设置通过在配置文件中设置gateway
键来使用的默认网关。然后,在您的代码中...
use Softon\Indipay\Facades\Indipay;
使用默认网关启动购买请求并重定向:
/* All Required Parameters by your Gateway will differ from gateway to gateway refer the gate manual */ $parameters = [ 'transaction_no' => '1233221223322', 'amount' => '1200.00', 'name' => 'Jon Doe', 'email' => 'jon@doe.com' ]; $order = Indipay::prepare($parameters); return Indipay::process($order);
请检查您的网关手册中所需参数。此包中有一个基本的验证来检查这些参数。
您还可以使用多个网关:
// gateway = CCAvenue / PayUMoney / EBS / Citrus / InstaMojo / ZapakPay / Paytm / Mocker $order = Indipay::gateway('Paytm')->prepare($parameters); return Indipay::process($order);
从网关获取响应(将代码添加到配置文件中设置的重定向URL。还要将响应路由添加到remove_csrf_check配置项中,以在这些路由上禁用CSRF检查。):
public function response(Request $request)
{
// For default Gateway
$response = Indipay::response($request);
// For Otherthan Default Gateway
$response = Indipay::gateway('NameOfGatewayUsedDuringRequest')->response($request);
dd($response);
}
Indipay::response
将处理检查响应的有效性,因为大多数网关都会添加校验和以检测数据的任何篡改。
需要注意的是,在转到网关之前,将交易信息存储到持久数据库中,以便稍后验证状态。
支付验证
从版本v1.0.12开始,Indipay
开始在部分网关中实现验证方法,以便在挂起的支付等情况下开发人员可以验证支付。
$order = Indipay::verify([ 'transaction_no' => '3322344231223' ]);
要传递的参数取决于使用的网关。
当前支持验证功能的网关:Paytm、Mocker