31 lines
900 B
PHP
31 lines
900 B
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Api;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Services\RobokassaService;
|
|
use Illuminate\Http\Request;
|
|
use InvalidArgumentException;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
use Throwable;
|
|
|
|
class RobokassaController extends Controller
|
|
{
|
|
public function result(Request $request, RobokassaService $robokassa): Response
|
|
{
|
|
try {
|
|
$invoice = $robokassa->processResult($request->all());
|
|
} catch (InvalidArgumentException $exception) {
|
|
report($exception);
|
|
|
|
return response('bad signature', 400)->header('Content-Type', 'text/plain');
|
|
} catch (Throwable $exception) {
|
|
report($exception);
|
|
|
|
return response('temporary error', 503)->header('Content-Type', 'text/plain');
|
|
}
|
|
|
|
return response('OK'.$invoice->id)->header('Content-Type', 'text/plain');
|
|
}
|
|
}
|