如何订阅 Exact Online Webhooks
How to subscribe with Exact Online Webhooks
我可以使用精确的在线订阅 webhook API,我无法从 webhook 通知中获得对 CallbackURL 的响应。
我使用以下请求订阅:
$subscription = new \Picqer\Financials\Exact\WebhookSubscription($connection);
$subscription->deleteSubscriptions();
$subscription->CallbackURL = $callback;
$subscription->Topic = $topic;
$subscription->save();
请给我建议通过在线 php API 获取 webhook 通知。
webhook注册成功后
我找到了如何在 CallbackURL 中处理请求的解决方案。
$input = file_get_contents('php://input');
您将收到 json 回复。
按照下面的示例,您可以验证您的 webhook 响应。
$requestContent= file_get_contents('php://input'); // (this is json response)
$webhookSecret='XXXXXXXXXXXXXXXX'; //your webhook Secret key
$returnvalue=authenticate($requestContent,$webhookSecret); // this will get either true/false
function authenticate($requestContent, $webhookSecret)
{
$matches = [];
$matched = preg_match('/^{"Content":(.*),"HashCode":"(.*)"}$/', $requestContent, $matches);
if ($matched === 1 && isset($matches[1]) && isset($matches[2])) {
return $matches[2] === strtoupper(hash_hmac('sha256', $matches[1], $webhookSecret));
}
return false;
}
我可以使用精确的在线订阅 webhook API,我无法从 webhook 通知中获得对 CallbackURL 的响应。
我使用以下请求订阅:
$subscription = new \Picqer\Financials\Exact\WebhookSubscription($connection);
$subscription->deleteSubscriptions();
$subscription->CallbackURL = $callback;
$subscription->Topic = $topic;
$subscription->save();
请给我建议通过在线 php API 获取 webhook 通知。
webhook注册成功后
我找到了如何在 CallbackURL 中处理请求的解决方案。
$input = file_get_contents('php://input');
您将收到 json 回复。
按照下面的示例,您可以验证您的 webhook 响应。
$requestContent= file_get_contents('php://input'); // (this is json response)
$webhookSecret='XXXXXXXXXXXXXXXX'; //your webhook Secret key
$returnvalue=authenticate($requestContent,$webhookSecret); // this will get either true/false
function authenticate($requestContent, $webhookSecret)
{
$matches = [];
$matched = preg_match('/^{"Content":(.*),"HashCode":"(.*)"}$/', $requestContent, $matches);
if ($matched === 1 && isset($matches[1]) && isset($matches[2])) {
return $matches[2] === strtoupper(hash_hmac('sha256', $matches[1], $webhookSecret));
}
return false;
}