介绍
当普通微信用户向公众账号发消息时,微信服务器将POST消息的
代码实现
1、接收参数。
var postModel = GetPostModel(request);
2、验证签名。
if (!CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, Token)) { return new HttpResponseMessage { Content = new StringContent("参数错误!") }; }
3、数据处理。
[HttpPost] [ActionName("CallBack")] public HttpResponseMessage HandleMsgFromWeChat(HttpRequestMessage request) { try { var postModel = GetPostModel(request); if (!CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, Token)) { return new HttpResponseMessage { Content = new StringContent("参数错误!") }; } string request.Content.ReadAsStringAsync().Result; string domain = BqoolWebSite.WebSiteMapping[BqoolWebSiteType.BigCRMWebService][CommonSetting.GetEnvironmentMode()]; string url = domain + "/api/WeChat/Process"; var data = new Process= "WeChat", UpdateUser = "WeChat", Date = DateTime.UtcNow.ToUnixTimestamp(), Action = BaseRequestParam.ActionType.Add, = "WeChat Process"); var result = HttpTools.EncryptPost<Process(url, data); _nLogger.Info($"WeChat Process"); if (result.Success && result.Data != null) { return new HttpResponseMessage { Content = new StringContent(result.Data.ToString()) }; } return new HttpResponseMessage { Content = new StringContent("错误!") }; } catch (Exception ex) { _nLogger.Error(ex); return new HttpResponseMessage { Content = new StringContent("") }; } } /// <summary> /// 验签参数 /// </summary> /// <param name="content"></param> /// <returns></returns> private PostModel GetPostModel(HttpRequestMessage content) { string signature = (from kvp in content.GetQueryNameValuePairs() where kvp.Key == "signature" select kvp.Value).FirstOrDefault(); string timestamp = (from kvp in content.GetQueryNameValuePairs() where kvp.Key == "timestamp" select kvp.Value).FirstOrDefault(); string nonce = (from kvp in content.GetQueryNameValuePairs() where kvp.Key == "nonce" select kvp.Value).FirstOrDefault(); return new PostModel() { Signature = signature, Timestamp = timestamp, Nonce = nonce }; }
总结
其实整个api过程是很简单的,主要的是自己业务逻辑的处理。
原文转载:http://www.shaoqun.com/a/540610.html
mail.ru:https://www.ikjzd.com/w/2232
zappos.com:https://www.ikjzd.com/w/330
介绍当普通微信用户向公众账号发消息时,微信服务器将POST消息的代码实现1、接收参数。varpostModel=GetPostModel(request);2、验证签名。if(!CheckSignature.Check(postModel.Signature,postModel.Timestamp,postModel.Nonce,Token)){returnnewHttpResponseMessa
邮乐:邮乐
etsy:etsy
报告解读| 2020旺季营销报告解析:报告解读| 2020旺季营销报告解析
321电商早报0325丨亚马逊将推出视频广告功能:321电商早报0325丨亚马逊将推出视频广告功能
口述:成为美女上司的性玩偶我苦不堪言上司性玩偶美女:口述:成为美女上司的性玩偶我苦不堪言上司性玩偶美女
没有评论:
发表评论