我正在努力将 Zoho Sign 集成到我的 Laravel 应用程序中,我需要设置一个 Webhook 接收器以从 Zoho Sign 获取完整的文档。但是,Zoho Sign 的 Webhook 系统仅接受 GET 请求。
我之前已经在 Laravel 中成功实现了 webhook 接收器,但它们通常使用 POST 请求。我不确定如何处理 Laravel 中 webhook 端点的 GET 请求。
有人可以提供有关如何在 Laravel 中创建 webhook 接收器来侦听来自 Zoho Sign 的 GET 请求的指南或代码示例吗?具体来说,我需要捕获 Zoho Sign 发送的 Webhook 数据并在我的 Laravel 应用程序中对其进行处理。
任何帮助或见解将不胜感激!
这是我迄今为止尝试过的:
Route::get('receive-waiver', [WaiverController::class, 'ReceiveWaiver']);
<?php
namespace App\Http\Controllers\Zoho;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
class WaiverController extends Controller
{
public function ReceiveWaiver(Request $request)
{
\Log::info('Webhook success!');
\Log::info('Webhook Data: ' . json_encode($request['requests']));
\Log::info('Webhook Document: ' . json_encode($request['requests']['document_ids']));
try {
if (!empty($request['requests'])) {
$waiverData = json_encode($request['requests']);
$waiverDocument = json_encode($request['requests']['document_ids']);
\Log::info('Success Webhook Data: ' . $waiverData);
\Log::info('Success Webhook Document: ' . $waiverDocument);
}
return response()->json(['message' => 'Webhook received'], true);
} catch (\Exception $e) {
$errorMessage = $e->getMessage();
\Log::info('Error Webhooks: ' . $errorMessage);
return response()->json(['message' => $e->getMessage()]);
}
}
}
在 Zoho Sign 中,这就是它的样子。
Zoho Sign 的 Webhook 系统仅接受 GET 请求。
不会,Zoho Sign 会向您在设置页面中提供的 Webhook URL 发出 POST 请求。请求有效负载(请求正文)将包含与发生的事件相关的数据。
所以,你可以像以前一样继续发展。您可以使用应用程序中的 POST 路由来完成此操作。
Route::post('receive-waiver', [WaiverController::class, 'ReceiveWaiver']);
您可以参考以下链接:
https://help.zoho.com/portal/en/community/topic/webhooks-for-zoho-sign