aslnbxrz / payment-providers-manager
Payment Providers Manager for Laravel - Core package for payment providers
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/aslnbxrz/payment-providers-manager
Requires
- php: ^8.4
- illuminate/contracts: ^11.0||^12.0
- spatie/laravel-data: ^4.17
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.8
- orchestra/testbench: ^10.0.0||^9.0.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-arch: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
This package is auto-updated.
Last update: 2025-10-07 09:01:04 UTC
README
About
A package for Laravel Socialite that allows you to easily add new providers or override current providers.
Benefits
- You will have access to all of the providers that you load in using the manager.
- Instantiation is deferred until Socialite is called
- You can override current providers
- You can create new providers
- Lumen usage is easy
stateless()
can be set totrue
orfalse
- You can override a config dynamically
- It retrieves environment variables directly from the
.env
file instead of also having to configure the services array.
Available Providers
- See the SocialiteProviders list
- You can also make your own or modify someone else's
Reference
- Laravel docs about events
- Laracasts video on events in Laravel 5
- Laravel Socialite Docs
- Laracasts Socialite video
Creating a Handler
Below is an example handler. You need to add this full class name to the listen[]
in the EventServiceProvider
.
- See also the Laravel docs about events.
providername
is the name of the provider such asmeetup
.- You will need to change your the namespacing and class names of course.
namespace Your\Name\Space; use SocialiteProviders\Manager\SocialiteWasCalled; class ProviderNameExtendSocialite { public function handle(SocialiteWasCalled $socialiteWasCalled) { $socialiteWasCalled->extendSocialite('providername', \Your\Name\Space\Provider::class); } }
Creating a Provider
- Look at the already created providers for inspiration.
- See this article on Medium
Overriding a Built-in Provider
You can easily override a built-in laravel/socialite
provider by creating a new one with exactly the same name (i.e. '
facebook').
Dynamically Passing a Config
You can dynamically pass a config by using:
$clientId = "secret"; $clientSecret = "secret"; $redirectUrl = "http://yourdomain.com/api/redirect"; $additionalProviderConfig = ['site' => 'meta.stackoverflow.com']; $config = new \SocialiteProviders\Manager\Config($clientId, $clientSecret, $redirectUrl, $additionalProviderConfig); return Socialite::with('provider-name')->setConfig($config)->redirect();
You must call this before you run any Socialite methods.
Creating an OAuth1 Server Class
Take a look at the other OAuth1 providers for inspiration.
Getting the Access Token Response Body
Laravel Socialite by default only allows access to the access_token
. Which can be accessed
via the \Laravel\Socialite\User->token
public property. Sometimes you need access to the whole response body which
may contain items such as a refresh_token
.
To make this possible, the OAuth2 provider class needs to extend \SocialiteProviders\Manager\OAuth2\AbstractProvider
and
OAuth1 providers need to utilize the \SocialiteProviders\Manager\OAuth1\AbstractProvider
and
\SocialiteProviders\Manager\OAuth1\Server
.
You can access it from the user object like so: $user->accessTokenResponseBody