A Symfony bundle for Yousign.
- Provide a service to access the API for a better Symfony integration
- Webhook handler (HTTP controller) + Webhook Event
- Php >= 7.1
- Symfony 4.4 or 5+
$ composer require neyric/yousign-bundle
Load the bundle in your app
$bundles = [
// ...
new \Neyric\YousignBundle\NeyricYousignBundle(),
];
The bundle (in particular the YousignApiClient), expects those 2 environement variables to be defined
- YOUSIGN_BASE_URL (should be https://staging-app.yousign.com or https://api.yousign.com)
- YOUSIGN_API_KEY
First, setup the route in your routes.yaml file :
neyric_yousign:
path: /yousign_webook/hook_handler # Customizable url
controller: Neyric\YousignBundle\Controller\YousignController::webhookHandlerAction
Create a subscriber
use Neyric\YousignBundle\Event\WebhookEvent;
class MySubscriber implements EventSubscriberInterface
{
public function onYousignWebhook(WebhookEvent $event)
{
$headers = $event->getHeaders();
if (array_key_exists('x-my-custom-header', $headers)) {
// ...
}
// ...
}
public static function getSubscribedEvents()
{
return [
WebhookEvent::class => ['onYousignWebhook'],
];
}
}
And eventually declare the service with the kernel.event_subscriber
tag :
App\Subscriber\MySubscriber:
class: App\Subscriber\MySubscriber
tags:
- { name: kernel.event_subscriber }
Using a local tunnel will save you a lot of time because you can test locally. The recommended choice is ngrok. Ngrok is a tool to tunnel our local server to the web, making our local webhook handlers available to the email providers webhooks.
neyric/yousign-bundle is distributed under MIT license, see the LICENSE file.
Report bugs or suggest features using issue tracker on GitHub.