Примеры интеграции |
PHPКод отправки сообщения:
<?php
require("smshost.php");
try{
$result=sendSms($_GET["receiverAddress"], $_GET["messageText"]);
print_r($result);
} catch (SoapFault $fault) {
echo "SmsHost returned the following ERROR: ".$fault->faultcode."-".$fault->faultstring.".";
}
?>
smshost.php (для PHP версии 5.0.1 и выше):
<?php
function guid(){
if (function_exists('com_create_guid')){
return com_create_guid();
}else{
mt_srand((double)microtime()*10000);//optional for php 4.2.0 and up.
$charid = strtoupper(md5(uniqid(rand(), true)));
$hyphen = chr(45);// "-"
$uuid = chr(123)// "{"
.substr($charid, 0, 8).$hyphen
.substr($charid, 8, 4).$hyphen
.substr($charid,12, 4).$hyphen
.substr($charid,16, 4).$hyphen
.substr($charid,20,12)
.chr(125);// "}"
return $uuid;
}
}
function sendSms($receiverAddress, $messageText){
$login="логин";
$password="пароль";
$validityPeriod="000000010000000R";
$senderAddress="SMS-Host.ru";
$soapClient = new SoapClient("https://sms-host.ru/Service/SmsHostWs.asmx?WSDL");
// Prepare SoapHeader parameters
$sh_param = array(
'User' => $login,
'Password' => $password
);
$headers = new SoapHeader('http://sms-host.ru/', 'Authentication', $sh_param);
// Prepare Soap Client
$soapClient->__setSoapHeaders(array($headers));
// Setup the RemoteFunction parameters
$submitSm=array(
"MessageId" => guid(),
"ReceiverAddress" => $receiverAddress,
"SenderAddress" => $senderAddress,
"MessageText" => $messageText,
"ValidityPeriodSmpp" => $validityPeriod
);
$submitSmCollection=array("WsSubmitSm" => $submitSm);
// Call SumbitSm()
$result = $soapClient->SumbitSm(array("messageList" => $submitSmCollection));
unset($soapClient);
return $result;
}
?>
smshost.php (для более ранних версий):
<?php
function guid(){
if (function_exists('com_create_guid')){
return com_create_guid();
}else{
mt_srand((double)microtime()*10000);//optional for php 4.2.0 and up.
$charid = strtoupper(md5(uniqid(rand(), true)));
$hyphen = chr(45);// "-"
$uuid = chr(123)// "{"
.substr($charid, 0, 8).$hyphen
.substr($charid, 8, 4).$hyphen
.substr($charid,12, 4).$hyphen
.substr($charid,16, 4).$hyphen
.substr($charid,20,12)
.chr(125);// "}"
return $uuid;
}
}
function sendSMSMessage($messageText, $receiverAddress){
$request="<?xml version=\"1.0\" encoding=\"utf-8\"?>
<soap:Envelope
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"
xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">
<soap:Header>
<Authentication xmlns=\"http://sms-host.ru/\">
<User>логин</User>
<Password>пароль</Password>
</Authentication>
</soap:Header>
<soap:Body>
<SumbitSm xmlns=\"http://sms-host.ru/\">
<messageList>
<WsSubmitSm
ValidityPeriodSmpp=\"000000010000000R\"
MessageText=\"".iconv("WINDOWS-1251","UTF-8",$messageText)."\"
SenderAddress=\"Имя отправителя\"
ReceiverAddress=\"".$receiverAddress."\"
MessageId=\"".substr(guid(),1,36)."\" />
</messageList>
</SumbitSm>
</soap:Body>
</soap:Envelope>";
$ch=curl_init("https://sms-host.ru/service/smshostws.asmx");
$header = Array("POST /service/smshostws.asmx HTTP/1.1", "Host: sms-host.ru",
"Content-Type: text/xml; charset=utf-8",
"Content-Length: ".strlen($request),
"SOAPAction: \"http://sms-host.ru/SumbitSm\"");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PORT, 443);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_TIMEOUT,10);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
curl_setopt ( $ch, CURLOPT_HTTPHEADER, $header );
$data = curl_exec($ch);
echo $data."\n";
}
?>
|
