xero-php
xero-php copied to clipboard
Webhook for multiple organisations
Hi guys,
I have a question about webhook. If our app is authorised for multiple Xero organisations, how do we make webhook work? Below is the Webhook example from the document, you can see the first parameter for Webhook is XeroPHP\Application.
// Configure the webhook signing key on the application
$application->setConfig(['webhook' => ['signing_key' => 'xyz123']]);
$webhook = new Webhook($application, $request->getContent());
/**
* @return int
*/
$webhook->getFirstEventSequence();
/**
* @return int
*/
$webhook->getLastEventSequence();
/**
* @return \XeroPHP\Webhook\Event[]
*/
$webhook->getEvents();
However, to initialise the XeroPHP\Application variable, we need $tenantId.
$application = new \XeroPHP\Application($accessToken, $tenantId);
The problem is, there are multiple tenants(organisations), so we don't know the $tenantId.
Does anyone know how to make it work? Thanks!
Gordon
The JSON Payload contains the tenantId
getEvents() will return you an array of Event classes. Each Event will have the tenantId and other information as per the incoming JSON.
@rodjsta thanks, but the problem is before this stage.
You need $webhook
to run getEvents()
.
To create $webhook
, you need a XeroPHP\Application
instance.
To initialise a XeroPHP\Application
instance, you need tenantId
.
@gitstashgithub, right... I see. Sorry, I actually handle my webhook events independent of this package. I essentially capture each event from the payload and process them separately.
https://medium.com/swlh/handling-xero-webhooks-with-a-laravel-application-61eefd4492c4