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
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']);
|
|
}
|
|
}
|