SoapFault: похоже, у нас нет XML-документа Magento и laravel - PullRequest
0 голосов
/ 06 марта 2019

У меня проблема с приложением Laravel, например, когда я использую SoapClient, my_object_soap->login(); вернул эту ошибку:

Неустранимая ошибка: Uncaught Исключение SoapFault: [Клиент] выглядит так, как будто мыне получил XML

Я уже пробовал несколько решений, которые я исследовал в Google и здесь, но я не решил свою проблему.

мой код выглядит следующим образом:

    ini_set("soap.wsdl_cache_enabled",0);
    ini_set("soap.wsdl_cache",0);
    ini_set("error_reporting",-1);
    ini_set("display_errors","On");

    $wsdl_url = "https://example.com/index.php/api/v2_soap/index/?wsdl";
    $apiAuth = new \stdClass();
    $apiAuth->username = trim("myusermagento");
    $apiAuth->apiKey = trim("mykeymagento");

    try{
        $proxy = new SoapClient($wsdl_url,array('cache_wsdl' => WSDL_CACHE_NONE, 'trace' => true));
        $session = $proxy->login($apiAuth);
        $data = $session;
        $status = true;
        $responseStatus = 200;
    } catch(SoapFault $e) {
        $error = $e->getMessage();
        $data = $proxy->__getLastResponse();
        $status = false;
        $responseStatus = 500;
    }        

    return Response::json([
        'success' => $status, 
        'data' => $data,
        'erros'=> $error,
    ],$responseStatus);

Я понятия не имею, что проблема, когда я тестировал в SoapUI, с этим пользователем и ключом, все в порядке, но в моем приложении нет.

Мое приложение magento версии 1.6.2, и мой php7.2, я уже пытался перейти на php 5.6, потому что это может быть несовместимость с версией magento и моим php, но он все еще не работает.

Может кто-нибудь помочь мне?

1 Ответ

0 голосов
/ 06 марта 2019

Попробуйте, структурируйте ваш запрос следующим образом

    $options = array('trace'=> true,'exceptions' => true);            
    $client  = new \SoapClient('https://www.example.com?wsdl',$options);

    $params = new \stdClass();
    $params->key1 = 'XXXXXX';
    $params->Key2 = 'XXXXX';
    $soapVar = new \SoapVar($params,SOAP_ENC_OBJECT);

    $header = new \SoapHeader('https://www.example?wsdl','credentials',$soapVar);

    $client->__setSoapHeaders(array($header));


    $result=$client->login(function parameters here);

Приветствия !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...