我正在使用短信网关,我需要处理发送给'我的消息。
文档说明当用户向我发送短信时,我会得到如下参数:
http://server.domain.tld/receive.php?MOBILE=4560512131&TEXT=keyword+hello+world&SHORTCODE=1290&SMSC=tdc&MSGID=
我的服务器上http://server.domain.tld/receive.php?
应该在哪里
我没有使用php所以我需要能够使用asp.net(移动,文本,短代码,smsc,msgid)获取这些参数
我的网站目前已经实现了WebAPI,我使用的是ASP.NET MVC5框架,但我不知道该怎么做。如何获取传入参数?
答案 0 :(得分: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
}
假设它位于Home控制器内,应该有一种方法可以为网关指定这个“回调URL”。此网址应为:
http://[your website]/home/receive
如果您的SMS网关文档不够清楚如何更改/配置此URL,请向他们发送电子邮件。
答案 1 :(得分:0)
我想您必须使用例如NameValueCollection解析url编码的字符串,然后将此数据传递给Controller以进行进一步处理。
接受控制器的GET或POST中的url编码字符串并不困难。
像这个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
}