@Gosver

Как принять PUT запрос от API кассы эвотор?

Добрый день.

Пытаюсь принять от API Кассы Эвотор PUT запрос на документы. Однако он никак не поступает по адресу указанному в настройках приложения. Почему именно PUT запрос, потому что я никогда их не принимал раньше, и потому, что на другой метод по приему чеков работает и я принмаю json.
А тут нет. Пишу в техподдержку но они не особо разговорчивые присылают вебхук адрес тот но резульатата нет.

"Добрый день.
Вот вебхук
Delivery request: PUT

'http...тут все верно.... [{uuid=66f264b7-bb3f-446b-a710-565b89aaa880, type=FPRINT, deviceUuid=20200404-F0E8-409E-80C4-5DC3B7DFD2EE, transactions=[{type=FPRINT_OPEN_SESSION, uuid=null, id=1,.....

На сайте по адресу index.php

PHP код

$json = file_get_contents("php://input");
	$filename = 'log.txt';
	$filenamedir = __DIR__.$filename;
	
	$reqname = 'req.txt';
	$reqnamedir = __DIR__.$reqname;

//Message to mail

	
	if(!empty($json)){

	
	if (file_exists($filenamedir)) {
    $fd = fopen('./'.$filename, 'w') or die("не удалось создать файл");
	$str = $json;
	fwrite($fd, $str);
	fclose($fd);
} else {
    $fd = fopen('./'.$filename, 'a') or die("не удалось создать файл");
	$str = PHP_EOL.'-------------'.PHP_EOL.$json;
	fwrite($fd, $str);
	fclose($fd);
}


}else{
    	if (file_exists($reqnamedir)) {
    $fd = fopen('./'.$reqname , 'w') or die("не удалось создать файл");
	$str = 'запрос';
	fwrite($fd, $str);
	fclose($fd);
} else {
    $fd = fopen('./'.$reqname , 'a') or die("не удалось создать файл");
	$str = PHP_EOL.'-------------'.PHP_EOL.'запрос';
	fwrite($fd, $str);
	fclose($fd);
}

}
  • Вопрос задан
  • 342 просмотра
Решения вопроса 1
@Gosver Автор вопроса
Короче говоря все оказалось прозаичней, согласно документации в настройках вашего приложения в эвотор при приеме документов, к вашей ссылке добавляется часть /api/v1/inventories/stores/{storeUuid}/documents , но она не заканчивается закрывающимся слешем "/", а конечный адрес должен быть с ним иначе, вызывается редирект 301, и запрос не приходит, так как нужен только ответ 200, странно конечно. Решил созданием в корне сайта идущим до /api/v1/inventories/stores/{storeUuid}/documents файла .htacsess
с перенаправление все на index.php корня, а так уже настроил Request_uri

<?php
if($_SERVER['REQUEST_URI'] == '/ttts/docs/api/v1/inventories/stores/20191106-3533-4032-8090-DA006342D842/documents'){
		$json = file_get_contents("php://input");
	$filename = 'log.txt';
	$filenamedir = __DIR__.$filename;
     ................................
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
vitaly_74
@vitaly_74
а что получаете на выходе? что в самом файле? а то входную информацию дали а результат работы нет.
а так вроде код написан верно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы