hongyukeji/laravel-payment

v1.2.2 2021-03-27 02:49 UTC

This package is auto-updated.

Last update: 2024-03-27 09:32:26 UTC


README

💳 Omnipay ServiceProvider for Laravel.

Build Status Latest Stable Version Total Downloads License composer.lock

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