簡體   English   中英

如何將目標地址/電話號碼轉換為PHP SMS API中的哈希碼

[英]how to convert destinationAddresses/phone number into hash codes in PHP sms API

我想使用PHPSMS 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM