本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议 》和 《 阿里云开发者社区知识产权保护指引 》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单 进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。 /// <param name="signature"> 签名 </param> /// <param name="timestamp"> 时间戳 </param> /// <param name="nonce"></param> /// <param name="echostr"></param> /// <returns></returns> [HttpGet, Route( " Message " )] [AllowAnonymous] public ActionResult MessageGet( string signature, string timestamp, string nonce, string echostr) if ( new SecurityHelper().CheckSignature(signature, timestamp, nonce, _settings.Value.Token)) return Content(echostr); return Content( "" ); /// <summary> /// 接收消息并处理和返回相应结果 /// </summary> /// <param name="msg_signature"> 当加密模式时才会有该变量(消息签名) </param> /// <param name="signature"> 签名 </param> /// <param name="timestamp"> 时间戳 </param> /// <param name="nonce"></param> /// <returns></returns> [HttpPost, Route( " Message " )] [AllowAnonymous] public ActionResult MessagePost( string msg_signature, string signature, string timestamp, string nonce) if (! new SecurityHelper().CheckSignature(signature, timestamp, nonce, _settings.Value.Token)) return Content( null ); using (Stream stream = HttpContext.Request.Body) byte [] buffer = new byte [HttpContext.Request.ContentLength.Value]; stream.Read(buffer, 0 , buffer.Length); string content = Encoding.UTF8.GetString(buffer); if (! string .IsNullOrWhiteSpace(msg_signature)) // 消息加密模式 string decryptMsg = string .Empty; var wxBizMsgCrypt = new WXBizMsgCrypt(_settings.Value.Token, _settings.Value.EncodingAESKey, _settings.Value.AppId); int decryptResult = wxBizMsgCrypt.DecryptMsg(msg_signature, timestamp, nonce, content, ref decryptMsg); if (decryptResult == 0 && ! string .IsNullOrWhiteSpace(decryptMsg)) string resultMsg = new WechatMessageHelper().MessageResult(decryptMsg); string sEncryptMsg = string .Empty; if (! string .IsNullOrWhiteSpace(resultMsg)) int encryptResult = wxBizMsgCrypt.EncryptMsg(resultMsg, timestamp, nonce, ref sEncryptMsg); if (encryptResult == 0 && ! string .IsNullOrWhiteSpace(sEncryptMsg)) return Content(sEncryptMsg); else // 消息未加密码处理 string resultMsg = new WechatMessageHelper().MessageResult(content); return Content(resultMsg); return Content( null ); catch (Exception ex) _logger.LogError( " 接收消息并处理和返回相应结果异常: " , ex); return Content( null );

加解密实现(微信公众号官网有源码)

微信点餐系统的开发与实现
随着互联网技术逐渐的深入到生活,人们的生活消费习惯,已经发生很大的变化。就餐厅用餐而言,互联网技术和移动互联网技术的应用也己相关普及,比如早几年前就出现的餐厅点餐系统,就通过信息化的技术手段代替原来纸质菜单点餐的传统方式。这种方式一是可以方便顾客实现点餐叫号,二是方便商家进行人单合一的统一管理,减少了报单出错率,提升了用户的体验,所以得以大面积的应用和普及。        而移动互联网的出现,让智能手机的赋能更大广泛,腾讯微信适时推出微信小程序,使得智能手机的用户可以通过微信进行相应的信息化管理和参与,比如目前大面积应用的小程序商城,就将商业的业态从传统的PC互联网直接植入手机移动互
编程指南针