雨风的个人网站(分享一些学习笔记)

青箬笠,绿蓑衣,细雨斜风不须归
 
 
asp版微信公众平台开发代码 (2016/11/7 10:34:30)
分类:微信公众平台 | 标签:asp 微信公众平台 微信平台开发 

 

申请公众号后,对公众号里的开发工具进行了设置。设置了服务器配置以后,接收到的用户消息就不会通过自动回复来发送了,只能通过你所设置的

服务器地址来进行交互。
需要注意的是,没有通过认证的个人订阅号无法实现自定义菜单功能,只能和用户通过命令方式进行交互。
那么,如何来接收用户通过微信平台发来的消息呢?
实际上,设置了服务器配置URL后,微信平台的消息发送过程是这样的:

 

(图)
微信平台收到用户发来的消息之后,对这个消息进行固定格式的xml封包,然后post到开发者填写的URL上。
这个XML数据包的格式如下:
<xml>
 <ToUserName><![CDATA[toUser]]></ToUserName>
 <FromUserName><![CDATA[fromUser]]></FromUserName>
 <CreateTime>1348831860</CreateTime>
 <MsgType><![CDATA[text]]></MsgType>
 <Content><![CDATA[this is a test]]></Content>
 <MsgId>1234567890123456</MsgId>
 </xml>
其中,ToUserName是开发者微信号;FromUserName是发送者的账号(不是微信号,是一个OpenID,微信平台根据这个能找到是谁发送的);

CreateTIme就是发送的时间,MsgType是text,表示为文本型的消息;Content就是所发送的消息内容;而MsgId是微信用来记录的发送的消息id。
我们的asp文件就可以通过读取以上xml数据包,得到是谁(FromUserName)给我们发送了什么类型(MsgType)的消息(Content)。
asp读取xml数据包的代码如下:
set xml_dom=server.CreateObject("MSXML2.DOMDocument")'创建一个MSXML2.DOMDocument对象
xml_dom.load request '载入post过来的数据包,也可以是xml格式的文件
ToUserName=xml_dom.getElementsByTagName("ToUserName").item(0).text '用getElementByTagName方法得到标签ToUserName的值,下同
FromUserName=xml_dom.getElementsByTagName("FromUserName").item(0).text
content=xml_dom.getElementsByTagName("Content").item(0).text
select case content
 case "绑定账号"
  '处理绑定账号相关代码
 case else
  '其他命令相关代码
end select
在以上代码中,我们可以通过一些分隔符将交互信息隔开,形成命令。比如:
arrcontent=split(content," ")'关键字用空格进行隔开
select case arrcontent(0)
 case "绑定账号"
  if ubound(arrcontent)=0 then
   strsend="绑定账号格式不正确,正确格式为:绑定账号 手机号码(中间用空格隔开)"
  else
   '处理绑定账号相关代码
  end if
end select
用户发送过来的命令处理完之后,接下来是要将处理结果返回到微信。返回的数据也是一个xml格式的数据包。
格式如下:
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[你好]]></Content>
</xml>
参数含义和接收到的xml数据参数含义是一样的,需要注意的是,FromUserName需要填写微信平台的OpenID,这个ID可以在处理接收到的xml数据里获

取到。
那么,我们就可以构造一个发送的xml数据回传给微信服务器了。
strresponse="<xml>"&vbcrlf
strresponse=strresponse&"<ToUserName><![CDATA["&fromusername&"]]></ToUserName>"&vbcrlf
strresponse=strresponse&"<FromUserName><![CDATA["&tousername&"]]></FromUserName>"&vbcrlf
strresponse=strresponse&"<CreateTime>"&now&"</CreateTime>"&vbcrlf
strresponse=strresponse&"<MsgType><![CDATA[text]]></MsgType>"&vbcrlf
strresponse=strresponse&"<Content><![CDATA["&strsend&"]]></Content>"&vbcrlf '反馈的消息
strresponse=strresponse&"</xml>"
response.write strresponse

这样一来,我们就制作了一个完整的asp版微信公众平台应答程序。需要注意的是,必须以utf-8格式进行编码,否则微信收到的中文将会出现乱码,

并且保存的asp文档也要以utf-8格式进行保存。
完整代码如下:
<%
response.Charset="utf-8" '注意这句
set xml_dom=server.CreateObject("MSXML2.DOMDocument")'创建一个MSXML2.DOMDocument对象
xml_dom.load request '载入post过来的数据包,也可以是xml格式的文件
ToUserName=xml_dom.getElementsByTagName("ToUserName").item(0).text '用getElementByTagName方法得到标签ToUserName的值,下同
FromUserName=xml_dom.getElementsByTagName("FromUserName").item(0).text
content=xml_dom.getElementsByTagName("Content").item(0).text
arrcontent=split(content," ")'关键字用空格进行隔开
select case arrcontent(0)
 case "绑定账号"
  if ubound(arrcontent)=0 then
   strsend="绑定账号格式不正确,正确格式为:绑定账号 手机号码(中间用空格隔开)"
  else
   '处理绑定账号相关代码
  end if
end select
strresponse="<xml>"&vbcrlf
strresponse=strresponse&"<ToUserName><![CDATA["&fromusername&"]]></ToUserName>"&vbcrlf
strresponse=strresponse&"<FromUserName><![CDATA["&tousername&"]]></FromUserName>"&vbcrlf
strresponse=strresponse&"<CreateTime>"&now&"</CreateTime>"&vbcrlf
strresponse=strresponse&"<MsgType><![CDATA[text]]></MsgType>"&vbcrlf
strresponse=strresponse&"<Content><![CDATA["&strsend&"]]></Content>"&vbcrlf '反馈的消息
strresponse=strresponse&"</xml>"
response.write strresponse
%>

阅读(6474) | 评论(0)
相关文章
asp微信公众平台申请及开发设置
个人订阅号实现网页获取用户openid(asp版)
评论
暂无评论!
昵称: * QQ:
Email: Website:
内容: *
验证码:  显示/刷新验证码 *
文章分类
电脑网络(1)
多耐特(1)
微信公众平台(3)
网站开发(4)
计算机基础(0)
智慧校园(1)
其他分类(0)
 
热门文章
一个简单的收缩菜单(7908)
asp版微信公众平台开发代码(6474)
个人订阅号实现网页获取用户openid(asp版)(5984)
asp微信公众平台申请及开发设置(4944)
主机屋免费空间申请流程(3256)
 
热门标签
asp(3478,3)  webservice(2711,1)  xml(2474,1)  微信公众平台(248,2)  申请流程(235,1)  主机屋(232,1)  主机屋免费空间怎么样(211,1)  免费空间(190,1)  微信平台开发(,1)  相关文章(,1)  相似文章(,1)  相关性(,1)  关联度(,1)  云技术(,1)  学习笔记(,1)  msxml2.XmlHttp(,1)  网页获取openid(,1)  订阅号网页(,1)  订阅号(,1)  订阅号获取openid(,1)  迷宫求解(,1)  javascript(,1)  urlencode(,1)  .netframework(,1)  收缩菜单(,1)  折叠菜单(,1)  系统未找到制定资源(,1)  msxml3.dll(,1)  智慧教室(,1)  
 
最新评论
© 雨风的个人网站(分享一些学习笔记) 2016-2022 版权所有 渝ICP备2021003333号-1