Delphi XE7 用indy开发微信公众平台(3)- 验证消息真实性
2015-02-09 21:47
351 查看
验证消息真实性
原文链接:/article/5501999.html
扫下方二维码关注,测试效果
原文链接:/article/5501999.html
扫下方二维码关注,测试效果
uses IdHashSHA, IdGlobal; function SHA1(Input: String): String; begin with TIdHashSHA1.Create do try Result := LowerCase(HashBytesAsHex(TidBytes(Bytesof(Input)))); finally Free; end; end; function CheckSignature(ARequestInfo: TIdHTTPRequestInfo): boolean; var signature, timestamp, nonce, echostr: String; tmpstr: TStringList; temp: String; begin tmpstr := TStringList.Create; try signature := ARequestInfo.Params.Values['signature']; timestamp := ARequestInfo.Params.Values['timestamp']; nonce := ARequestInfo.Params.Values['nonce']; echostr := ARequestInfo.Params.Values['echostr']; tmpstr.Add(Token); tmpstr.Add(timestamp); tmpstr.Add(nonce); tmpstr.Sort; temp := StringReplace(tmpstr.text, #13#10, '', [rfReplaceAll]); Result := SHA1(temp) = signature; finally tmpstr.Free; end; end; procedure TForm1.IdHTTPServerCommandGet(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo); begin if CheckSignature(ARequestInfo) then if ARequestInfo.Params.Values['echostr'] <> '' then begin AResponseInfo.ContentType := 'text/html; charset=UTF-8'; AResponseInfo.ContentText := ARequestInfo.Params.Values['echostr']; end; end;
相关文章推荐
- Delphi XE7 用indy开发微信公众平台(6)- 被动回复用户消息
- Delphi XE7 用indy开发微信公众平台(4)- 接收普通消息
- 微信公众平台开发【一】 验证消息真实性
- Delphi XE7 用indy开发微信公众平台(5)- 接收事件推送
- asp.net开发微信公众平台之验证消息的真实性
- Delphi XE7 用indy开发微信公众平台(9)- 高级群发接口
- Delphi XE7 用indy开发微信公众平台(8)- 自定义菜单
- Delphi XE7 用indy开发微信公众平台所有功能,可刷阅读,可刷赞,可加推广(除微支付)
- Delphi XE7 用indy开发微信公众平台(2)- 获取微信服务器IP地址
- Delphi XE7 用indy开发微信公众平台(7)- 用户管理
- asp.net开发微信公众平台之验证消息的真实性
- 基于PHP的微信公众平台开发(TOKEN验证,消息回复)
- 微信公众平台消息接口开发(2)你的服务器没有正确响应Token验证的解决方法
- 微信公众平台消息接口开发(2)你的服务器没有正确响应Token验证的解决方法
- ASP.NET MVC 微信公共平台开发之验证消息的真实性
- 微信公众平台 checkSignature(官方验证消息真实性方法) 导致回复的消息丢失
- 微信公众平台消息接口开发(11)地理位置查询附近商家
- 微信公众平台消息接口开发(1)启用接口
- 微信公众平台消息接口开发(20)图片识别之人脸识别
- 微信公众平台消息接口开发(10)语音触发(非识别)