遇到Ecircle SOAP API错误时重定向

时间:2012-02-21 13:52:12

标签: php api soap

我正在尝试使用Ecircle soap api,目前我正在使用它向在我网站上注册的新用户发送消息。我正在尝试进行错误处理,以便在API失败时,该函数将向我发送一封错误和用户ID /电子邮件的电子邮件,然后返回主函数并继续它的快乐方式。这样我就会意识到这个问题,用户将能够在没有任何干扰的情况下继续他们正在做的事情。这是一个函数的例子:

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的wiki,下面的代码是检测错误或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错误,我的代码是否可以继续运行。

谢谢:)

0 个答案:

没有答案