Форум программистов, компьютерный форум, киберфорум
Наши страницы
Joomla
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
rafaello
2 / 2 / 0
Регистрация: 17.08.2012
Сообщений: 95
1

Что это SMS HTTP API или что-то другое?

28.10.2012, 11:19. Просмотров 609. Ответов 1
Метки нет (Все метки)

Доброго дня!
Получил с сайта mlsit.ru готовую програмку для отправки смс с сайта.
Который день пытаюся ее прикрутить к своей джумле 2.5, не получается, не хватает знаний php.

Прошу Вашего совета, как классифицировать эту прогу, как SMS HTTP API или что-то другое. Дело в том, что здесь адрес сервера задается просто доменом, а не конкретным адресом, типа

http://sms.com/messageapi.asp?userna...&message=Hello

в приложении говорится, что взаимодействие с сервером осуществляется через сокеты.

Дайте, пожалуйста, общие рекомендации по интеграции этой проги с джумлой!
Буду очень благодарен.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<?php 
  
  class archisend {
  
    var $service_host = 'sms.mlsit.ru';
    var $service_port = 8997;
    var $key;
    var $pwd;
    var $socket;
    var $sessionid;
    var $from;
    var $message;
    var $phones;
    var $messageid;
    var $status;
    var $sendSuccess;
    var $error;
    var $debug;
    var $debug_output = '';
  
    function __construct($key, $pwd, $debug) {
      $this->key = $key;
      $this->pwd = $pwd;
      $this->debug = $debug;
      $this->status = new stdClass();
      $this->error = new stdClass();
    }
    
    
    /**-------------------------------------------------------------------------
     * connect()
     *--------------------------------------------------------------------------*/
    function connect() {
      $this->debug_output .= "-- CONNECT -----------------------------------------------\n\n";
      if ($this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) {
        $result = socket_connect($this->socket, $this->service_host, $this->service_port);
        if ($result === false) {
          $this->debug_output .= "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($this->socket)) . "\n";
        }
        $request = _parseTemplate(drupal_get_path('module', 'archisend_gateway'). '/xml/connect.xml.php', get_object_vars($this));
        $respond = $this->makeRequest($request);
        $respond = str_replace('*END*', '', $respond);
        $xml = new SimpleXMLElement($respond);
        $this->sessionid = (string)$xml->idSession;
      } else {
        $this->debug_output .= "socket_create() failed. Reason: ". socket_strerror(socket_last_error()) ."\n";
      }
      
    }
    
    
    /**-------------------------------------------------------------------------
     * send()
     *--------------------------------------------------------------------------*/
    function send($from, $message, $phones) {
      $this->from = $from;
      $this->message = $message;
      $this->phones = $phones; //Validation goes here
      $this->debug_output .= "\n\n\n-- SENDSMS -----------------------------------------------\n\n";
      if ($this->socket) {
        $request = _parseTemplate(drupal_get_path('module', 'archisend_gateway'). '/xml/send.xml.php', get_object_vars($this));
        $respond = $this->makeRequest($request);
        $respond = str_replace('*END*', '', $respond);
        $xml = new SimpleXMLElement($respond);
        if ((string)$xml->Count) {
          $this->sendSuccess = TRUE;
        } else {
          $this->error->code = (string)$xml->Error->Code;
          $this->error->message = (string)$xml->Error->Message;
        }
        $this->messageid = (string)$xml->oneRec['id'];
      }
    }
    
    
    /**-------------------------------------------------------------------------
     * getStatus()
     *--------------------------------------------------------------------------*/
    function getStatus($msgid = NULL) {
      $this->debug_output .= "\n\n\n-- GETSTATUS -----------------------------------------------\n\n";
      if ($msgid) {
        $messageid = $msgid;
      }
      if ($this->socket) {
        $request = _parseTemplate(drupal_get_path('module', 'archisend_gateway'). '/xml/getStatus.xml.php', get_object_vars($this));
        $respond = $this->makeRequest($request);
        $respond = str_replace('*END*', '', $respond);
        $xml = new SimpleXMLElement($respond);
        $this->status->code = (string)$xml->oneRec->Status;
        $this->status->message = (string)$xml->oneRec->StatusMessage;
        $this->status->last_change = (string)$xml->oneRec->DateStatus;
      }
    }
    
    
    /**-------------------------------------------------------------------------
     * disconnect()
     *--------------------------------------------------------------------------*/
    function disconnect() {
      $this->debug_output .= "\n\n\n-- DISCONNECT -----------------------------------------------\n\n";
      if ($this->socket) {
        $request = _parseTemplate(drupal_get_path('module', 'archisend_gateway'). '/xml/disconnect.xml.php', get_object_vars($this));
        $this->makeRequest($request, 'write-only');
        socket_close($this->socket);
      }
      /*
      if ($this->debug) {
        echo "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"></head><body><pre>{$this->debug_output}</pre></body></html>";
      }
      */
    }
    
    
    /**-------------------------------------------------------------------------
     * makeRequest()
     *--------------------------------------------------------------------------*/
    private function makeRequest($request, $mode = NULL) {
      $respond = '';
      $this->debug_output .= "Request content:\n\n";
      $this->debug_output .= $request. "\n\n";
      //$this->debug_output .= htmlspecialchars($request). "\n\n";
      
      // отправляем запрос
      $parts = str_split($request, 1024);
      for ($i = 0; $i < count($parts); $i++) {
        socket_write($this->socket, $parts[$i], 1024);
      }
      
      // принимаем ответ
      if ($mode != 'write-only') {
        while ($out = socket_read($this->socket, 1024)) {
          $respond .= $out;
          if (strstr($out, '*END*')) break;
        }
        $this->debug_output .= "Respond content:\n\n";
        $this->debug_output .= $respond;
        //$this->debug_output .= htmlspecialchars($respond);
        return $respond;
      }
    }
  
  }
  
  function _parseTemplate($template_file, $variables = array()) {
    extract($variables, EXTR_SKIP);
    ob_start();
    include "./$template_file";
    $contents = ob_get_contents();
    ob_end_clean();
    return $contents;
  }
 
