<% 
Class SmsSend
	'____________________
	Private value_			'返回信息
	Private src_			'提交的目标URL地址
	Private userid_			'企业ID（userid）登陆后台：https://cloud.thinksms.cn 通过“客户管理”-“我的信息”查询。
	Private timestamp_		'时间戳
	Private sign_			'加密密钥：通过【账号+密码+时间戳】拼接后MD5加密生成（32位小写）。工具地址：http://www.thinksms.cn/sign_MD5.php
	Private content_		'短信内容，发送短信必须带前缀签名，无签名则失败，签名符号如：【智想云创】您的注册验证码：8899
	Private mobile_			'手机号码，用英文半角逗号（,）间隔
	Private charset_		'
	Private isGet_			'判断是否已经提交
	Private strxml_			'
	
	Public property let src(srcs)	'赋值—短信内容
	src_ = srcs
	End Property
	
	Public property let userid(userids)	'赋值—短信内容
	userid_ = userids
	End Property
	
	Public property let password(passwords)	'赋值—短信内容
	password_ = passwords
	End Property
	
	Public property let account(accounts)	'赋值—短信内容
	account_ = accounts
	End Property
	
	Public property let content(contents)	'赋值—短信内容
	content_ = contents
	End Property
	
	Public property let mobile(mobiles)		'赋值—手机号码
	mobile_ = mobiles
	End Property
		
	Public property let charset(charsets) '赋值—提交的目标URL地址/属性
	charset_ = charsets
	End property
	
	Public property get value '返回值—应用类方法加工过的内容/属性
	value = value_
	End property
	
	Public Property get Version
		Version="短信发送类"
	End Property
	
	private Sub class_initialize()
		value_ = ""
		src_ = "http://cloud.thinksms.cn/v2smsGBK.aspx"  '编码不同，提交入口不同。sms.aspx为utf-8提交入口，smsGBK.aspx为GBK提交入口，防止乱码，详见接口文档说明。
		userid_ = "12"
		password_ = "123456"
		account_="test"
		content_ = ""
		mobile_ = ""
		charset_ = "gb2312"
		isGet_ = False
	End Sub
		
	private Sub class_terminate()
	End Sub
	
	private Function BytesToBstr(body,Cset) '中文处理
		dim objstream
		set objstream = Server.CreateObject("adodb.stream")
		objstream.Type = 1
		objstream.Mode =3
		objstream.Open
		objstream.Write body
		objstream.Position = 0
		objstream.Type = 2
		objstream.Charset = Cset
		BytesToBstr = objstream.ReadText 
		objstream.Close
		set objstream = nothing
	End Function
	
	Public Sub getto() '窃取目标URL地址的HTML代码/方法
		Dim Http
		Set Http = Server.CreateObject("Msxml2.XMLHTTP.3.0")
		If Err Then
			Err.Clear
			Set Http = Server.CreateObject("Msxml2.XMLHTTP")
			If Err Then
				Err.Clear
				Set Http = Server.CreateObject("Microsoft.XMLHTTP")
				If Err Then
					Err.Clear
					Rem 服务器不支持Msxml，本程序无法运行！
					Exit Sub
				End If
			End If
		End If
		Http.Open "POST", src_, False
		If action_ = 1 Or action_ = 2  Then
		strxml_ = "action=send&userid="&userid_&"&account="&account_&"&password="&password_&"&action="&action_
		Else
		strxml_ = "action=send&userid="&userid_&"&account="&account_&"&password="&password_&"&content="&content_&"&mobile="&mobile_
		End If
		Http.SetRequestHeader "CONTENT-LENGTH ",len(strxml_)
		Http.SetRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded"
		Http.Send(strxml_)
		If Http.Status<>200 Then
			value_="sms error"
			Exit Sub
		End If
		value_=BytesToBSTR(Http.responseBody,charset_)
		isGet_= True
		Set http=Nothing
		If err.number<>0 Then err.Clear
		
		Set objXML = Server.CreateObject("MSXML2.DOMDocument")
		objXML.validateonparse = true
		objXML.async=false
		objXML.loadXML(value_)
		Set objNodes = objXML.getElementsByTagName("returnsms") 
		Dim returnstatus
		Dim remainpoint
		Dim message
		if not isNUll(objNodes(0)) then
			returnstatus=Trim(objNodes(0).getAttribute("returnstatus"))
			if returnstatus="Success" then
				response.Write("提交成功")
			else
				
				response.Write("提交失败")
			end if
		end if
		
	End Sub

End class

dim sendsms
Set sendsms = New SmsSend
call sendsms.getto()
Set sendsms=nothing

'接入注意事项：（常见问题）
'	1.内容乱码						------->>>>>> 编码不同，提交入口不同。v2sms.aspx为utf-8提交入口，v2smsGBK.aspx为GBK提交入口，如两个提交入口均乱码，重新转换一下文件编码。
'	2.提示短信必须带【】格式签名	------->>>>>> 提交入口不正确导致乱码，系统识别不到【】签名；或发送短信时未带前缀签名；或定时短信sendtime格式错误，sendtime可为空，不能传0，示例中已去除。
'	3.返回错误0						------->>>>>> 定时短信sendtime格式错误，sendtime可为空或具体时间，不能传0，示例中已去除。
'	4.程序异常，请重试或联系客服！从字符串转换日期和/或时间时，转换失败。------->>>>>> 定时短信sendtime格式错误，sendtime可为空或具体时间，不能传0，示例中已去除。
'	5.其他注意事项详见接口文档说明文件。




%>