recca0120/laravel-payum
| Install | |
|---|---|
composer require recca0120/laravel-payum |
|
| Latest Version: | v1.1.5 |
| PHP: | >=5.5.9 |
| Laravel: | 5 |
| License: | MIT |
| Last Updated: | Feb 9, 2018 |
| Links: | GitHub · Packagist |
Payum for Laravel 5
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' => []
],
];
Related Packages
Rich payment solutions for Laravel framework. Paypal, payex, authorize.net, be2b...
Rich payment solutions for Laravel framework. Paypal, payex, authorize.net, be2b...
One million downloads of Payum already! Payum offers everything you need to work...
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| v1.1.5 | >=5.5.9 | ^5.1 | MIT | |
| v1.1.4 | >=5.5.9 | ~5.1 | MIT | |
| v1.1.3 | >=5.5.9 | ~5.1 | MIT | |
| v1.1.2 | >=5.5.9 | ~5.1 | MIT | |
| v1.1.1 | >=5.5.9 | ~5.1 | MIT | |
| v1.1.0 | >=5.5.9 | ~5.1 | MIT | |
| v1.0.7 | >=5.5.9 | ~5.1 | MIT | |
| v1.0.5 | >=5.5.9 | ~5.1 | MIT | |
| v1.0.4 | >=5.5.9 | ~5.1 | MIT | |
| v1.0.3 | >=5.5.9 | ~5.1 | MIT | |
| v1.0.2 | >=5.5.9 | ~5.1 | MIT | |
| v1.0.1 | >=5.5.9 | ~5.1 | MIT | |
| v1.0.0 | >=5.5.9 | ~5.1 | MIT | |
| v0.2.0 | >=5.5.9 | ~5.1 | MIT | |
| v0.1.2 | >=5.5.9 | ~5.1 | MIT | |
| v0.1.1 | >=5.5.9 | ~5.1 | MIT | |
| v0.1.0 | >=5.5.9 | ~5.1 | MIT | |
| v0.0.6 | >=5.5.9 | ~5.1 | MIT | |
| v0.0.5 | >=5.5.9 | ~5.1 | MIT | |
| v0.0.4 | >=5.5.9 | ~5.1 | MIT | |
| v0.0.3 | >=5.5.9 | ^5.1 | MIT | |
| v0.0.2 | >=5.5.9 | ^5.1 | MIT | |
| v0.0.1 | >=5.5.9 | ^5.1 | MIT |

