ASP
ASP代碼示例
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <% '接口類型:達(dá)信通觸發(fā)短信接口,支持發(fā)送驗(yàn)證碼短信、訂單通知短信等。 '賬戶注冊:請通過該地址開通賬戶http://sms.wx96.com/register.html '注意事項(xiàng): '(1)調(diào)試期間,請用默認(rèn)的模板進(jìn)行測試,默認(rèn)模板詳見接口文檔; '(2)請使用 用戶名(例如:cf_demo123) 及 APIkey來調(diào)用接口,APIkey在會(huì)員中心可以獲取; '(3)該代碼僅供接入達(dá)信通短信接口參考使用,客戶可根據(jù)實(shí)際需要自行編寫; Response.Charset = "gb2312" 'asp UTF轉(zhuǎn)GB2312 將UTF8編碼文字轉(zhuǎn)換為GB編碼文字的asp代碼 function UTF2GB(UTFStr) for Dig=1 to len(UTFStr) '如果UTF8編碼文字以%開頭則進(jìn)行轉(zhuǎn)換 if mid(UTFStr,Dig,1)="%" then 'UTF8編碼文字大于8則轉(zhuǎn)換為漢字 if len(UTFStr) >= Dig+8 then GBStr=GBStr & ConvChinese(mid(UTFStr,Dig,9)) Dig=Dig+8 else GBStr=GBStr & mid(UTFStr,Dig,1) end if else GBStr=GBStr & mid(UTFStr,Dig,1) end if next UTF2GB=GBStr end function 'GB2312轉(zhuǎn)UTF8的asp代碼 將GB編碼文字轉(zhuǎn)換為UTF8編碼文字 Function toUTF8(szInput) Dim wch, uch, szRet Dim x Dim nAsc, nAsc2, nAsc3 '如果輸入?yún)?shù)為空,則退出函數(shù) If szInput = "" Then toUTF8 = szInput Exit Function End If '開始轉(zhuǎn)換 For x = 1 To Len(szInput) '利用mid函數(shù)分拆GB編碼文字 wch = Mid(szInput, x, 1) '利用ascW函數(shù)返回每一個(gè)GB編碼文字的Unicode字符代碼 '注:asc函數(shù)返回的是ANSI 字符代碼,注意區(qū)別 nAsc = AscW(wch) If nAsc < 0 Then nAsc = nAsc + 65536 If (nAsc And &HFF80) = 0 Then szRet = szRet & wch Else If (nAsc And &HF000) = 0 Then uch = "%" & Hex(((nAsc \ 2 ^ 6)) Or &HC0) & Hex(nAsc And &H3F Or &H80) szRet = szRet & uch Else 'GB編碼文字的Unicode字符代碼在0800 - FFFF之間采用三字節(jié)模版 uch = "%" & Hex((nAsc \ 2 ^ 12) Or &HE0) & "%" & _ Hex((nAsc \ 2 ^ 6) And &H3F Or &H80) & "%" & _ Hex(nAsc And &H3F Or &H80) szRet = szRet & uch End If End If Next toUTF8 = szRet End Function '二進(jìn)制轉(zhuǎn)換為十六進(jìn)制的asp代碼 function c2to16(x) i=1 for i=1 to len(x) step 4 c2to16=c2to16 & hex(c2to10(mid(x,i,4))) next end function '二進(jìn)制轉(zhuǎn)換為十進(jìn)制的asp代碼 function c2to10(x) c2to10=0 if x="0" then exit function i=0 for i= 0 to len(x) -1 if mid(x,len(x)-i,1)="1" then c2to10=c2to10+2^(i) next end function '十六進(jìn)制轉(zhuǎn)換為二進(jìn)制的asp代碼 function c16to2(x) i=0 for i=1 to len(trim(x)) tempstr= c10to2(cint(int("&h" & mid(x,i,1)))) do while len(tempstr)<4 tempstr="0" & tempstr loop c16to2=c16to2 & tempstr next end function function c10to2(x) mysign=sgn(x) x=abs(x) DigS=1 do if x<2^DigS then exit do else DigS=DigS+1 end if loop tempnum=x i=0 for i=DigS to 1 step-1 if tempnum>=2^(i-1) then tempnum=tempnum-2^(i-1) c10to2=c10to2 & "1" else c10to2=c10to2 & "0" end if next if mysign=-1 then c10to2="-" & c10to2 end function 'UTF8編碼文字將轉(zhuǎn)換為漢字 function ConvChinese(x) A=split(mid(x,2),"%") i=0 j=0 for i=0 to ubound(A) A(i)=c16to2(A(i)) next for i=0 to ubound(A)-1 DigS=instr(A(i),"0") Unicode="" for j=1 to DigS-1 if j=1 then A(i)=right(A(i),len(A(i))-DigS) Unicode=Unicode & A(i) else i=i+1 A(i)=right(A(i),len(A(i))-2) Unicode=Unicode & A(i) end if next if len(c2to16(Unicode))=4 then ConvChinese=ConvChinese & chrw(int("&H" & c2to16(Unicode))) else ConvChinese=ConvChinese & chr(int("&H" & c2to16(Unicode))) end if next end function 'GB2312中文轉(zhuǎn)unicode()的asp代碼 將GB編碼文字轉(zhuǎn)換為unicode編碼文字 function chinese2unicode(Str) dim i dim Str_one dim Str_unicode if(isnull(Str)) then exit 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_unicode end function 'URL地址編碼解碼函數(shù) Function URLDecode(enStr) dim deStr dim c,i,v deStr="" for i=1 to len(enStr) c=Mid(enStr,i,1) if c="%" then v=eval("&h"+Mid(enStr,i+1,2)) if v<128 then deStr=deStr&chr(v) i=i+2 else if isvalidhex(mid(enstr,i,3)) then if isvalidhex(mid(enstr,i+3,3)) then v=eval("&h"+Mid(enStr,i+1,2)+Mid(enStr,i+4,2)) deStr=deStr&chr(v) i=i+5 else v=eval("&h"+Mid(enStr,i+1,2)+cstr(hex(asc(Mid(enStr,i+3,1))))) deStr=deStr&chr(v) i=i+3 end if else destr=destr&c end if end if else if c="+" then deStr=deStr&" " else deStr=deStr&c end if end if next URLDecode=deStr end function '判斷是否為有效的十六進(jìn)制代碼 function isvalidhex(str) dim c isvalidhex=true str=ucase(str) if len(str)<>3 then isvalidhex=false:exit function if 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 function end function '請求數(shù)據(jù)到短信接口 Function Post(url,data) dim Https set Https=server.createobject("MSXML2.XMLHTTP") Https.open "POST",url,false Https.setRequestHeader "Content-Type","application/x-www-form-urlencoded" Https.send data if Https.readystate=4 then dim objstream set objstream = Server.CreateObject("adodb.stream") objstream.Type = 1 objstream.Mode =3 objstream.Open objstream.Write Https.responseBody objstream.Position = 0 objstream.Type = 2 objstream.Charset = "utf-8" Post = objstream.ReadText objstream.Close set objstream = nothing set https=nothing end if End Function '函數(shù)返回隨機(jī)整數(shù)。 Function gen_key(digits) 'Create and define array dim char_array(50) char_array(0) = "0" char_array(1) = "1" char_array(2) = "2" char_array(3) = "3" char_array(4) = "4" char_array(5) = "5" char_array(6) = "6" char_array(7) = "7" char_array(8) = "8" char_array(9) = "9" 'Initiate randomize method for default seeding randomize 'Loop through and create the output based on the the variable passed to 'the function for the length of the key. do while len(output) < digits num = char_array(Int((9 - 0 + 1) * Rnd + 0)) output = output + num loop 'Set return gen_key = output End Function Dim mobile mobile = request("mobile") '登錄用戶名 if mobile="" then response.Write("手機(jī)號(hào)碼不能為空") else if request.Form("send_code") = "" or Session("send_code")<>request.Form("send_code") then '防用戶惡意請求 response.Write("請求超時(shí),請刷新頁面后重試") else dim target,post_data,content,res,mobile_code mobile_code = gen_key(4) Session("mobile_code") = mobile_code 'Response.Cookies("mobile_code") = mobile_code Session("mobile") = mobile 'Response.Cookies("mobile") = mobile target = "http://106.wx96.com/webservice/sms.php?method=Submit" content = toUTF8("您的驗(yàn)證碼是:"&mobile_code&"。請不要把驗(yàn)證碼泄露給其他人。") post_data = "account=用戶名&password=密碼&mobile="&mobile&"&content="&content '用戶名是登錄wx96.com賬號(hào)名(例如:cf_demo123) '查看密碼請登錄用戶中心->驗(yàn)證碼、通知短信->帳戶及簽名設(shè)置->APIKEY 'Response.write toUTF8("短信測試") 'response.Write(UTF2GB(Post(target,post_data))) tempstr = UTF2GB(Post(target,post_data)) 'if instr(tempstr,"提交成功")>0 Then 'response.Write("true") 'else 'response.Write("error") 'end if Dim len1,len2 len1 = instr(1,tempstr,"/code>",1)-1 len2 = instr(1,tempstr,"code>",1) 'response.Write(len2) code=left(tempstr,len1) code=right(code,(len1-len2-5)) 'response.Write(code) Dim len3,len4 len3 = instr(1,tempstr,"/msg>",1)-1 len4 = instr(1,tempstr,"msg>",1) 'response.Write(len2) msg=left(tempstr,len3) msg=right(msg,(len3-len4-4)) response.Write(msg) end if end If %>