You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
997 B

<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Services\Sms\AudienceSmsLogService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
class SubmailSubhookController extends Controller
{
public function handle(Request $request, AudienceSmsLogService $service): JsonResponse
{
$payload = $request->all();
$token = trim((string) ($payload['token'] ?? ''));
$signature = trim((string) ($payload['signature'] ?? ''));
if (! $service->verifySubhookSignature($token, $signature)) {
Log::warning('sms.subhook invalid_signature');
return response()->json(['status' => 'error'], 403);
}
try {
$service->applySubhook($payload);
} catch (\Throwable $e) {
Log::error('sms.subhook apply_failed', ['error' => $e->getMessage()]);
}
return response()->json(['status' => 'success']);
}
}