Перейти к содержимому


Публикации davnozdu

7 публикаций создано davnozdu (учитываются публикации только с 01-Май 23)


#21695 пнтеграция СМС рассылки с сервисом Nexmo

Отправлено от davnozdu в 16 Декабрь 2013 - 16:36 in Как это сделать

И еще такой вопрос, в вашей системе есть возможность отслеживания статуса SMS
Сервис NEXMO в ответ сообщает такую информацию для каждого отправления
Ответ есть в формате JSON или XML
Мне приходит JSON


Цитата

{"message-count":"1","messages":[{"to":"420608210867","message-id":"020000001D181029","status":"0","remaining-balance":"1.75500000","message-price":"0.03500000","network":"23003"}]}1

Если я правильно понял, то за определение статуса отвечает этот кусок кода

  if ('ok' == $json['status'] ) {
                                                $message = "OK";
                } else {
                                                $message = "ERROR:".$json['message'];
                }
                return $message;                
}

У сервиса NEXMO статус передается в виде кода, 0 значит OK
Я сделал такой код, но статус не заработал, подскажите что не так


  if ('0' == $json['status'] ) {
                                                $message = "OK";
                } else {
                                                $message = "ERROR:".$json['message'];
                }
                return $message;                
}



#21694 пнтеграция СМС рассылки с сервисом Nexmo

Отправлено от davnozdu в 16 Декабрь 2013 - 16:18 in Как это сделать

Спасибо, все заработало
Единственное что не идет - это отправка сообщений на русском языке.
В документации сказано, что для отправки сообщения его необходимо перекодировать

Цитата

Required when type='text'. Body of the text message (with a maximum length of 3200 characters),UTF-8 and URL encoded value. Ex: "Déjà vu" content would be "D%c3%a9j%c3%a0+vu"

Если я правильно понял, то за перекодировку отвечает этот параметр
"&text=".urlencode($sms['text']);


Но в место русского языка посылаются вопросительные знаки

Сейчас у меня вписано такой рабочий код

function send_sms()
{
  global $sms;
$url = "https://rest.nexmo.com/sms/json?api_key=1234546&api_secret=123456&from=".$sms['sender']."&to=".$sms['phone']."&text=".urlencode($sms['text']);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url); // set url to post to
$result = curl_exec($ch); // run the whole process
curl_close($ch);
}



#21688 пнтеграция СМС рассылки с сервисом Nexmo

Отправлено от davnozdu в 14 Декабрь 2013 - 17:42 in Как это сделать

У меня работает такой PHP скрипт на отправку через CURL

<?php
//$url = "https://rest.nexmo.com/sms/json?api_key=123456&api_secret=123456&from=MyCompany20&to=420608210867&text=message";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url); // set url to post to
$result = curl_exec($ch); // run the whole process
curl_close($ch);
echo $result;
?>

Как в этот код вставить переменные, чтобы номер отправителя и сообщение бралось из КБ ?
Если я правильно понимаю, то за эти параметры отвечают переменные


$sms['phone'] = "420608210867"; // здесь вводите нужный номер получателя
$sms['text'] = "test"; // здесь вводите нужный текст сообщения
К сожалению я к программированию имею удаленное отношение и поэтому прошу помощи



#21685 пнтеграция СМС рассылки с сервисом Nexmo

Отправлено от davnozdu в 14 Декабрь 2013 - 02:36 in Как это сделать

По прямой ссылке в браузере и через CURL SMS сообщение уходит.
Достаточно ли тогда вставить в модуль прямую ссылку для отправки сообщения с необходимыми переменными ?



#21671 Проблема восстановления бэкапа на 1.9.9

Отправлено от davnozdu в 12 Декабрь 2013 - 19:27 in Как это сделать

Тут сказано что таблица уже существует "Table'f_tmp_acc_buttons_par' already exists"
Попробуйте удалить все таблицы из базы данных, потом установите заново (на чистую) системы КБ, при установке выберете не создавать никакие данные и потом восстановитесь из бекапа.

Мы так с 1.9.8 на 19.9.9 перешли, проблем не было



#21669 пнтеграция СМС рассылки с сервисом Nexmo

Отправлено от davnozdu в 12 Декабрь 2013 - 17:31 in Как это сделать

Сделал CRON,
Теперь он корректно обрабатывает задания, но теперь сообщения попадают в очередь проваленых

Пробовал такой скрипт



<?
function send_sms() {
                global $sms;
                $apikey = '123456';
                $apikeysec = '123456';
                $json = file_get_contents('https://rest.nexmo.com/sms/json?api_key='.$apikey.'&api_secret='.$apikeysec.'&to='.$sms['phone'].'&text='.urlencode($sms['text']));
                $json = json_decode($json, true);
                if ('ok' == $json['staus'] ) {
                                                $message = "OK";
                } else {
                                                $message = "ERROR:".$json['message'];
                }
                return $messge;

}

$sms['phone'] = "420608210867"; // здесь вводите нужный номер получателя
$sms['text'] = "test"; // здесь вводите нужный текст сообщения
$result = send_sms(); // отправляем сообщение
echo $result; // вывод
?>

Но ничего не выдается, скрипт выполняется но никаких сообщений не приходит в терпинал, в логах тоже все чисто



#21658 пнтеграция СМС рассылки с сервисом Nexmo

Отправлено от davnozdu в 11 Декабрь 2013 - 18:54 in Как это сделать

Здравствуйте, интересует тема интеграции СМС рассылки со сторонними шлюзами
Я хотел бы добавить для своей версии КБ СМС шлюз от компании Nexmo
Образец кода для ручного добавления я взял из соседней ветки и перебил ссылку под Nexmo
Заранее извиняюсь за ошибки, я не программист.
Код у меня не работает и все созданые СМС просто весят в очереди на отправку, CRON настроен и работает корректно.
Что еще интересно, что после ручного добавления сервера и кода отправки в модуль СМС рассылки то сам код не сохраняется.
Приходится нажимать Редактировать и в редакторе кода вставлять код заново и сохранять, тогда он там появляется

Документация для Nexmo доступна тут https://docs.nexmo.c...pi/send-message
Если нужны реальные API ключи для теста СМС, моглу выслать в личку

function send_sms()
{
	global $sms;
	$apikey = '123456';
	$apikeysec = '123456';
	$snoopy = new Snoopy;
	$snoopy->fetch('https://rest.nexmo.com/sms/json?api_key='.$apikey.'&api_secret=$apikeysec'.'&to='.$sms['phone'].'&text='.urlencode($sms['text']).'&signature='.$sms['sender']);
	$json = json_decode($snoopy->results, true);
	if ('ok' == $json['status'] ) {
			$message = "OK";
	} else {
			$message = "ERROR:".$json['message'];
	}
	return $message;
}

Версия КБ 1.9.9