Commit 73d671c3 authored by 黄奎's avatar 黄奎

页面修改

parent 844518af
...@@ -34,63 +34,85 @@ namespace Mall.WebApi.Controllers.Adapay ...@@ -34,63 +34,85 @@ namespace Mall.WebApi.Controllers.Adapay
[HttpGet] [HttpGet]
public string CheckSignature(string echostr, string signature, string timestamp, string nonce) public string CheckSignature(string echostr, string signature, string timestamp, string nonce)
{ {
Tencent.WXBizMsgCrypt wxcpt = new Tencent.WXBizMsgCrypt(token, aes, appId); string query = string.Format("echostr:{0} signature:{1} timestamp:{2} nonce:{3}", echostr, signature, timestamp, nonce);
string sVerifyMsgSig = signature; Common.Plugin.LogHelper.Write("CheckSignature_Query:: " + query);
string sVerifyTimeStamp = timestamp; string[] ArrTmp = { token, timestamp, nonce };
string sVerifyNonce = nonce; Array.Sort(ArrTmp);
string sVerifyEchoStr = echostr; string tmpStr = string.Join("", ArrTmp);
Common.Plugin.LogHelper.Write("CheckSignature_tmpStr:: " + tmpStr);
string sEchoStr = ""; SHA1 sha;
int ret = wxcpt.VerifySignature(token, sVerifyTimeStamp, sVerifyNonce, sVerifyEchoStr, sVerifyMsgSig); string hash = "";
if (ret != 0) try
{ {
Common.Plugin.LogHelper.Write("验证Url失败:" + ret); Common.Plugin.LogHelper.Write("CheckSignature_hash:: 11" );
sha = new SHA1CryptoServiceProvider();
Common.Plugin.LogHelper.Write("CheckSignature_hash:: 22");
byte[] dataToHash = Encoding.UTF8.GetBytes(tmpStr);
Common.Plugin.LogHelper.Write("CheckSignature_hash:: 33");
byte[] dataHashed = sha.ComputeHash(dataToHash);
Common.Plugin.LogHelper.Write("CheckSignature_hash:: 44");
hash = BitConverter.ToString(dataHashed).Replace("-", "");
Common.Plugin.LogHelper.Write("CheckSignature_hash:: 55");
hash = hash.ToLower();
} }
catch (Exception ex)
return sEchoStr; {
Common.Plugin.LogHelper.Write(ex, "CheckSignature");
}
Common.Plugin.LogHelper.Write("CheckSignature_hash:: " + hash);
Common.Plugin.LogHelper.Write("CheckSignature_signature:: " + signature);
if (hash == signature)
{
return echostr;
}
return "";
} }
/// <summary> /// <summary>
/// 接收客服消息 /// 接口认证
/// </summary> /// </summary>
/// <param name="echostr"></param>
/// <param name="signature"></param>
/// <param name="timestamp"></param>
/// <param name="nonce"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public async Task<HttpResponseMessage> wx() public string CheckSignature(string signature, string timestamp, string nonce)
{
//var content = await Request.Content.ReadAsStringAsync();
HttpResponseMessage responseMessage = new HttpResponseMessage();
return responseMessage;
}
/// <summary>
/// 验证微信签名
/// </summary>
private bool CheckSignatureModule(string token, string signature, string timestamp, string nonce)
{ {
string query = string.Format("echostr1:signature:{1} timestamp:{2} nonce:{3}", signature, timestamp, nonce);
Common.Plugin.LogHelper.Write("CheckSignature_Query1:: " + query);
string[] ArrTmp = { token, timestamp, nonce }; string[] ArrTmp = { token, timestamp, nonce };
Array.Sort(ArrTmp); Array.Sort(ArrTmp);
string tmpStr = string.Join("", ArrTmp); string tmpStr = string.Join("", ArrTmp);
var data = SHA1.Create().ComputeHash(Encoding.UTF8.GetBytes(tmpStr)); Common.Plugin.LogHelper.Write("CheckSignature_tmpStr:: " + tmpStr);
Common.Plugin.LogHelper.Write("data:" + data); SHA1 sha;
var sb = new StringBuilder(); string hash = "";
foreach (var t in data) try
{ {
sb.Append(t.ToString("X2")); Common.Plugin.LogHelper.Write("CheckSignature_hash:: 11");
sha = new SHA1CryptoServiceProvider();
Common.Plugin.LogHelper.Write("CheckSignature_hash:: 22");
byte[] dataToHash = Encoding.UTF8.GetBytes(tmpStr);
Common.Plugin.LogHelper.Write("CheckSignature_hash:: 33");
byte[] dataHashed = sha.ComputeHash(dataToHash);
Common.Plugin.LogHelper.Write("CheckSignature_hash:: 44");
hash = BitConverter.ToString(dataHashed).Replace("-", "");
Common.Plugin.LogHelper.Write("CheckSignature_hash:: 55");
hash = hash.ToLower();
} }
tmpStr = sb.ToString(); catch (Exception ex)
tmpStr = tmpStr.ToLower();
if (tmpStr == signature)
{ {
return true; Common.Plugin.LogHelper.Write(ex, "CheckSignature");
} }
else Common.Plugin.LogHelper.Write("CheckSignature_hash:: " + hash);
Common.Plugin.LogHelper.Write("CheckSignature_signature:: " + signature);
if (hash == signature)
{ {
return false; return echostr;
} }
return "";
} }
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment