[英]how to fetch the phone number from mysql and send sms using API in php?
[英]how to convert destinationAddresses/phone number into hash codes in PHP sms API
我想使用PHP和SMS API創建SMS發送應用程序。 在我的響應消息中,我可以看到成功代碼和成功消息,但是我的問題在我的日志文件中顯示為
通過消息“ 地址格式無效 ”傳遞的異常異常“ SMSServiceException ”
我認為問題是,從我對電話號碼進行哈希編碼開始。 而且我不知道該怎么做,請幫助我。
我嘗試使用md5()轉換電話號碼,但結果相同。
我的index.php
$jsonData = array( 'requestId'=> '','message' => 'thismsg hello',
'password' => '25c8db49905003e3347ad861546fce1a',
'sourceAddress' => '77000',
'deliveryStatusRequest' => '1',
'chargingAmount' => '2.00',
'destinationAddresses' => ['88b7a1e8dbf419a2c0835b4f33d06c1a'],//this convert with md5
'applicationId' => 'APP_051000',
'encoding' => '0',
'version' => '1.0',
'binaryHeader' => ''
);
我的.log文件結果:
[01-Feb-2019 08:57:34 Asia/Colombo] Message received msg_header hello
[01-Feb-2019 08:57:35 Asia/Colombo] Passed Exception exception 'SMSServiceException' with message 'Format of the address is invalid.' in /ophielapp/lib/SMSSender.php:58
Stack trace:
#0 /ophielapp/lib/SMSSender.php(46): SMSSender->handleResponse(Object(stdClass))
#1 /ophielapp/lib/SMSSender.php(34): SMSSender->sendRequest('{"applicationId...')
#2 /ophielapp/sms.php(66): SMSSender->sendMessage('hello', '77000')
#3 {main}
我想用哈希碼正確地將電話號碼發送到smsSender.php中,如果想了解其他php文件的更多詳細信息,我可以提供。
結果在我的瀏覽器中: 這是響應的圖像
這是我的smsSender.php
<?php
require_once 'SMSServiceException.php';
class SMSSender{
private $applicationId,
$password,
$serverURL;
public function __construct($serverURL, $applicationId, $password)
{
$this->applicationId = $applicationId;
$this->password = $password;
$this->serverURL = $serverURL;
}
public function broadcastMessage($message){
return $this->sendMessage($message, array('tel:all'));
}
public function sendMessage($message, $addresses){
if(empty($addresses))
throw new SMSServiceException('Format of the address is invalid.', 'E1325');
else {
$jsonStream = (is_string($addresses))?$this->resolveJsonStream($message, array($addresses)):(is_array($addresses)?$this->resolveJsonStream($message, $addresses):null);
return ($jsonStream!=null)?$this->sendRequest($jsonStream):false;
}
}
private function sendRequest($jsonStream){
$opts = array('http'=>array('method'=>'POST',
'header'=>'Content-type: application/json',
'content'=>$jsonStream));
$context = stream_context_create($opts);
$response = file_get_contents($this->serverURL, 0, $context);
return $this->handleResponse(json_decode($response));
}
private function handleResponse($jsonResponse){
$statusCode = $jsonResponse->statusCode;
$statusDetail = $jsonResponse->statusDetail;
if(empty($jsonResponse))
throw new SMSServiceException('Invalid server URL', '500');
else if(strcmp($statusCode, 'S1000')==0)
return true;
else
throw new SMSServiceException($statusDetail, $statusCode);
}
private function resolveJsonStream($message, $addresses){
// $addresses is a array
$messageDetails = array('message'=>$message,
'destinationAddresses'=>$addresses);
$applicationDetails = array('applicationId'=>$this->applicationId,
'password'=>$this->password);
$jsonStream = json_encode($applicationDetails+$messageDetails);
return $jsonStream;
}
public function get_location_stream( $addresse){
$reqDetails = array(
'applicationId'=>$this->applicationId,
'password'=>$this->password,
'serviceType'=>'IMMEDIATE',
'subscriberId'=>$addresse
);
return json_encode($reqDetails);
}
public function getlocation( $addresse){
//$jsonStream = get_location_stream($addresse);
$jsonStream= array(
'applicationId'=>$this->applicationId,
'password'=>$this->password,
'serviceType'=>'IMMEDIATE',
'subscriberId'=>$addresse
);
print_r($jsonStream);
json_encode($jsonStream);
$opts = array('http'=>array('method'=>'POST',
'header'=>'Content-Type: application/json',
'content'=>$jsonStream));
$context = stream_context_create($opts);
$response = file_get_contents('http://localhost:7000/lbs/locate', 0, $context);
echo $response;
//return $this->location_response(json_decode($response));
return json_decode($response);
}
public function location_response($jsonResponse){
$statusCode = $jsonResponse->statusCode;
if(empty($jsonResponse)){
throw new SMSServiceException('Invalid server URL', '500');
}else if(strcmp($statusCode, 'S1000')==0){
return array(
$jsonResponse->longitude,
$jsonResponse->latitude,
$jsonResponse->horizontalAccuracy,
$jsonResponse->freshness,
$jsonResponse->messageId
);
}else{
throw new SMSServiceException($statusDetail, $statusCode);
}
}
public function getResponse($addresse){
$jsonStream= array(
'applicationId'=>$this->applicationId,
'password'=>$this->password,
'serviceType'=>'IMMEDIATE',
'subscriberId'=>$addresse
);
$opts = array('http'=>array('method'=>'POST',
'header'=>'Content-Type: application/json',
'content'=>json_encode($jsonStream)));
$context = stream_context_create($opts);
$response = file_get_contents('http://localhost:7000/lbs/locate', 0, $context);
return json_decode($response);
}
}
?>
destinationAddresses作為字符串傳遞
'destinationAddresses' =>'88b7a1e8dbf419a2c0835b4f33d06c1a',
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.