ASP通过http调用验证码短信接口源码

通过验证码短信http调用接口,您可以很快速的在网站或者app中集成手机验证及订单通知类短信功能,,该源码只是核心代码,具体可以根据您的实际需求进行扩展。

以下是utf-8编码的代码==================================================================<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%><%Function Post(url,data)dim Https set Https=server.createobject("MSXML2.XMLHTTP")Https.open "POST",url,falseHttps.setRequestHeader "Content-Type","application/x-www-form-urlencoded"Https.send dataif Https.readystate=4 thendim objstream set objstream = Server.CreateObject("adodb.stream")objstream.Type = 1objstream.Mode =3objstream.Openobjstream.Write Https.responseBodyobjstream.Position = 0objstream.Type = 2objstream.Charset = "utf-8"Post = objstream.ReadTextobjstream.Closeset objstream = nothingset https=nothingend ifEnd Functiondim target,post_datatarget = "?method=Submit"post_data = "account=用户名&password=密码&mobile=手机号码&content="&Server.URLEncode("您的验证码是:4526。请不要把验证码泄露给其他人。")response.Write(Post(target,post_data))''//请自己解析Post(target,post_data)返回的字符串并实现自己的逻辑%>以下是GBK编码的代码==================================================================<meta http-equiv="Content-Type" content="text/html; charset=gbk" /><%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%><%'asp UTF转GB2312 将UTF8编码文字转换为GB编码文字的asp代码function UTF2GB(UTFStr)for Dig=1 to len(UTFStr) '如果UTF8编码文字以%开头则进行转换 if mid(UTFStr,Dig,1)="%" then'UTF8编码文字大于8则转换为汉字if len(UTFStr) >= Dig+8 thenGBStr=GBStr & ConvChinese(mid(UTFStr,Dig,9))Dig=Dig+8elseGBStr=GBStr & mid(UTFStr,Dig,1)end if elseGBStr=GBStr & mid(UTFStr,Dig,1) end ifnextUTF2GB=GBStrend function'GB2312转UTF8的asp代码 将GB编码文字转换为UTF8编码文字Function toUTF8(szInput)Dim wch, uch, szRetDim xDim nAsc, nAsc2, nAsc3'如果输入参数为空,则退出函数If szInput = "" ThentoUTF8 = szInputExit FunctionEnd If'开始转换For x = 1 To Len(szInput)'利用mid函数分拆GB编码文字wch = Mid(szInput, x, 1)'利用ascW函数返回每一个GB编码文字的Unicode字符代码'注:asc函数返回的是ANSI 字符代码,注意区别nAsc = AscW(wch)If nAsc < 0 Then nAsc = nAsc + 65536If (nAsc And &HFF80) = 0 ThenszRet = szRet & wchElseIf (nAsc And &HF000) = 0 Thenuch = "%" & Hex(((nAsc \ 2 ^ 6)) Or &HC0) & Hex(nAsc And &H3F Or &H80)szRet = szRet & uchElse'GB编码文字的Unicode字符代码在0800 – FFFF之间采用三字节模版uch = "%" & Hex((nAsc \ 2 ^ 12) Or &HE0) & "%" & _Hex((nAsc \ 2 ^ 6) And &H3F Or &H80) & "%" & _Hex(nAsc And &H3F Or &H80)szRet = szRet & uchEnd IfEnd IfNexttoUTF8 = szRetEnd Function'二进制转换为十六进制的asp代码function c2to16(x)i=1for i=1 to len(x) step 4c2to16=c2to16 & hex(c2to10(mid(x,i,4)))nextend function'二进制转换为十进制的asp代码function c2to10(x)c2to10=0if x="0" then exit functioni=0for i= 0 to len(x) -1if mid(x,len(x)-i,1)="1" then c2to10=c2to10+2^(i)nextend function'十六进制转换为二进制的asp代码function c16to2(x)i=0for i=1 to len(trim(x))tempstr= c10to2(cint(int("&h" & mid(x,i,1))))do while len(tempstr)<4tempstr="0" & tempstrloopc16to2=c16to2 & tempstrnextend functionfunction c10to2(x)mysign=sgn(x)x=abs(x)DigS=1doif x<2^DigS thenexit doelseDigS=DigS+1end iflooptempnum=xi=0for i=DigS to 1 step-1if tempnum>=2^(i-1) thentempnum=tempnum-2^(i-1)c10to2=c10to2 & "1"elsec10to2=c10to2 & "0"end ifnextif mysign=-1 then c10to2="-" & c10to2end function'UTF8编码文字将转换为汉字function ConvChinese(x)A=split(mid(x,2),"%")i=0j=0 for i=0 to ubound(A)A(i)=c16to2(A(i)) next for i=0 to ubound(A)-1DigS=instr(A(i),"0")Unicode=""for j=1 to DigS-1if j=1 thenA(i)=right(A(i),len(A(i))-DigS)Unicode=Unicode & A(i)elsei=i+1A(i)=right(A(i),len(A(i))-2)Unicode=Unicode & A(i)end ifnextif len(c2to16(Unicode))=4 thenConvChinese=ConvChinese & chrw(int("&H" & c2to16(Unicode)))elseConvChinese=ConvChinese & chr(int("&H" & c2to16(Unicode)))end if nextend function'GB2312中文转unicode(&#)的asp代码 将GB编码文字转换为unicode编码文字function chinese2unicode(Str) dim i dim Str_one dim Str_unicode if(isnull(Str)) thenexit function end if for i=1 to len(Str)Str_one=Mid(Str,i,1)Str_unicode=Str_unicode&chr(38)Str_unicode=Str_unicode&chr(35)Str_unicode=Str_unicode&chr(120)Str_unicode=Str_unicode& Hex(ascw(Str_one))Str_unicode=Str_unicode&chr(59) next chinese2unicode=Str_unicodeend function 'URL地址编码解码函数Function URLDecode(enStr)dim deStrdim c,i,vdeStr=""for i=1 to len(enStr) c=Mid(enStr,i,1) if c="%" thenv=eval("&h"+Mid(enStr,i+1,2))if v<128 thendeStr=deStr&chr(v)i=i+2elseif isvalidhex(mid(enstr,i,3)) thenif isvalidhex(mid(enstr,i+3,3)) thenv=eval("&h"+Mid(enStr,i+1,2)+Mid(enStr,i+4,2))deStr=deStr&chr(v)i=i+5elsev=eval("&h"+Mid(enStr,i+1,2)+cstr(hex(asc(Mid(enStr,i+3,1)))))deStr=deStr&chr(v)i=i+3end ifelsedestr=destr&cend ifend if elseif c="+" thendeStr=deStr&" "elsedeStr=deStr&cend if end ifnextURLDecode=deStrend function'判断是否为有效的十六进制代码function isvalidhex(str)dim cisvalidhex=truestr=ucase(str)if len(str)<>3 then isvalidhex=false:exit functionif left(str,1)<>"%" then isvalidhex=false:exit function c=mid(str,2,1)if not (((c>="0") and (c<="9")) or ((c>="A") and (c<="Z"))) then isvalidhex=false:exit function c=mid(str,3,1)if not (((c>="0") and (c<="9")) or ((c>="A") and (c<="Z"))) then isvalidhex=false:exit functionend functionFunction Post(url,data)dim Httpsset Https=server.createobject("MSXML2.XMLHTTP")Https.open "POST",url,falseHttps.setRequestHeader "Content-Type","application/x-www-form-urlencoded"Https.send dataif Https.readystate=4 thendim objstreamset objstream = Server.CreateObject("adodb.stream")objstream.Type = 1objstream.Mode =3objstream.Openobjstream.Write Https.responseBodyobjstream.Position = 0objstream.Type = 2objstream.Charset = "utf-8"Post = objstream.ReadTextobjstream.Closeset objstream = nothingset https=nothingend ifEnd Functiondim target,post_data,contenttarget = "?method=Submit"content = toUTF8("您的验证码是:4526。请不要把验证码泄露给其他人。")post_data = "account=用户名&password=密码&mobile=手机号码&content="&content'Response.write toUTF8("短信测试")response.Write(UTF2GB(Post(target,post_data)))''//请自己解析Post(target,post_data)返回的字符串并实现自己的逻辑%>自助申请帐户地址:

人,都有不能称心如意的时候,都有愿望落空的窘迫,

ASP通过http调用验证码短信接口源码

相关文章:

你感兴趣的文章:

标签云: