本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《
阿里云开发者社区用户服务协议
》和
《
阿里云开发者社区知识产权保护指引
》。如果您发现本社区中有涉嫌抄袭的内容,填写
侵权投诉表单
进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
///
<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互联网直接植入手机移动互
编程指南针