hongyukeji / laravel-payment
Laravel payment.
Installs: 143
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/hongyukeji/laravel-payment
Requires
- php: >=7.0
- omnipay/paypal: ^3.0
Requires (Dev)
- mockery/mockery: ^0.9.9
- phpunit/phpunit: ~6.5 || ~7.0
README
💳 Omnipay ServiceProvider for Laravel.
Installing
$ composer require hongyukeji/laravel-payment
After updated composer, if you are using laravel version < 5.5, you need to register service provider:
// config/app.php
    'providers' => [
        //...
        Hongyukeji\LaravelPayment\Providers\PaymentServiceProvider::class,
    ],
And publish the config file:
$ php artisan vendor:publish --provider="Hongyukeji\\LaravelPayment\\Providers\\PaymentServiceProvider"
if you want to use facade mode, you can register a facade name what you want to use, for example LaravelPayment:
// config/app.php
    'aliases' => [
        'Payment' => Hongyukeji\LaravelPayment\Facades\Payment::class, // This is default in laravel 5.5
    ],
configuration
// config/payments.php
    // The default gateway name which configured in `gateways` section.
    'default_gateway' => 'paypal',
    // The default options for every gateways.
    'default_options' => [
        'test_mode' => true,
        // ...
    ],
    /*
     * The gateways, you can config option by camel case or snake_case name.
     *
     * the option name is followed from gateway class, for example:
     *
     * $gateway->setMchId('hongyukeji');
     *
     * you can configured as:
     *  'mch_id' => 'hongyukeji',
     * or:
     *  'mchId' => 'hongyukeji',
     */
    'gateways' => [
        'paypal' => [
            'driver' => 'PayPal_Express',
            'options' => [
                'username' => env('PAYPAL_USERNAME'),
                'password' => env('PAYPAL_PASSWORD'),
                'signature' => env('PAYPAL_SIGNATURE'),
                'test_mode' => env('PAYPAL_TEST_MODE'),
            ],
        ],
        // other gateways
    ],
install payment gateways
You need to install the gateway you want to use: omnipay#payment-gateways
Usage
Gateway instance:
Payment::gateway('GATEWAY NAME'); // GATEWAY NAME is key name of `gateways` configuration.
Payment::gateway('alipay');
Payment::gateway('paypal');
Using default gateway:
Payment::purchase(...);
Example:
$formData = [
    'number' => '4242424242424242', 
    'expiryMonth' => '6', 
    'expiryYear' => '2030', 
    'cvv' => '123'
];
$response = Payment::purchase([
    'amount' => '10.00', 
    'currency' => 'USD', 
    'card' => $formData,
))->send();
if ($response->isRedirect()) {
    // redirect to offsite payment gateway
    $response->redirect();
} elseif ($response->isSuccessful()) {
    // payment was successful: update database
    print_r($response);
} else {
    // payment failed: display message to customer
    echo $response->getMessage();
}
For more use about Omnipay, please refer to Omnipay Official Home Page
License
MIT