recca0120/laravel-payum
Composer 安装命令:
composer require recca0120/laravel-payum
包简介
Rich payment solutions for Laravel framework. Paypal, payex, authorize.net, be2bill, omnipay, recurring paymens, instant notifications and many more
关键字:
README 文档
README
Installing
To get the latest version of Laravel Exceptions, simply require the project using Composer:
composer require recca0120/laravel-payum
Instead, you may of course manually update your require block and run composer update if you so choose:
{
"require": {
"recca0120/laravel-payum": "^1.0.6"
}
}
Include the service provider within config/app.php. The service povider is needed for the generator artisan command.
'providers' => [ ... Recca0120\LaravelPayum\LaravelPayumServiceProvider::class, ... ];
Config
return [ 'route' => [ 'prefix' => 'payment', 'as' => 'payment.', 'middleware' => ['web'], ], 'storage' => [ // options: eloquent, filesystem 'token' => 'filesystem', // options: eloquent, filesystem 'gatewayConfig' => 'filesystem', ], 'gatewayConfigs' => [ // 'customFactoryName' => [ // 'factory' => 'FactoryClass', // 'username' => 'username', // 'password' => 'password', // 'sandbox' => false // ], ], ];
VerifyCsrfToken
namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier; class VerifyCsrfToken extends BaseVerifier { /** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ 'payment/*' ]; }
Controller
namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Routing\Controller as BaseController; use Payum\Core\GatewayInterface; use Payum\Core\Model\PaymentInterface; use Payum\Core\Payum; use Payum\Core\Request\GetHumanStatus; use Payum\Core\Security\TokenInterface; use Payum\Core\Storage\StorageInterface; use Recca0120\LaravelPayum\Service\PayumService; class PaymentController extends BaseController { public function capture(PayumService $payumService) { return $payumService->capture('allpay', function ( PaymentInterface $payment, $gatewayName, StorageInterface $storage, Payum $payum ) { $payment->setNumber(uniqid()); $payment->setCurrencyCode('TWD'); $payment->setTotalAmount(2000); $payment->setDescription('A description'); $payment->setClientId('anId'); $payment->setClientEmail('foo@example.com'); $payment->setDetails([ 'Items' => [ [ 'Name' => '歐付寶黑芝麻豆漿', 'Price' => (int) '2000', 'Currency' => '元', 'Quantity' => (int) '1', 'URL' => 'dedwed', ], ], ]); }); } public function done(PayumService $payumService, $payumToken) { return $payumService->done($payumToken, function ( GetHumanStatus $status, PaymentInterface $payment, GatewayInterface $gateway, TokenInterface $token ) { return response()->json([ 'status' => $status->getValue(), 'client' => [ 'id' => $payment->getClientId(), 'email' => $payment->getClientEmail(), ], 'number' => $payment->getNumber(), 'description' => $payment->getCurrencyCode(), 'total_amount' => $payment->getTotalAmount(), 'currency_code' => $payment->getCurrencyCode(), 'details' => $payment->getDetails(), ]); }); } }
Router
Route::get('payment', [ 'as' => 'payment', 'uses' => 'PaymentController@capture', ]); Route::any('payment/done/{payumToken}', [ 'as' => 'payment.done', 'uses' => 'PaymentController@done', ]);
Eloquent
If you want use eloquent you need change config.php and create database
Migrate
publish vendor
artisan vendor:publish --provider="Recca0120\LaravelPayum\LaravelPayumServiceProvider"
migrate
artisan migrate
modify config
return [ 'route' => [ 'prefix' => 'payment', 'as' => 'payment.', 'middleware' => ['web'], ], 'storage' => [ // options: eloquent, eloquent 'token' => 'filesystem', // options: eloquent, filesystem 'gatewayConfig' => 'filesystem', ], // 'customFactoryName' => [ // 'factory' => 'FactoryClass', // 'username' => 'username', // 'password' => 'password', // 'sandbox' => false // ], 'gatewayConfigs' => [ 'offline' => [] ], ];
统计信息
- 总下载量: 1.46k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 74
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2016-07-06