vanesxl
@vanesxl

Кто работал с API фнс РФ?

Добрый день, подскажите пожалуйста.
Мне нужно реализовать API фнс.
Делаю по примеру тут:
https://gist.github.com/reinhurd/bf16877c49140c913...
$ch = curl_init();

curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);

curl_setopt ($ch, CURLOPT_PROXYTYPE, 7);

curl_setopt_array($ch, array(
    CURLOPT_URL => "https://openapi.nalog.ru:8090/open-api/AuthService/0.1?wsdl",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS =>"
<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ns=\"urn://x-artefacts-gnivc-ru/inplat/servin/OpenApiMessageConsumerService/types/1.0\">
<soapenv:Header/>
<soapenv:Body>
<ns:GetMessageRequest>
<ns:Message>\n<tns:AuthRequest xmlns:tns=\"urn://x-artefacts-gnivc-ru/ais3/kkt/AuthService/types/1.0\">
<tns:AuthAppInfo>
<tns:MasterToken>/*YOUR MASTER TOKEN HERE*/</tns:MasterToken>
</tns:AuthAppInfo>
</tns:AuthRequest>
</ns:Message>
</ns:GetMessageRequest>
</soapenv:Body>
</soapenv:Envelope>",
    CURLOPT_HTTPHEADER => array(
        "Content-Type: text/xml"
    ),
));

$response = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);
//echo $response;
//echo $error;
echo html_entity_decode($response);

Подставил свой токен, делаю запрос, мне возвращает вот что:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
	<soap:Body>
		<GetMessageResponse xmlns="urn://x-artefacts-gnivc-ru/inplat/servin/OpenApiMessageConsumerService/types/1.0">
			<Message>
				<tns:AuthResponse xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="urn://x-artefacts-gnivc-ru/inplat/servin/OpenApiAsyncMessageProviderService/types/1.0" xmlns:tns="urn://x-artefacts-gnivc-ru/ais3/kkt/AuthService/types/1.0">
					<tns:Fault>
						<tns:Message>Мастер токен не найден.</tns:Message>
					</tns:Fault>
				</tns:AuthResponse>
			</Message>
		</GetMessageResponse>
	</soap:Body>
</soap:Envelope>

Думал может мне не тот токен дали и т.п. Писал в поддержку говорят мол токен верный, что я делаю не так?
  • Вопрос задан
  • 1553 просмотра
Пригласить эксперта
Ответы на вопрос 1
agoalofalife
@agoalofalife
Team Lead
Надо использовать soap. Для это надо использовать, внутренний пакет в php.
$soap = new SoapClient('https://openapi.nalog.ru:8090/open-api/AuthService/0.1?wsdl');
$soap->__soapCall("GetMessage", [[
            'Message' => [
                'any' => "<tns:AuthRequest xmlns:tns=\"urn://x-artefacts-gnivc-ru/ais3/kkt/AuthService/types/1.0\">
	<tns:AuthAppInfo>
		<tns:MasterToken>$masterToken</tns:MasterToken>
	</tns:AuthAppInfo>
</tns:AuthRequest>"
            ]
        ]];)

Это запрос для получение временного токена.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы