我正在尝试使用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错误,我的代码是否可以继续运行。
谢谢:)