2014-10-20 3 views
-1

Я использую sms-шлюз, где мне нужно обрабатывать сообщения, отправляемые на «я».asp.net обрабатывать запрос получить извне

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

http://server.domain.tld/receive.php?MOBILE=4560512131&TEXT=keyword+hello+world&SHORTCODE=1290&SMSC=tdc&MSGID= 

Где http://server.domain.tld/receive.php? должны быть на моем сервере

Я не использую PHP, поэтому мне нужно

На моем веб-сайте в настоящее время реализован WebAPI, и я использую структуру ASP.NET MVC5, но я не уверен, что делать. Как получить входящие параметры?

ответ

1

Вы должны создать действие, похожее на это:

public string Receive(string MOBILE, string TEXT, string SHORTCODE, string SMSC, string MSGID) 
    { 
     // just handle your variables here: save to database, log, email, etc... 

     return "OK"; // just an example, it depends on what the gateway is expecting 
    } 

И предполагаю, что это находится в главном контроллере, должен быть способ укажите этот «обратный URL» на шлюз. Этот URL-адрес должен быть:

http://[your website]/home/receive 

Если ваша документация SMS шлюз не достаточно четкое представление о том, как изменить/настроить этот URL, просто напишите письмо по электронной почте.

+0

Это работает для меня, и я могу получить параметры. – Niclassg

0

Я полагаю, что вы должны проанализировать строку с кодировкой url, используя, например, NameValueCollection, а затем передать эти данные вам. Контроллер для дальнейшей обработки.
Принять строку с кодировкой url в GET или POST контроллера не так сложно. Как этот пример jQuery + WebApi, где Controller принимает в POST действие url-кодированную строку.

$("#searchbtn").click(function() { 
       var ser = $('#hotels').find('input, select').serialize(); 
       $.post('/api/hotelsavailablerq', { '': ser }); 
      }); 

И на стороне сервера:

public void PostHotelsAvailableRQ([FromBody] string q) 
     { 
      NameValueCollection qscoll = System.Web.HttpUtility.ParseQueryString(q); 
      //Process key-value pairs 
     } 
+1

Как это ответить на вопрос? Куда бы этот JavaScript работал? Я сомневаюсь, что они включили JavaScript в веб-узлах SMS-сервиса, и я * особенно * сомневаюсь, что кто-то сидит там, нажав «поиск». Я также не уверен, какие отели имеют какое-то отношение к исходному вопросу. –

+0

Это пример кода, который я бы использовал для этой ситуации. –

+1

Мэтью, посмотрите на ответ, который OP принимает как правильный ответ. То, что вы сказали, это событие не близко к этому. OP спрашивает, как обращаться с MVC cotroller, а не с HttpHandler. –

Смежные вопросы