G+

Отправлять sms asp.net mvc

Программирование Asp.net
Предыдущий Следующий

asp.netС развитием мобильной связи, перед программистами часто ставят задачу отправлять пользователям уведомление не с помощью e-mail сообщений, а использовать смс.

Могу сразу разочеровать, что бесплатно этого сделать на текущий момент нельзя. Т.е. вам придется платить за каждую смс. Может быть посчастливиться найти как-то шаровый сервис, но и качество его будет хромать.

Так вот, что бы отправить смс Вам нужно найти компанию, которая предоставляет API для разработки. Как правило это API предоставляют сами мобильные операторы, но малое количество sms они продают за большие деньги, так как не заинтересованные в мелких продажах, и api у них хромает. Вообщем перейдем к практики.

Как правило, что бы отослать sms, нужно на какой-то url отправить информацию (в формате xml или Json). Схема простая, шлем свой запрос, в ответ получаем нужную информацию (как правило это статус обработки вашего запроса: "оператор понял Ваш запрос или нет"). Для примера рассмотрим, как слать смс с помощью компании smsfeedback.ru/smsapi/. Это стандартное API у других компаниях оно будет незначительно отличатся.

1. Передача сообщения (GET запрос на сервер)

WebClient webClientSend = new WebClient();

var url = "http://Login:Pass@api.smsfeedback.ru/send/?phone=%2B712345&text=AspPrivet";
webClientSend.BaseAddress = url;

webClientSend.Encoding = Encoding.UTF8;
webClientSend.Credentials = new System.Net.NetworkCredential("Login", "Pass");

try
{          
    var otev = webClientSend.DownloadString(url);
}catch (Exception ex)  {  }

Все, отправили одно сообщение. В переменной otev у вас будет ид сообщения. Он Вам нужен для проверки статуса доставки смс.

2. Отправка нескольких сообщений (POST запрос на сервер)

           WebClient webClient3 = new WebClient();
            var url3 = "http://json.api.smsfeedback.ru/send/";
            webClient3.BaseAddress = url3;
            webClient3.Encoding = Encoding.UTF8;

            var sendPhone = new
            {
                login = "Login",
                password = "Pass",
                statusQueueName = "myfirstQueue",
                messages = new List<sendess>()
                {
                    new sendess()
                    {
                         clientId ="1",
                          phone = "791234342",
                          text = "Salut Vam",
                          sender = "aspnet",
                    },
                    new sendess()
                    {
                        clientId ="2",
                        phone = "79235353",
                        text = "Salut Vam",
                        sender = "aspnet",
                    },
                    new sendess()
                    {
                        clientId = "3",
                        phone = "7952352345",
                        text = "Salut Vam",
                        sender = "aspnet",
                    },
                }
            };
 

            JavaScriptSerializer ser = new JavaScriptSerializer();
            var testsend = ser.Serialize(sendPhone);
            try
            {
                var otev = webClient3.UploadString(url3, "POST", testsend);
            }
            catch (Exception ex)
            {
            }
 

Как видите все просто. Отличие между API компаниями бываю какие:

1) Нужно слать данные в формате XML

2) Поддерживают только POST запрос.

3) Можно отправлять смс только по одной стране.

Комментарий:
Комментариев пока нету
Самостоятельный отпуск Опыт заказа вывоза мусора в Киеве