using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Security;
using System.Xml;
namespace WEBapi.Controllers
{
public class WechatController : ApiController
{
//define("TOKEN", "weixin");
public string Token = "bill";
[System.Web.Http.HttpPost]
[System.Web.Http.HttpGet]
public JsonResult Entry()
{
// Debug.WriteLine(Request.Content);
HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context
HttpRequestBase request = context.Request;//定义传统request对象
HttpResponseBase response = context.Response;
if (string.IsNullOrEmpty(request.QueryString["echoStr"]))
{
response.End();
}
string echoStr = request.QueryString["echoStr"].ToString();
if (checkSignature())
{
if (!string.IsNullOrEmpty(echoStr))
{
response.Write(echoStr);
// response.Output.Write("hello");
response.End();
}
}
return new JsonResult();
}
public bool checkSignature()
{
HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context
HttpRequestBase request = context.Request;//定义传统request对象
string signature = request.QueryString["signature"].ToString();
string timestamp = request.QueryString["timestamp"].ToString();
string nonce = request.QueryString["nonce"].ToString();
string[] ArrTmp = { Token, timestamp, nonce };
Array.Sort(ArrTmp); //字典排序
string tmpStr = string.Join("", ArrTmp); //使用指定的字符分隔
//加密
tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");
tmpStr = tmpStr.ToLower();
if (tmpStr == signature)
{
return true;
}
else
{
return false;
}
}
}
}
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Security;
using System.Xml;
namespace WEBapi.Controllers
{
public class WechatController : ApiController
{
//define("TOKEN", "weixin");
public string Token = "bill";
[System.Web.Http.HttpPost]
[System.Web.Http.HttpGet]
public JsonResult Entry()
{
// Debug.WriteLine(Request.Content);
HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context
HttpRequestBase request = context.Request;//定义传统request对象
HttpResponseBase response = context.Response;
if (string.IsNullOrEmpty(request.QueryString["echoStr"]))
{
response.End();
}
string echoStr = request.QueryString["echoStr"].ToString();
if (checkSignature())
{
if (!string.IsNullOrEmpty(echoStr))
{
response.Write(echoStr);
// response.Output.Write("hello");
response.End();
}
}
return new JsonResult();
}
public bool checkSignature()
{
HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context
HttpRequestBase request = context.Request;//定义传统request对象
string signature = request.QueryString["signature"].ToString();
string timestamp = request.QueryString["timestamp"].ToString();
string nonce = request.QueryString["nonce"].ToString();
string[] ArrTmp = { Token, timestamp, nonce };
Array.Sort(ArrTmp); //字典排序
string tmpStr = string.Join("", ArrTmp); //使用指定的字符分隔
//加密
tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");
tmpStr = tmpStr.ToLower();
if (tmpStr == signature)
{
return true;
}
else
{
return false;
}
}
}
}