?>
полный пакет с описанием во вложениях
0
Вложения
Тип файла: zip API PHP1.zip (64.4 Кб, 4 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2012, 11:19
Ответы с готовыми решениями:

Ребят, посмотрите , что фигня, как думаете это видеочип накрылся или что-то другое?
Ребят, помогите определить, что фигня, как думаете это видеочип накрылся или что-то другое? Может...

Это вытекший электролитник или что-то другое?
На плате между двумя электролитниками какая-то белая непонятная масса, упругая, как резина. Два...

Это сетевая плата,или что-то другое?
Завалялись дома какие-то платы.для чего они?

Подойдёт это ноут для кода или за 10к лучше что нибудь другое?
https://www.dns-shop.ru/product/5ec06879e6b93330/14-noutbuk-irbis-nb46-cernyj/?p=1&amp;i=7

Это "муха цеце" или что-то другое?
Здравствуйте. Такая вот ситуация. Есть жесткий диск Seagate ST31000528AS 1TB. Проработал больше...

1
Taatshi
Администратор
11737 / 5090 / 257
Регистрация: 05.04.2011
Сообщений: 13,869
Записей в блоге: 2
28.10.2012, 13:27 2
rafaello, этот вопрос лучше задать как раз разработчику программы. Кому как не им знать ее возможности и техническую сторону лучше всех?

Если Вы ее купили - так там вообще вопроса не стоит - обязаны помочь.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2012, 13:27

Никак не могу определится какую видяху брать, palit GTX 770 jetstream или что-то другое, что вы посоветуете?
конфиг компа i5 4670 8gb 1600 asus h87-plus 1.5Tb 5400 + через месяц докуплю ssd на 60 гиг ...

непонятки с отображением языка. что-то с кодировкой или что это?
задали выполнить сайт из 3-4 страниц. первую сделала - работает.. исходя из нее решила делать...

подскажите, пожалуйста, что означает отрезок [-pi/2,pi/2] , это длина отрезка или что?
Постройте таблицу и вычислите сумму значений функции y=f(x) при 0.5&lt;y&lt;1.5 при изменении x на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru