Привет, кто нибудь знает как интегрировать laravel c 1с.
Пробовал по документации 1с выгрузить товары на сайт, через роуты не проходит инициализацию, пока что сделал без роутов и контроллера в простом php файле, но хотелось бы все сделать через контроллер. Если кто уже сталкивался с этим помогите пожалуйста.
Вот мой контроллер(в котором работает только два первых запроса checkauth и init)
public function exchange(Request $request) {
$cookieName = config('session.cookie');
$cookieID = Session::getId();
$csrf = csrf_token();
$date = date('Y-m-d H:m:s');
if($request->get('type') == 'catalog')
{
switch ($request->mode)
{
case 'checkauth':
$user = $_SERVER['PHP_AUTH_USER'];
$pass = $_SERVER['PHP_AUTH_PW'];
if(Auth::attempt(['email' => $user, 'password' => $pass]))
{
return response("success\n$cookieName\n$cookieID\n$csrf\n$date")
->header("Content-Type" ,"text/plane; charset=UTF-8");
};
case "init":
return response("no\nfile_limit=100000000000\nsessid=$cookieID\nversion=3.1")
->header("Content-Type" ,"text/plane; charset=UTF-8");
case "file":
$filename = $request->get('filename');
$file_content = file_get_contents('php://input');
Storage::disk('public')->put('file.txt', 'Contents');
}
}
}
это мой роут для контроллера
Route::any('/1c_exchange.php', 'ExchangeController@exchange');
а это мой 1c_exchange.php файлик в котором все работает
<?php
$user = "admin";
$pass = "admin";
$path = "upload/";
if (!isset($_SERVER['PHP_AUTH_USER']) && !isset($_SERVER["PHP_AUTH_PW"]) && !isset($_REQUEST["type"])) {
header('WWW-Authenticate: Basic realm="1C-Exchange"');
header('HTTP/1.0 401 Unauthorized');
$_SESSION["login"] = false;
die("failure");
}
if (($_SERVER["PHP_AUTH_USER"] == $user && $_SERVER["PHP_AUTH_PW"] == $pass) || $_SESSION["login"]) {
$_SESSION["login"] = true;
if ($_REQUEST["type"] == "catalog") {
switch ($_REQUEST["mode"]):
case "checkauth":
die("success");
break;
case "init":
die("zip=no" . "\r\n" . "file_limit=0");
break;
case "file":
$filename = (strpos($_REQUEST["filename"], ".") == 0) ? substr($_REQUEST["filename"], 1) : $_REQUEST["filename"];
$dirname = dirname($path . $filename);
if (!is_dir($dirname))
mkdir($dirname, 0755, true);
$file = fopen($path . $filename, 'ab') or die("failure");
fwrite($file, file_get_contents('php://input'));
fclose($file);
die("success");
break;
endswitch;
}
if ($_REQUEST["type"] == "sale") {
}
} else {
header('WWW-Authenticate: Basic realm="1C-Exchange"');
header('HTTP/1.0 401 Unauthorized');
$_SESSION["login"] = false;
die("failure");
}