微信asp+sqlser开发实例——接收消息

根据微信http://mp.weixin.qq.com/wiki/index.php 接收消息提供的接口,本人把能接收的消息一一读取了出来,虽然可能会有用不到的,但全部读取出来比将来需用用的时候在找容易,下面代码是最原始的读取,也是本人在调整微信接口时写的,希望对你能有帮助。


这里做个广告,为了更快了解微信本来新建了一个QQ群,群名称是【微信开发技术交流:389075177】,专门用于微信开发和交流,欢迎正在研究微信的童鞋一起加入,一起学习,一起进步!


<%@Language="VBScript" CodePage="65001"%>
<%
'**********************************************
'注意事项
'ASP文件需要以UTF-8的格式保存,否则乱码.
'以下两行代码是为了通过微信接口验证的。
'response.write request("echostr")
'response.end
'**********************************************


dim ToUserName        '开发者微信号
dim FromUserName'发送方帐号(一个OpenID)
dim CreateTime        '消息创建时间(整型)
dim MsgType                'text
dim Content                '文本消息内容
set xml_dom = Server.CreateObject("MSXML2.DOMDocument")'此处根据您的实际服务器情况改写
xml_dom.load request
FromUserName=xml_dom.getelementsbytagname("FromUserName").item(0).text '发送者微信账号
ToUserName=xml_dom.getelementsbytagname("ToUserName").item(0).text '接收者微信账号。即我们的公众平台账号。
MsgType=xml_dom.getelementsbytagname("MsgType").item(0).Text
select case MsgType
case "text" '文本消息
KeyWord=xml_dom.getelementsbytagname("Content").item(0).text
'到数据库查询回复 
Sendsql="select * from WeiXin_KeyWord where ReceiveMsgType="&Receivers("id")&" and KeyWord='"&KeyWord&"'"
SendRs.open SendSql,conn,1,3
If Not SendRs.eof Then
'strsend=text(fromusername,tousername,SendRs("ReplyText"))
strsend=ReplyMessage(fromusername,tousername,SendRs("id"))
Else
strsend=text(fromusername,tousername,"你说的是:"&KeyWord)
End If
SendRs.close 
case "image" '图片消息

PicUrl=xml_dom.getelementsbytagname("PicUrl").item(0).Text
MediaId=xml_dom.getelementsbytagname("MediaId").item(0).Text
MsgId=xml_dom.getelementsbytagname("MsgId").item(0).Text
Content=" 图片URL;"&PicUrl
Content=Content&" 图片MediaId:"&MediaId
Content=Content&" 图片MsgId:"&MsgId
strsend=text(fromusername,tousername,Content)
case "voice" '语音消息
strsend=text(fromusername,tousername,"你发了我图片语音消息")
MediaId=xml_dom.getelementsbytagname("MediaId").item(0).Text
'语音格式,如amr,speex等 
VoiceFormat=xml_dom.getelementsbytagname("Format").item(0).Text
MsgId=xml_dom.getelementsbytagname("MsgId").item(0).Text
Content=" 您发送给我的语音信息\n"
Content=Content&" 语音格式:"&VoiceFormat
Content=Content&" MediaId:"&MediaId
Content=Content&" 此消息ID消息id:"&MsgId
strsend=text(fromusername,tousername,Content)
case "location" '地理位置
Location_X=xml_dom.getelementsbytagname("Location_X").item(0).Text
Location_Y=xml_dom.getelementsbytagname("Location_Y").item(0).Text
'地理位置信息 
Labelxxxx=xml_dom.getelementsbytagname("Label").item(0).Text
'地图缩放大小 
Scale=xml_dom.getelementsbytagname("Scale").item(0).Text
MsgId=xml_dom.getelementsbytagname("MsgId").item(0).Text


Content=" 您的地理位置:"&Labelxxxx
Content=Content&" <br>地理位置经度:"&Location_Y
Content=Content&" <br>地理位置维度:"&Location_X
Content=Content&" <br>此消息ID消息id:"&MsgId
strsend=text(fromusername,tousername,Content)
case "video" '视频消息

MediaId=xml_dom.getelementsbytagname("MediaId").item(0).Text
'视频消息缩略图的媒体id,可以调用多媒体文件下载接口拉取数据。
ThumbMediaId=xml_dom.getelementsbytagname("ThumbMediaId").item(0).Text 
MsgId=xml_dom.getelementsbytagname("MsgId").item(0).Text
Content=" 你发了我图片视频消息"
Content=Content&" <br>MediaId:"&MediaId
Content=Content&" <br>缩略图:"&ThumbMediaId
Content=Content&" <br>此消息ID消息id:"&MsgId
strsend=text(fromusername,tousername,Content)
case "link" '链接消息
strsend=text(fromusername,tousername,"你发了我图片链接消息")
Title=xml_dom.getelementsbytagname("Title").item(0).Text
Description=xml_dom.getelementsbytagname("Description").item(0).Text
Url=xml_dom.getelementsbytagname("Url").item(0).Text
MsgId=xml_dom.getelementsbytagname("MsgId").item(0).Text


case "event" '事件
strEventType=xml_dom.getelementsbytagname("Event").item(0).text '微信事件
if strEventType="subscribe" then '表示订阅微信公众平台
strsend=""
ElseIf strEventType="unsubscribe" Then'取消订阅
strsend=""
ElseIf strEventType="LOCATION" Then'上报地理位置  
'地理位置纬度 
Latitude=xml_dom.getelementsbytagname("Latitude").item(0).Text
'地理位置经度 
Longitude=xml_dom.getelementsbytagname("Longitude").item(0).Text
'地理位置精度  
Precision=xml_dom.getelementsbytagname("Precision").item(0).Text
strsend=gz(FromUserName,ToUserName)
ElseIf strEventType="CLICK" Then'自定义菜单事件   
'事件KEY值,与自定义菜单接口中KEY值对应   
EventKey=xml_dom.getelementsbytagname("EventKey").item(0).Text
strsend=gz(FromUserName,ToUserName)
ElseIf strEventType="VIEW" Then'点击菜单跳转链接时的事件推送
'事件KEY值,设置的跳转URL 
EventKey=xml_dom.getelementsbytagname("EventKey").item(0).Text
strsend=gz(FromUserName,ToUserName)
Else 
strsend=text(fromusername,tousername,"我不知什么事件")
end If
end select
response.write strsend
set xml_dom=Nothing


'*************以下代码只是为了调试作用***********
'由于asp不好调试,所有把代码输出到文本文件中,这样就容易多啦!!!


filepath=server.mappath(".")&"\wx.txt"
Set fso = Server.CreateObject("Scripting.FileSystemObject")
set fopen=fso.OpenTextFile(filepath, 8 ,true)
fopen.writeline(strsend)
set fso=nothing
set fopen=Nothing




'****************调试结束************************
'回复文本消息
function text(fromusername,tousername,returnstr)
text="<xml>" &_
"<ToUserName><![CDATA["&fromusername&"]]></ToUserName>" &_
"<FromUserName><![CDATA["&tousername&"]]></FromUserName>" &_
"<CreateTime>"&now&"</CreateTime>" &_
"<MsgType><![CDATA[text]]></MsgType>" &_
"<Content><![CDATA[" & Replace(returnstr,"<br>",VBCRLF) & "]]></Content>" &_
"<FuncFlag>0<FuncFlag>" &_
"</xml>"
end Function
%>


欢迎加群:389075177 学习交流
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值