siewwp / laravel-service-consumer
laravel server-to-server service consumer with HMAC authentication
Requires
- siewwp/php-hmac-http: ^1.1.2
- symfony/psr-http-message-bridge: ~1.0
- zendframework/zend-diactoros: ^1.7
Requires (Dev)
- illuminate/http: ~5.3
- illuminate/routing: ~5.3
- vlucas/phpdotenv: ~2.0
This package is not auto-updated.
Last update: 2025-03-30 07:15:52 UTC
README
Server-to-server service consuming with hmac authentication.
Installation
composer require siewwp/laravel-service-consumer:dev-master
Usage
Binding your key
Your should bind your app id and secret at your ServiceProvider
.
Refer to Hmac http client for more information.
Refer to Laravel Container for more information.
Handling webhook notification
If the service host is notifying event using webhook, you may define your webhook handler in your controller and extend to the webhook controller like so:
<?php namespace App\Http\Controllers; use Siewwp\LaravelServiceConsumer\Http\Controllers\Webhook; use App\Http\Controllers\Controller; class InvoiceController extends Controller { public function handleInvoicePaid($payload) { // ... } }
Or you can use the Siewwp\LaravelServiceConsumer\HandleWebhook
trait in your controller
<?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; use Siewwp\LaravelServiceConsumer\HandleWebhook; class InvoiceController extends Controller { use HandleWebhook; public function handleInvoicePaid($payload) { // ... } }
The name of the webhook method should be 'handle' + 'CamelCase'
of the type of event notification. In the example above,
is to handle InvoicePaid
type event.
Refer to laravel-service-host for more information.
After that, you may register the webhook controller it on RouteServiceProvider.php
file.
<?php // ... public function boot() { // ... Route::post( 'tenant/webhook', '\App\Http\Controllers\InvoiceController@handleWebhook' ); } ...
You can also register it on your
web
routes but you may need to exclude CSRF middleware
TO DO
TESTING