Я экспериментирую с мылом 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.
Спасибо:)