powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Отправка sms через sms-сервис из asp-приложения
7 сообщений из 7, страница 1 из 1
Отправка sms через sms-сервис из asp-приложения
    #37217683
strizzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отправля sms через sms-сервис из asp-приложения, делаю так:

Код: plaintext
Response.Redirect("http://smsc.ru/sys/send.php?login=xxxxxx&psw=xxxxxx&phones=+79210000000&mes=тест");

Проблема 1:

После выполнения запроса я соответственно оказываюсь на странице с подтверждением, что sms послано.

Хотелось бы как-нибудь обойти этот момент, то есть чтобы sms отослалась, а я после этого оказался на другой странице приложения, например:

Response.Redirect("OrderForm.aspx?OrderID=" + orderID.ToString() + "&mode=edit);

Как так послать запрос на sms-сервис, не переходя на страничку сервиса, а потом перейти на страничку приложения?

Проблема 2:

Русский текст приходит некорректно, что-то с кодировкой, хотя если посылать sms не из приложения, а просто выполняя запрос в браузере, то всё нормально.


Заранее спасибо.
...
Рейтинг: 0 / 0
Отправка sms через sms-сервис из asp-приложения
    #37218063
strizzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
strizzz,

проблема 2 с кодировкой решена. charset=utf8 и всё читается нормально.
...
Рейтинг: 0 / 0
Отправка sms через sms-сервис из asp-приложения
    #37218388
strizzz,

для того что бы отправить sms надо запросить страницу шлюза, например так:

Код: plaintext
1.
2.
3.
	using(var wc = new System.Net.WebClient())
	{
		wc.DownloadString("http://smsc.ru/sys/send.php?login=xxxxxx&psw=xxxxxx&phones=+79210000000&mes=тест");
	}
После этого можете делать редирект на свою страницу
...
Рейтинг: 0 / 0
Отправка sms через sms-сервис из asp-приложения
    #37221877
strizzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зритель с попкорном 6,

Спасибо!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Отправка sms через sms-сервис из asp-приложения
    #38466958
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может пригодиться,рылся у себя нашел штуку такую ( писал в свое время на ныне действующий сайт)
отложенная, ну в прочем и мгновенная отправка sms с оператора
для этого надо зарегиться у них и насыпать немножко денег.
зы как показала практика - вполне надежный сервис..

Код: c#
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.
 public static class ExampleSendSms
    {
        /// <summary>
        /// Отправка смс сообшения
        /// </summary>
        /// <param name="userlogin"> логин</param>
        /// <param name="password">пароль</param>
        /// <param name="telephone">телефон куда(не допускается типа +7...)</param>
        /// <param name="bodySms">Текст смс</param>
        /// <param name="fromTitl">от кого (отображается на телефоне принимающей стороны)</param>
        /// <param name="outSendSms">Время отправки клиенту  с сервера</param>
        /// <returns>результат отправки( смотреть на форуме) ок=200</returns>
        public static string SendSms(string userlogin, string password, string telephone, string bodySms, string fromTitl, DateTime outSendSms)
        {

            var str = new SortedDictionary<string, string>
                          {
                              {"username", userlogin},
                              {"to", telephone},
                              {"message", bodySms},//в теле не допускается ! и : и еще что то - надо проверять что еще не можно ((, если что выдаст 401
                              {"from", fromTitl},
                              {"charset", "utf-8"}
                          };
            var datetimeout = outSendSms.ToString("yyyy-MM-dd hh:mm:00");
            str.Add("when", datetimeout);
            var key = SendSmsCore.BuildUrlParamsWithSignature(str, password);
            var parurl = String.Format("http://api.comtube.ru/scripts/sms_api/sendsms.php?{0}", key);
            var reqGet = System.Net.WebRequest.Create(parurl);
            var resp = reqGet.GetResponse();
            var stream = resp.GetResponseStream();
            if (stream == null) return null;
            using (var sr = new System.IO.StreamReader(stream))
            {
                return sr.ReadToEnd();
            }


        }
    }

    internal static class SendSmsCore
    {
        private static string GetMd5Sum(string str)
        {
            var md5 = MD5.Create();
            var inputBytes = Encoding.ASCII.GetBytes(str);
            var hash = md5.ComputeHash(inputBytes);
            var sb = new StringBuilder();
            foreach (var t in hash)
                sb.Append(t.ToString("X2"));
            return sb.ToString();
        }

        public static string BuildUrlParamsWithSignature(SortedDictionary<string, string> parms, string password)
        {
            var url = "";
            foreach (var kvp in parms)
            {
                string val;
                if (kvp.Key != "message")
                {
                    val = kvp.Key != "when" ? HttpUtility.UrlEncode(kvp.Value.Trim()) : Uri.EscapeDataString(kvp.Value).Replace("%20", "+");
                }
                else
                {
                    val = Uri.EscapeDataString(kvp.Value).Replace("%20", "+");
                }
                url += kvp.Key + "=" + val + "&";
            }
            var sign = GetMd5Sum(url + "&password=" + Uri.EscapeDataString(password));
            url += "signature=" + sign.ToLower();
            return url;
        }
    }


...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Отправка sms через sms-сервис из asp-приложения
    #39011827
Где-то в степиможет пригодиться,рылся у себя нашел штуку такую ( писал в свое время на ныне действующий сайт)
отложенная, ну в прочем и мгновенная отправка sms с оператора
для этого надо зарегиться у них и насыпать немножко денег.
зы как показала практика - вполне надежный сервис..

Код: c#
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.
 public static class ExampleSendSms
    {
        /// <summary>
        /// Отправка смс сообшения
        /// </summary>
        /// <param name="userlogin"> логин</param>
        /// <param name="password">пароль</param>
        /// <param name="telephone">телефон куда(не допускается типа +7...)</param>
        /// <param name="bodySms">Текст смс</param>
        /// <param name="fromTitl">от кого (отображается на телефоне принимающей стороны)</param>
        /// <param name="outSendSms">Время отправки клиенту  с сервера</param>
        /// <returns>результат отправки( смотреть на форуме) ок=200</returns>
        public static string SendSms(string userlogin, string password, string telephone, string bodySms, string fromTitl, DateTime outSendSms)
        {

            var str = new SortedDictionary<string, string>
                          {
                              {"username", userlogin},
                              {"to", telephone},
                              {"message", bodySms},//в теле не допускается ! и : и еще что то - надо проверять что еще не можно ((, если что выдаст 401
                              {"from", fromTitl},
                              {"charset", "utf-8"}
                          };
            var datetimeout = outSendSms.ToString("yyyy-MM-dd hh:mm:00");
            str.Add("when", datetimeout);
            var key = SendSmsCore.BuildUrlParamsWithSignature(str, password);
            var parurl = String.Format("http://api.comtube.ru/scripts/sms_api/sendsms.php?{0}", key);
            var reqGet = System.Net.WebRequest.Create(parurl);
            var resp = reqGet.GetResponse();
            var stream = resp.GetResponseStream();
            if (stream == null) return null;
            using (var sr = new System.IO.StreamReader(stream))
            {
                return sr.ReadToEnd();
            }


        }
    }

    internal static class SendSmsCore
    {
        private static string GetMd5Sum(string str)
        {
            var md5 = MD5.Create();
            var inputBytes = Encoding.ASCII.GetBytes(str);
            var hash = md5.ComputeHash(inputBytes);
            var sb = new StringBuilder();
            foreach (var t in hash)
                sb.Append(t.ToString("X2"));
            return sb.ToString();
        }

        public static string BuildUrlParamsWithSignature(SortedDictionary<string, string> parms, string password)
        {
            var url = "";
            foreach (var kvp in parms)
            {
                string val;
                if (kvp.Key != "message")
                {
                    val = kvp.Key != "when" ? HttpUtility.UrlEncode(kvp.Value.Trim()) : Uri.EscapeDataString(kvp.Value).Replace("%20", "+");
                }
                else
                {
                    val = Uri.EscapeDataString(kvp.Value).Replace("%20", "+");
                }
                url += kvp.Key + "=" + val + "&";
            }
            var sign = GetMd5Sum(url + "&password=" + Uri.EscapeDataString(password));
            url += "signature=" + sign.ToLower();
            return url;
        }
    }




Огромная просьба помочь разобраться... пытаюсь применить Ваш код
Вывожу к примеру:
@DemandService.ExampleSendSms.SendSms("***","***","79526073322","hdhdjka","kk",DateTime.Now)

На выходе xml запись... как мне из этог сделать ссылку что бы отправить Гет-запрос?...

каюсь: туп... но быстро разобраться очень надо...
...
Рейтинг: 0 / 0
Отправка sms через sms-сервис из asp-приложения
    #39011847
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Небо,
какой запрос? куда? для чего?
вы на выходе лучили статус 200 все ваша есемеска встала в очередь на отправление на сервере комтюба..
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Отправка sms через sms-сервис из asp-приложения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]