【发布时间】:2020-07-22 07:36:30
【问题描述】:
我在 Bluehost 主机中使用了短信 API。当我运行它显示的代码时
Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://smeapps.mobitel.lk:8585/EnterpriseSMSV3/EnterpriseSMSWS?wsdl' : failed to load external entity "http://smeapps.mobitel.lk:8585/EnterpriseSMSV3/EnterpriseSMSWS?wsdl" in /storage/ssd4/825/11729825/public_html/sms/sms_backend.php:58 Stack trace: #0 /storage/ssd4/825/11729825/public_html/sms/sms_backend.php(58): SoapClient->SoapClient('http://smeapps....') #1 /storage/ssd4/825/11729825/public_html/sms/sms_backend.php(101): getClient() #2 /storage/ssd4/825/11729825/public_html/sms/sms_backend.php(27): createSession('', 'esyyyyy', 'xxxx', '') #3 {main} thrown in /storage/ssd4/825/11729825/public_html/sms/sms_backend.php on line 58
这是我的代码
<?php
$username = $_REQUEST['username'];
$password = $_REQUEST['password'];
//$alias = $_REQUEST['alias'];
$message = $_REQUEST['message'];
$number = $_REQUEST['numbers'];
$session=createSession('',$username,$password,'');
sendMessages($session,'XXXX',$message,$number,0); // 1 for promotional messages, 0 for normal message
closeSession($session);
$session=createSession('',$username,$password,'');
getMessagesFromShortCode($session,"shortcode");
getMessagesFromLongNumber($session,"longnum");
closeSession($session);
//create soap client
function getClient()
{
ini_set("soap.wsdl_cache_enabled", "0");
$client = new SoapClient("http://smeapps.mobitel.lk:8585/EnterpriseSMSV3/EnterpriseSMSWS?wsdl");
return $client;
}
//serviceTest
function serviceTest($id,$username,$password,$customer)
{
$client = getClient();
$user = new stdClass();
$user->id = '';
$user->username = $username;
$user->password = $password;
$user->customer = '';
$serviceTest = new stdClass();
$serviceTest->arg0 = $user;
return $client->serviceTest($serviceTest);
}
//create session
function createSession($id,$username,$password,$customer)
{
$client = getClient();
$user = new stdClass();
$user->id = $id;
$user->username = $username;
$user->password = $password;
$user->customer = $customer;
$createSession = new stdClass();
$createSession->user = $user;
$createSessionResponse = new stdClass();
$createSessionResponse = $client->createSession($createSession);
return $createSessionResponse->return;
}
//check if session is valid
function isSession($session)
{
$client = getClient();
$isSession = new stdClass();
$isSession->session = $session;
$isSessionResponse = new stdClass();
$isSessionResponse = $client->isSession($isSession);
return $isSessionResponse->return;
}
//send SMS to recipients
function sendMessages($session,$alias,$message,$recipients,$messageType)
{
$client=getClient();
$smsMessage= new stdClass();
$smsMessage->message=$message;
$smsMessage->messageId="";
$smsMessage->recipients=$recipients;
$smsMessage->retries="";
$smsMessage->sender=$alias;
$smsMessage->messageType=$messageType;
$smsMessage->sequenceNum="";
$smsMessage->status="";
$smsMessage->time="";
$smsMessage->type="";
$smsMessage->user="";
$sendMessages = new stdClass();
$sendMessages->session = $session;
$sendMessages->smsMessage = $smsMessage;
$sendMessagesResponse = new stdClass();
$sendMessagesResponse = $client->sendMessages($sendMessages);
return $sendMessagesResponse->return;
}
//send Unicoded SMS to recipients
function sendMessagesMultiLang($session,$alias,$message,$recipients,$messageType)
{
$client=getClient();
$smsMessageMultiLang = new stdClass();
$smsMessageMultiLang->message=$message;
$smsMessageMultiLang->messageId="";
$smsMessageMultiLang->recipients=$recipients;
$smsMessageMultiLang->retries="";
$smsMessageMultiLang->sender=$alias;
$smsMessageMultiLang->messageType=$messageType;
$smsMessageMultiLang->sequenceNum="";
$smsMessageMultiLang->status="";
$smsMessageMultiLang->time="";
$smsMessageMultiLang->type="";
$smsMessageMultiLang->user="";
$sendMessagesMultiLang = new stdClass();
$sendMessagesMultiLang->session = $session;
$sendMessagesMultiLang->smsMessageMultiLang = $smsMessageMultiLang;
$sendMessagesMultiLangResponse = new stdClass();
$sendMessagesMultiLangResponse = $client->sendMessagesMultiLang($sendMessagesMultiLang);
return $sendMessagesMultiLangResponse->return;
}
//send Campaign SMS to recipients
function sendCampaignMessages($session,$alias,$message,$recipients,$datetime,$multilanguage,$messageType)
{
$client=getClient();
$smsCampaignMessage = new stdClass();
$smsCampaignMessage->message = $message;
$smsCampaignMessage->messageId = "";
$smsCampaignMessage->recipients = $recipients;
$smsCampaignMessage->retries = "";
$smsCampaignMessage->sender = $alias;
$smsCampaignMessage->messageType=$messageType;
$smsCampaignMessage->sequenceNum = "";
$smsCampaignMessage->status = "";
$smsCampaignMessage->time = $datetime;
$smsCampaignMessage->type = "";
$smsCampaignMessage->user = "";
$smsCampaignMessage->esmClass = $multilanguage;
$sendCampaignMessages=new stdClass();
$sendCampaignMessages->session=$session;
$sendCampaignMessages->smsCampaignMessage=$smsCampaignMessage;
$sendCampaignMessagesResponse = new stdClass();
$sendCampaignMessagesResponse = $client->sendCampaignMessages($sendCampaignMessages);
return $sendCampaignMessagesResponse->return;
}
//renew session
function renewSession($session)
{
$client = getClient();
$renewSession = new stdClass();
$renewSession->session = $session;
$renewSessionResponse = new stdClass();
$renewSessionResponse = $client->renewSession($renewSession);
return $renewSessionResponse->return;
}
//close session
function closeSession($session)
{
$client = getClient();
$closeSession = new stdClass();
$closeSession->session = $session;
$client->closeSession($closeSession);
}
//retrieve messages from shortcode
function getMessagesFromShortCode($session,$shortCode)
{
$client = getClient();
$getMessagesFromShortCode = new stdClass();
$getMessagesFromShortCode->session = $session;
$getMessagesFromShortCode->shortcode = $shortCode;
$getMessagesFromShortcodeResponse = new stdClass();
$getMessagesFromShortcodeResponse->return = "";
$getMessagesFromShortcodeResponse = $client->getMessagesFromShortcode($getMessagesFromShortCode);
if(property_exists($getMessagesFromShortcodeResponse,'return'))
return $getMessagesFromShortcodeResponse->return;
else return NULL;
}
//retrieve delivery report
function getDeliveryReports($session,$alias)
{
$client = getClient();
$getDeliveryReports = new stdClass();
$getDeliveryReports->session = $session;
$getDeliveryReports->alias = $alias;
$getDeliveryReportsResponse = new stdClass();
$getDeliveryReportsResponse->return = "";
$getDeliveryReportsResponse = $client->getDeliveryReports($getDeliveryReports);
if(property_exists($getDeliveryReportsResponse,'return'))
return $getDeliveryReportsResponse->return;
else return NULL;
}
//retrieve messages from longnumber
function getMessagesFromLongNumber($session,$longNumber)
{
$client = getClient();
$getMessagesFromLongNumber = new stdClass();
$getMessagesFromLongNumber->session = $session;
$getMessagesFromLongNumber->longNumber=$longNumber;
$getMessagesFromLongNumberResponse = new stdClass();
$getmessagesFromLongNumberResponse->return = "";
$getMessagesFromLongNumberResponse = $client->getMessagesFromLongNumber($getMessagesFromLongNumber);
if(property_exists($getMessagesFromLongNumberResponse,'return'))
return $getMessagesFromLongNumberResponse->return;
else return NULL;
}
?>
此代码在 Localhost 中运行良好...但在我的主机 (Bluehost) 中显示了类似的致命错误。
谁能帮我解决这个错误??
提前致谢
【问题讨论】:
标签: php api soap fatal-error