====================================================================
=======================1、接收外部XML格式的请求参数====================
====================================================================
[HttpPost]
public ActionResult RequestXML()
{
try
{
logger.Info("Entered RequestXML() " + "Hello RequestXML");
HttpContextBase context = this.HttpContext;
HttpRequestBase Request = context.Request;
Stream s = Request.InputStream;
int count = 0;
byte[] buffer = new byte[1024];
StringBuilder builder = new StringBuilder();
while ((count = s.Read(buffer, 0, 1024)) > 0)
{
builder.Append(Encoding.UTF8.GetString(buffer, 0, count));
}
s.Flush();
s.Close();
s.Dispose();
XmlDocument resultXml = new XmlDocument();
resultXml.LoadXml(builder.ToString());
logger.Info("Entered HangupCdrUrl() " + builder.ToString());
}
catch (Exception ex)
{
logger.Info("Entered CallResult() " + ex.Message);
return ResultJsonMessage.Tool.ExceptionResult(ex);
}
return ResultJsonMessage.Tool.SuccessResult();
}
========================================================================
====================2、接收外部Request.Form格式的请求参数===================
========================================================================
[HttpPost]
public ActionResult RequestForm()
{
try
{
logger.Info("Entered RequestXML() " + "Hello RequestForm");
HttpContextBase context = this.HttpContext;
HttpRequestBase Request = context.Request;
SortedDictionary<string, string> sArray = new SortedDictionary<string, string>();
#region 获取form参数
logger.Info("Entered " + "获取form参数");
int i = 0;
NameValueCollection coll;
//Load Form variables into NameValueCollection variable.
coll = Request.Form;
// Get names of all forms into a string array.
String[] requestItem = coll.AllKeys;
for (i = 0; i < requestItem.Length; i++)
{
sArray.Add(requestItem[i], Request.Form[requestItem[i]]);
}
#endregion
#region 判断是否有带返回参数
if (sArray.Count > 0)//判断是否有带返回参数
{
string notify_id = Convert.ToString(Request.Form["notify_id"]);
string sign = Convert.ToString(Request.Form["sign"]);
bool verifyResult = true;
if (verifyResult)//验证成功
{
logger.Info("Entered " + "验证成功");
//商户订单号
string out_trade_no = Request.Form["out_trade_no"];
//交易号
string trade_no = Request.Form["trade_no"];
//交易状态
string trade_status = Request.Form["trade_status"];
if (Request.Form["trade_status"] == "TRADE_FINISHED")
{
/**
* 交易成功
*/
logger.Info("Entered " + "交易成功");
}
else
{
}
}
else//验证失败
{
logger.Info("Entered fail");
}
}
else
{
logger.Info("Entered " + "AliNotifyURL()无通知参数");
}
#endregion
}
catch (Exception ex)
{
logger.Info("Entered CallResult() " + ex.Message);
return ResultJsonMessage.Tool.ExceptionResult(ex);
}
return ResultJsonMessage.Tool.SuccessResult();
}