gnurlan / laravel-gopay-sdk
Laravel框架与GoPay SDK集成
v0.1.5
2017-08-09 14:12 UTC
Requires
- php: >=5.6.0
- gopay/payments-sdk-php: ^1.1
- illuminate/cache: 5.*
- illuminate/config: 5.*
- illuminate/container: 5.*
- illuminate/support: 5.*
README
文档
安装
步骤 1:安装包
通过执行以下命令将包添加到您的composer.json中。
composer require gnurlan/laravel-gopay-sdk
这将同时更新composer.json并将包安装到vendor/目录中。
接下来,将服务提供者和外观添加到config/app.php
将服务提供者添加到providers
'providers' => [
...
Gnurlan\LaravelGoPaySDK\GopayServiceProvider::class,
...
]
并将外观添加到aliases
'aliases' => [
...
'GoPay' => Gnurlan\LaravelGoPaySDK\Facade::class,
...
]
步骤 2:配置
首先运行以下命令初始化配置文件
php artisan vendor:publish
使用此命令初始化配置并修改位于config/gopay.php
下的创建的文件。
配置
return [ 'goid' => 'YOUR_GOID', 'clientId' => 'YOUR_CLIENT_ID', 'clientSecret' => 'YOUR_CLIENT_SECRET', 'defaultScope' => 'ALL', //GoPay\Definition\TokenScope Constants 'languages' => [ 'en' => 'ENGLISH', 'sk' => 'SLOVAK', 'cs' => 'CZECH' ], //Map Laravel languages to GoPay\Definition\Language Constants 'timeout' => 30 ];
功能
语言
包将自动通过App::getLocale()转换设置GoPay语言,并按照您的gopay.php语言配置转换为适当的gopay lang格式。当应用程序返回GoPay中不存在的locale时,包将使用应用程序回退locale转换为GoPay语言格式。您还可以通过调用GoPay Facade上的函数lang($locale)来修改语言。参数可以是GoPay Language常量名称、值或您映射到GoPay lang的Laravel locale。
\GoPay::lang(GoPay\Definition\Languages::SLOVAK) //or just \GoPay::lang('sk') //or \GoPay::lang('SLOVAK')->createPayment(...);
作用域
包将使用默认Scope作为初始GoPay连接的作用域。当然,您可以通过调用GoPay Facade上的函数scope($new_scope)在运行时更改作用域。参数可以是GoPay TokenScope常量名称或值。
\GoPay::scope(GoPay\Definition\TokenScope::ALL) //Override default scope //or \GoPay::scope('ALL')->createPayment(...);
缓存访问令牌
包通过Laravel Cache缓存访问令牌,持续时间为配置的超时分钟数。
记录Http通信
您可以使用log函数记录GoPay向api发出的每个Http请求和响应。日志只有一个参数,带有闭包函数。以下是一些示例
\GoPay::log(function($request, $response){ \Log::info("{$request->method} {$request->url} -> {$response->statusCode}"); })->lang($user->locale) ->scope('ALL') ->refundPayment(...);
事件
示例
Event::listen(\Gnurlan\LaravelGoPaySDK\Events\PaymentCreated::class, function ($event) { dd($event->payment); });
官方SDK的所有方法均有效
https://doc.gopay.com/en/?php#establishment-of-payment
只需在GoPay Facade上调用它们。
对于任何pull requests或issue reports,我们将非常高兴😉
示例
创建标准支付
use GoPay; use GoPay\Definition\Payment\Currency; use GoPay\Definition\Payment\PaymentInstrument; use GoPay\Definition\Payment\BankSwiftCode; //This will log every http request to the GoPay api GoPay::log(function($request, $response){ \PC::gp_request($request); //PHP Console package \PC::gp_response($response); //PHP Console package //Or Laravel Log \Log::info("{$request->method} {$request->url} -> {$response->statusCode}"); }); $user = \Auth::user(); $response = GoPay::lang($user->locale)->scope('CREATE_PAYMENT')->createPayment([ 'payer' => [ 'default_payment_instrument' => PaymentInstrument::BANK_ACCOUNT, 'allowed_payment_instruments' => [PaymentInstrument::BANK_ACCOUNT], 'default_swift' => BankSwiftCode::FIO_BANKA, 'allowed_swifts' => [BankSwiftCode::FIO_BANKA, BankSwiftCode::MBANK], 'contact' => [ 'first_name' => 'Zbynek', 'last_name' => 'Zak', 'email' => 'test@test.cz', 'phone_number' => '+420777456123', 'city' => 'C.Budejovice', 'street' => 'Plana 67', 'postal_code' => '373 01', 'country_code' => 'CZE', ], ], 'amount' => 1000, 'currency' => Currency::CZECH_CROWNS, 'order_number' => '001', 'order_description' => 'pojisteni01', 'items' => [ ['name' => 'item01', 'amount' => 50], ['name' => 'item02', 'amount' => 100], ], 'additional_params' => [ array('name' => 'invoicenumber', 'value' => '2015001003') ], 'callback' => [ 'return_url' => 'http://www.your-url.tld/return', 'notification_url' => 'http://www.your-url.tld/notify' ] ]); if ($response->hasSucceed()) { $url = $response->json['gw_url']; echo $response; }
许可证
版权所有(c)2017 Haze s.r.o MIT许可。