PDA

Просмотр полной версии : Cмс билинг вопрос.


Ylka
11.04.2009, 11:39
Есть ли смс билинги. На каком не нужно иметь url обработчик. Тоесть где можно и без ниво обойтися. Есть такиє билинги ? Там де тупо вводиш текст и он приходит отправителю смс. ?????

Blackcat95
11.04.2009, 11:41
да есть, лови, аж целых 10:
билинги билинги билинги билинги билинги билинги билинги билинги билинги билинги

Ylka
11.04.2009, 11:58
Да в правду есть такиє.

ClienTtm
11.04.2009, 12:27
Да в правду есть такиє.
Есть но тут тебе некто не напишит их! Я тож в поиске такого!)

Ylka
11.04.2009, 12:36
Поделитись хто нибуть сервисом. Можно и в пм.

GreenBear
11.04.2009, 12:38
поставь заглушку с ответом =\ обычный хтмл файл

Ylka
11.04.2009, 12:41
поставь заглушку с ответом =\ обычный хтмл файл


Тогода вроде мне не будут зачислять смски. Например на смсдоступ

GreenBear
11.04.2009, 12:42
будут, если ты поставишь отвтет, который требует биллинг.

Ylka
11.04.2009, 12:53
# Задаем ключ (идентификатор) проекта, который указан в разделе 'Список проектов' в вашем аккаунте $project_md5 = '';Тоесть

<?php
# СМС-Доступ 2008
# Скрипт для ответа на запрос Биллинга

# Вывод ошибок нежелателен
ini_set('display_errors', 0);
error_reporting(0);

# Задаем ключ (идентификатор) проекта, который указан в разделе 'Список проектов' в вашем аккаунте
$project_md5 = '';

# Задаем рабочую кодировку в которой вы указываете ответ абоненту
$encoding = 'windows-1251';

# Читаем POST запрос, получаем XML данные
if (!isset($HTTP_RAW_POST_DATA)) $HTTP_RAW_POST_DATA = file_get_contents('php://input');
if (!$HTTP_RAW_POST_DATA) return_result('err void', true);

# Обрабатываем данные
$request_data = xml2array($HTTP_RAW_POST_DATA);

# Проверяем данные
if (!is_array($request_data) || !isset($request_data['sms']['md5']) || !isset($request_data['sms']['session']) || !isset($request_data['sms']['smsid']) || !isset($request_data['sms']['shortcode']) || !isset($request_data['sms']['text']) || !isset($request_data['sms']['cost']) || !isset($request_data['sms']['phone']) || !isset($request_data['sms']['operator'])) return_result('err data', true);
if (!$request_data['sms']['md5'] || !$request_data['sms']['session'] || !$request_data['sms']['smsid'] || !$request_data['sms']['shortcode'] || !$request_data['sms']['text'] || !$request_data['sms']['cost'] || !$request_data['sms']['phone'] || !$request_data['sms']['operator']) return_result('err false', true);

# Проверяем целостность данных
$_md5hash = md5($project_md5.$request_data['sms']['session'].$request_data['sms']['smsid'].$request_data['sms']['shortcode'].iconv('utf-8', 'windows-1251', $request_data['sms']['operator']).$request_data['sms']['phone'].iconv('utf-8', 'windows-1251', $request_data['sms']['text']).$request_data['sms']['cost']);
if ($_md5hash != $request_data['sms']['md5']) return_result('err hash', true);

/* Напоминаем, что в случае наличия параметра isdebug производится ТЕСТИРОВАНИЕ проекта,
если Вы ведете внутренние учеты, зачисляете средства и так далее - учтите, эти запросы нами не оплачиваются! */

# Возвращаем результат и завершаем работу
# Сообщение должно быть в кодировке указанной в параметре $encoding выше, по-умолчанию windows-1251
return_result(
'Здесь должен быть Ваш ответ клиенту'
);

