zoukankan      html  css  js  c++  java
  • asp关注公众号粉丝信息自动入库

    今天一个客户找我写了一个小代码,他想实现用户关注公众号时自动把这个用户的信保存到数据库,就是说当这个用户关注他的公众号时,把这个用户的微信头像,微信名,性别,地区,openid这些信息保存到数据库,做为会员信息来用,考虑了一下,查查微信开发文档,发现并不难,与是花了1个小时,写好了。

    关注微信公众号自动保存用户信息入库asp代码:

    '获取微信主动发送过来的内容
     Set xmldom = Server.CreateObject("MSXML2.DOMDocument")
                xmldom.load request
                xml = xmldom.documentElement.xml
                'call CreateTextFile(request.QueryString&xml,"a.txt")
    			If encrypt_type = "aes" Then
                   res =  ToAes(xml,0) 
    			   xmldom.loadxml res
                End If
    			ToUserName=xmldom.getelementsbytagname("ToUserName").item(0).text '接收者微信账号。即我们的公众平台账号。
    			FromUserName=xmldom.getelementsbytagname("FromUserName").item(0).text '发送者微信账号Openid
    			CreateTime=xmldom.getelementsbytagname("CreateTime").item(0).text
    			MsgType=xmldom.getelementsbytagname("MsgType").item(0).text
    			if (MsgType="event") then
    				strEventType=xmldom.getelementsbytagname("Event").item(0).text '微信事件
    				if strEventType="subscribe" then '表示订阅微信公众平台
    						EventKey=xmldom.getelementsbytagname("EventKey").item(0).text
    						Content="感谢关注"
    						if EventKey<>"" then
    							EventKey=replace(EventKey,"qrscene_","")
    							Content = "你的上线ID:"&EventKey
    						Else
    							EventKey= 0
    							Content = "感谢关注"						   	
    						end if
    						Call Login(EventKey,FromUserName)
    						Call Return_Text(Content)
    				ElseIf strEventType="unsubscribe" Then'取消关注
    						Content="取消关注"
    						Call Return_Text(Content)
    				ElseIf strEventType="CLICK" Then'点击菜单获取关键字,获取
    						EventKey=xmldom.getelementsbytagname("EventKey").item(0).text
    						Content=EventKey
    						Call Return_Text(Content)
    				ElseIf strEventType="VIEW" Then'点击菜单获取关键字,跳转到链接
    						EventKey=xmldom.getelementsbytagname("EventKey").item(0).text
    						Content=EventKey
    						Call Return_Text(Content)
    				ElseIf strEventType="SCAN" Then '扫描二维码
    						EventKey=xmldom.getelementsbytagname("EventKey").item(0).text
    						Content= "欢迎再次光临"
    						Call Return_Text(Content)
    				ElseIf strEventType="scancode_push" or strEventType="scancode_waitmsg" Then	'点击菜单,调用扫码推事件的事件推送
    						EventKey=xmldom.getelementsbytagname("EventKey").item(0).text
    						ScanResult=xmldom.getelementsbytagname("ScanResult").item(0).text
    						Content=ScanResult
    						Call Return_Text(Content)
    				ElseIf strEventType="pic_sysphoto" or strEventType="pic_photo_or_album" or strEventType="pic_weixin" Then	'点击菜单,调用系统拍照发图
    						EventKey=xmldom.getelementsbytagname("EventKey").item(0).text
    						Counts=xmldom.getelementsbytagname("Count").item(0).text
    						Content="拍照发图,接收【"&Counts&"】张图片"
    						Call Return_Text(Content)
    				ElseIf strEventType="location_select" Then	'点击菜单,调用位置发送
    						EventKey=xmldom.getelementsbytagname("EventKey").item(0).text
    						Location_X=xmldom.getelementsbytagname("Location_X").item(0).text
    						Location_Y=xmldom.getelementsbytagname("Location_Y").item(0).text
    						Scale=xmldom.getelementsbytagname("Scale").item(0).text
    						Label=xmldom.getelementsbytagname("Label").item(0).text
    						Content="发送位置"&EventKey
    						Call Return_Text(Content)					
    				ElseIf strEventType="LOCATION" Then'获取用户地理位置,当用户打开对话框时,自动获取微信用户的实时地址。本功能需要配合服务号的LEB接口。
    						Latitude=xmldom.getelementsbytagname("Latitude").item(0).text
    						Longitude=xmldom.getelementsbytagname("Longitude").item(0).text
    						Precision=xmldom.getelementsbytagname("Precision").item(0).text
    						'记录用户LEB信息
    				end if
    			else
    				MsgId=xmldom.getelementsbytagname("MsgId").item(0).text
    			End If
    			If MsgType="text" then'接收文本信息
    				Content=xmldom.getelementsbytagname("Content").item(0).text
    				Call Return_Text(Content)
    			elseif MsgType="image" then'接收图片信息
    				MediaId=xmldom.getelementsbytagname("MediaId").item(0).text
    				PicUrl=xmldom.getelementsbytagname("PicUrl").item(0).text
    				Content=PicUrl
    				Call Return_Text(Content)		
    			elseif MsgType="voice" then'"接收语音信息
    				MediaId=xmldom.getelementsbytagname("MediaId").item(0).text
    				Format=xmldom.getelementsbytagname("Format").item(0).text
    				Content=MediaId
    				Call Return_Text(Content)
    			elseif MsgType="video" then'接收视频信息
    				MediaId=xmldom.getelementsbytagname("MediaId").item(0).text
    				ThumbMediaId=xmldom.getelementsbytagname("ThumbMediaId").item(0).text
    				Content=MediaId
    				Call Return_Text(Content)
    			elseif MsgType="location" then'接收位置信息
    				Location_X=xmldom.getelementsbytagname("Location_X").item(0).text
    				Location_Y=xmldom.getelementsbytagname("Location_Y").item(0).text
    				Scale=xmldom.getelementsbytagname("Scale").item(0).text
    				Label=xmldom.getelementsbytagname("Label").item(0).text
    				Content="地理位置"&Location_X&","&Location_Y&"你发的是地址信息:"&Label
    				Call Return_Text(Content)
    			elseif MsgType="link" then'接收链接信息
    				Title=xmldom.getelementsbytagname("Title").item(0).text
    				Descriptions=xmldom.getelementsbytagname("Description").item(0).text
    				Url=xmldom.getelementsbytagname("Url").item(0).text
    				Content=Url
    				Call Return_Text(Content)
    			end if	
    set xmldom=Nothing	
    

      

  • 相关阅读:
    A. Ivan the Fool and the Probability Theory
    关于消除“输出中最后的一个空格”问题
    半文件式输入中一种常见的输入方式
    持续输入问题
    汉诺塔问题
    给定两个正整数,求它们的最大公约数。
    第三届全国高校绿色计算机大赛(初赛题目)
    第三届全国高校绿色计算机大赛(初赛题目)
    C++中的输入及其原理简析
    流感传染
  • 原文地址:https://www.cnblogs.com/yjed/p/11075491.html
Copyright © 2011-2022 走看看