Перенаправление при обнаружении ошибки API Ecircle SOAP - PullRequest
1 голос
/ 21 февраля 2012

Я экспериментирую с мылом api Ecircle, в настоящее время я использую его для отправки сообщений новым пользователям, которые зарегистрировались на моем сайте. Я пытаюсь выполнить обработку ошибок, чтобы в случае сбоя API функция отправляла мне электронное письмо с ошибкой и идентификатором пользователя / адресом электронной почты, а затем возвращалась к основной функции и продолжала в том же духе. Таким образом, я буду знать о проблеме, и пользователь сможет продолжать то, что он делает, без какого-либо вмешательства. Вот пример функции:

function lookupuserbyemail($userinput)  {
    $ns = "http://webservices.ecircleag.com/rpcns";
    $client = new soapclient('http://webservices.ecircle-ag.com/soap/ecm.wsdl');

    $logonparams = array('realm' => "http://email.mywebsite.com",
                        'user' => "admin@hotmail.com",
                        'passwd' => "12345");

    // check if logon was successful
    $result = $client->logon($logonparams);
    if (is_soap_fault($result)) {
    sendMsgToMe();
    return;
    }
    $sessionid = $result->logonReturn;

    // logon ok, now call the function
    $params = array('email' => $userinput,
                    'session' => $sessionid);
    $result = $client->lookupUserByEmail($params);

    //check if the function was executed properly
    if (is_soap_fault($result)) {     
        $result = "error";
        return $result;
    }

    // print the result 
    $userinfo = htmlspecialchars($result->lookupUserByEmailReturn);

    // now logout
    $params = array('session' => $sessionid);
    $client->logout($params);
    if (is_soap_fault($result)) {
        $result = "error";
        return $result;
    }
    return $userinfo;
}

В соответствии с их вики по адресу http://developer.ecircle -ag.com / apiwiki / wiki / SynchronousSoapAPI # section-SynchronousSoapAPI-PHPSample приведенный ниже код предназначен для обнаружения ошибки или сбоя функции API:

    $result = $client->logon($logonparams);
    if (is_soap_fault($result)) {
    sendMsgToMe();
    return;
    }

Однако это не так, вместо сообщения об ошибке, он просто падает, и пользователь увидит это:

Uncaught SoapFault exception: [soapenv:Server.userException] com.ecircleag.webservices.EcMException: Error: blablablabla.

Очевидно, что это не так здорово, поскольку пользователь не сможет продолжить работу, если служба ecircle не работает, поэтому я хотел бы знать, возможно ли продолжение работы моего кода, даже когда регистрируется ошибка SOAP.

Спасибо:)

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