#php #xml #api #codeigniter #sms-gateway
#php #xml #API #codeigniter #sms-шлюз
Вопрос:
Ниже мой код:
$sourceaddr = 14045; // Sender ID
$destinationaddr = 08887654657; // Destination Address
$shortmessage = "Hi, this is test"; // Message
$url = http://xyz.li/cdk; //Short URL
И я отправляю вышеуказанные данные по указанному ниже URL (предоставленному API трансляции SMS)
// API for sending SMS
$sent_url = 'http://username:password@ip:port/smsgateway/infobulk?sourceaddr='.$sourceaddr.'amp;destinationaddr='.$destinationaddr.'amp;shortmessage='.urlencode($shortmessage).' '.urlencode($url).'';
И если сообщение получено (успешно) по адресу назначения, я получу этот ответ:
<?xml version="1.0" encoding="iso-8859-1" ?>
<message>
<TrxID>13349105571516524200</TrxID>
<Status>SENT</Status>
</message>
Как это сделать с помощью Codeigniter?
Я попытался использовать redirect($sent_url)
, но он не получает никакого ответа, это внутренний процесс, поэтому мне не нужно никаких действий формы, спасибо.
Комментарии:
1. Я не могу ответить за codeigniter, но вы ищете его функции curl или даже file_get_contents.
Ответ №1:
Модель
class Sms_model extends CI_Model {
var $source; //Source address
var $dest; //Destination
var $msg; // Message
var $url;
var $api_url;
function __construct() {
parent::__construct();
}
function Send(){
$this->api_url = 'http://username:password@ip:port/smsgateway/infobulk';
$params = $this->source.'amp;destinationaddr='.$this>dest.'amp;shortmessage='.urlencode($this->msg).' '.urlencode($this->url).'';
$post_data = array(
"sourceaddr" => $params,
);
$stream_options = array(
'http' => array(
'method' => 'POST',
),
);
$context = stream_context_create($stream_options);
$response = file_get_contents($this->api_url, null, $context);
return $response;
}
}
КОНТРОЛЛЕР
class Sms extends CI_Controller {
function __construct() {
parent::__construct();
}
function Index(){
$this->load->model('Sms_model','sms_m');
$this->sms_m->source = 14045 ;
$this->sms_m->dest = 08887654657;
$this->sms_m->msg = "Hi, this is test";
$this->sms_m->url = 'http://xyz.li/cdk';
$data = $this->sms_m->Send();
print_r($data);
}
}
Это будет работать на CI. Приветствия.