amsgames / laravel-shop-gateway-paypal
PayPal gateway for Laravel Shop package.
Installs: 8 554
Dependents: 6
Suggesters: 0
Security: 0
Stars: 11
Watchers: 2
Forks: 13
Open Issues: 1
Requires
- php: >=5.4.0
- illuminate/console: ~5.0
- illuminate/support: ~5.0
- paypal/rest-api-sdk-php: *
Requires (Dev)
- sami/sami: dev-master
This package is not auto-updated.
Last update: 2024-11-09 18:27:26 UTC
README
PayPal Gateway solution for Laravel Shop.
Gateways
This package comes with:
-
Direct Credit Card payments
-
PayPal Express payments
Contents
Installation
In order to install Laravel Shop, you can run
"amsgames/laravel-shop-gateway-paypal": "v1.0.0"
to your composer.json. Then run composer install
or composer update
.
Then in your config/shop.php
add
'paypal' => Amsgames\LaravelShopGatewayPaypal\GatewayPayPal::class, 'paypalExpress' => Amsgames\LaravelShopGatewayPaypal\GatewayPayPalExpress::class,
in the gateways
array.
Configuration
Authentication
Set your PayPal app authentication credentials in config/services.php
, like:
'paypal' => [ 'client_id' => env('PAYPAL_CLIENT_ID', ''), 'secret' => env('PAYPAL_SECRET', ''), 'sandbox' => env('PAYPAL_SANDBOX', true), ],
NOTE: Change sandbox
to false when going live.
Gateway Usage
Direct Credit Card
The only additional step needed for this to work is to add the credit card information before checkout
and before order placement
, like:
// (1) - Set gateway Shop::setGateway('paypal'); // (2) - Add credit card for validation Shop::gateway()->setCreditCard( $cartType = 'visa', $cardNumber = '4111111111111111', $month = '1', $year = '2019', $cvv = '123', $firstname = 'John', $lastname = 'Doe' ); // (3) - Call checkout if (!Shop::checkout()) { echo Shop::exception()->getMessage(); // echos: card validation error. } // (4) - Create order $order = Shop::placeOrder(); // (5) - Review payment if ($order->hasFailed) { echo Shop::exception()->getMessage(); // echos: payment error. }
NOTE: If you are calling Shop::checkout()
in a different controller or view than Shop::placeOrder
, be sure to recall setCreditCard()
before calling Shop::placeOrder()
in your second controller. This package does not stores credit card data.
RECOMMENDATION: Use SSL to secure you checkout flow when dealing with credit cards.
PayPal Express
If you don't want to deal with credit card forms and SSL, you can us PayPal Express instead. PayPal Express handles the payment process outside your website and returns with the results.
Look at PayPal's documentation for more information about this process.
Configuration
PayPal will callback Laravel Shop and this gateway with the results. Laravel Shop will then redirect the customer to the route name set in config/shop.php
and will pass by as parameter the Order Id
. Set up this route before using this gateway.
/* |-------------------------------------------------------------------------- | Redirect route after callback |-------------------------------------------------------------------------- | | Which route to call after the callback has been processed. | */ 'callback_redirect_route' => 'home',
Usage
// (1) - Set gateway Shop::setGateway('paypalExpress'); // (2) - Call checkout / OPTIONAL // You can call this to keep a standard flow // Although this step for this gateway is not needed. Shop::checkout(); // (3) - Create order $order = Shop::placeOrder(); // (4) - Review order and redirect to payment if ($order->isPending) { // PayPal URL to redirect to proceed with payment $approvalUrl = Shop::gateway()->getApprovalUrl(); // Redirect to url return redirect($approvalUrl); } // (5) - Callback // You don't have to do anything. // Laravel Shop will handle the callback and redirect the customer to the configured route.
License
This package is free software distributed under the terms of the MIT license.
Additional Information
This package uses the official PayPal PHP SDK.