热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用delphi+intraweb进行微信消息处理

​在第二讲使用delphi+intraweb进行微信开发2—intraweb以.net方式发布(以asp.netmvc4模式部署)在IIS(.net虚拟主机)上我们成功把iw应用部署在了云虚拟主机上,在这一讲里,我们将延续第一讲的内容回归微信开发,这次讲解微信消息处理。
在第二讲使用delphi+intraweb进行微信开发2—intraweb以.net方式发布(以asp.net mvc4模式部署)在IIS(.net虚拟主机)上 我们成功把iw应用部署在了云虚拟主机上,在这一讲里,我们将延续第一讲的内容回归微信开发,这次讲解微信消息处理。

首先明确几个知识点:

1、微信服务器转发用户消息使用的http post方法,在第一讲中关于微信服务器的http数据提交方法我们并没有细说,实际上微信进行接入验证使用的是http get方法;而转发用户消息则使用的http post方法,并且转发消息时消息以xml格式进行编码,COntentType=text/xml。

2、微信服务器消息转发是可以选择三种数据传递方式的,一、明文;二、加密;三、混合。在这一讲了为了调试方便,我们采用明文方式传递数据。下一讲再讲解消息加密方式的处理。

本来感觉这一讲的内容没什么难度,要是.net、php甚至是delphi的webbroker都应该很容易实现。但是用上iw后发现问题很复杂!

iw处理http请求数据的类是THttpRequest,但是我看遍了THttpRequest的属性和方法就没有找到直接存取http content的地方,只有个似乎是读取http content的THttpRequest.ContentFields属性,但是实际执行代码并调试后发现,这个属性根本无法取到微信服务器传递过来的xml文件,内容始终是空的。

经过反复验证发现这个ContentFields属性只能对http request时ContentType为application/x-www-form-urlencoded时传递的键值对内容有效,也就是对于表单类型的提交是可以取到数据的,在第一讲的微信接入中就是这种情况,微信传递过来的signature、timestamp、nonce等字段值都是可以通过THttpRequest.ContentFields取出来的。

事情发展到现在彻底陷入困境了,那么COntentType=text/xml时如何用THttpRequest类的方法获取内容呢?经过研究发现THttpRequest类有个Files属性,当时感觉希望就在这个属性上,毕竟xml也可以当做文件来上传不是吗?呵呵,遗憾的是,我当时无论怎么实验(反汇编dcu都用上了),这个属性的文件数始终是0,这个希望也断了!

于是乎在iw官方的问题贴论坛上发帖留言开始了求教之路,1天、2天始终有人看没人回,在屡次搜索相关提问后发现了曾经有人和我遇到同样的问题,当时作者给了回应说提问者表示不清楚要求发电子邮件给作者代码,呵呵,算是抓到稻草了,立即冒充提问者给作者发送我的代码并附上了提问,呀呀,石沉大海啊,呵呵,iw真是想爱你这么的不容易。

没有办法继续搜索其他人的提问吧,功夫不负有心人啊,终于找到了一个帖子,里面提问者和我的问题不相同,但是回答者提到iw demos里面有个PostFormData示例工程,立即查看我下载的demo,发现根本没有这个工程,上官网重新下载例子工程,呵呵,终于有了!打开代码一看,原来如此!跟第一讲一样就是一行代码难受我好几天。

亲们看吧:

end;

更多使用delphi+intraweb进行微信消息处理相关文章请关注PHP中文网!

推荐阅读
  • 本文详细介绍了如何使用 PHP 接收并处理微信支付的回调结果,确保支付通知能够被正确接收和响应。 ... [详细]
  • 国内BI工具迎战国际巨头Tableau,稳步崛起
    尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文介绍了如何使用PHP代码实现微信平台的媒体素材上传功能,详细解释了API接口的使用方法和注意事项,确保文件路径正确以避免常见的错误。 ... [详细]
  • 本文将深入探讨PHP编程语言的基本概念,并解释PHP概念股的含义。通过详细解析,帮助读者理解PHP在Web开发和股票市场中的重要性。 ... [详细]
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • Spring Boot 中静态资源映射详解
    本文深入探讨了 Spring Boot 如何简化 Web 应用中的静态资源管理,包括默认的静态资源映射规则、WebJars 的使用以及静态首页的处理方法。通过本文,您将了解如何高效地管理和引用静态资源。 ... [详细]
  • 本文探讨了 RESTful API 和传统接口之间的关键差异,解释了为什么 RESTful API 在设计和实现上具有独特的优势。 ... [详细]
  • 本文探讨了在不使用服务器控件的情况下,如何通过多种方法获取并修改页面中的HTML元素值。除了常见的AJAX方式,还介绍了其他可行的技术方案。 ... [详细]
  • 本文介绍如何通过SQL查询从JDE(JD Edwards)系统中提取所有字典数据,涵盖关键表的关联和字段选择。具体包括F0004和F0005系列表的数据提取方法。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
    友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
  • 以下实例展示了locals( ... [详细]
author-avatar
micheals
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有