# Делаем все необходимые учеты, проверки и определяем ответ абоненту
/*
Входящие данные (даны исключительно для ознакомления и не являются действительными):
<isdebug>true</isdebug> // Параметр тестирования проекта, по-умолчанию не передается
<md5>a123456789b123456789c123456789d1</md5> // Ключ проверки целостности данных
<session>a123456789b123456789c123456789d1</session> // Ключ текущей сессии
<smsid>1234567890</smsid> // Уникальный идентификатор смс сообщения
<shortcode>1234</shortcode> // Короткий номер на который прислано смс сообщение
<operator>Megafon</operator> // Название оператора, латиница, короткое
<operatorfull>Megafon_moscow</operatorfull> // Название оператора, латиница, полное
<phone>7912xxxx345</phone> // Номер абонента приславшего смс сообщение
<country>ru</country> // Страна абонента приславшего смс сообщение
<text>ttslovo</text> // Полный текст сообщения
<cost>12.34</cost> // Ваша прибыль с данного смс сообщения в системе СМС Доступ в рублях
<exchangerate>23.00</exchangerate> // Текущий курс отношения рубля к доллару в системе СМС Доступ
<trusted>3</trusted> // Опциональный параметр, с указанием доверия номеру абонента в виде цифры от 0 до 10
*/

# Запрос передается в формате utf-8
# Для получения текста сообщения в кодировке Windows-1251 воспользуйтесь функцией iconv():
# $result_text = iconv('utf-8', 'windows-1251', $request_data['sms']['text']);

# Ваша проверка данных и учет в системе
# ! В случае если получен параметр _is_debug, то учет в системе делать не следует. Был произведен тест скрипта на работоспособность.

# Выдаем ответ для передачи клиенту
# ! Учтите обязательность наличия корректного xml формата
# ! При ответе используйте кодировку utf-8

# Возвращаем результат в формате XML
function return_result($msg, $iserror = false) {
global $encoding;

# Success message
if (!$iserror) {
echo '<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Status>OK</Status>
<ReturnMessage>'.($encoding ? iconv($encoding, 'utf-8', $msg) : $msg).'</ReturnMessage>
</Response>';

# Error message
} else {
echo '<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Status>ERROR</Status>
<ErrorMessage>'.($encoding ? iconv($encoding, 'utf-8', $msg) : $msg).'</ErrorMessage>
</Response>';

}

exit;
}

# Перевод XML данных в массив
function xml2array($xml) {
$_data = NULL;

$xp = xml_parser_create();
xml_parser_set_option($xp, XML_OPTION_CASE_FOLDING, false);
xml_parser_set_option($xp, XML_OPTION_SKIP_WHITE, true);
xml_parse_into_struct($xp,$xml,$vals,$index);
xml_parser_free($xp);

$temp = $depth = array();
$dc = array();

foreach($vals as $value) {
$p = join('::', $depth);
$key = $value['tag'];
switch ($value['type']) {
case 'open':
array_push($depth, $key);
array_push($depth, (int)$dc[$p]++ );
break;
case 'complete':
array_pop($depth);
array_push($depth, $key);
$p = str_replace("::0::","::",join('::',$depth));
$temp[$p] = $value['value'];
array_pop($depth);
array_push($depth, (int)$dc[$p] );
break;
case 'close':
array_pop($depth);
array_pop($depth);
break;
}
}

foreach ($temp as $key=>$value) {
$levels = explode('::',$key);
$num_levels = count($levels);
if ($num_levels==1) {
$_data[$levels[0]] = $value;
} else {
$pointer = &$_data;
for ($i=0; $i<$num_levels; $i++) {
if ( !isset( $pointer[$levels[$i]] ) ) {
$pointer[$levels[$i]] = array();
}
$pointer = &$pointer[$levels[$i]];
}
$pointer = $value;
}

}

return ($_data);

}
?>

Ylka
11.04.2009, 12:54
Мне просто ввести сюда клч проекта

# Задаем ключ (идентификатор) проекта, который указан в разделе 'Список проектов' в вашем аккаунте $project_md5 = ''

и закинуть на сайт ???

GreenBear
11.04.2009, 12:57
пиздец. ключ нужен для проверки запроса, что он не левый.
важен ответ который выдает скрипт.
<SMSDOSTUP>Your reply message</SMSDOSTUP>
это все что надо! и сними галку с использовать XML-запрос.

Ylka
11.04.2009, 13:03
А ответ тогда куда ставить. ?
например <SMSDOSTUP>Код 123456789</SMSDOSTUP>

Што з етим делать ?.

Ylka
15.04.2009, 16:15
???

GreenBear
15.04.2009, 16:17
ты че дебил чтоли?

bolnoy
15.04.2009, 16:20
http://s54.radikal.ru/i143/0812/f8/e9a0897bfa3f.jpg

Ylka
15.04.2009, 16:21
Нет, извините пожалуста.

подскажите