博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp实现阿里大鱼短信API接口的方法
阅读量:7291 次
发布时间:2019-06-30

本文共 2205 字,大约阅读时间需要 7 分钟。

阿里大鱼是阿里推出的产品,官方提供JAVA、.NET、PHP等版本的SDK下载,不知为何,唯独不提供ASP版本的SDK。

不提供没关系,自己写就是了,参照官方提供的API写一个就是了。
本来以为无非是向阿里大鱼的接口POST或者GET数据而已,但真正做了发现没有那么简单,最难的是签名,签名分两步一个是拼接参数,一个是加密。
原理如下:md5(secret+按顺序拼接好的参数名与参数值+secret)
1.对数组进行排序然后拼接

''' 对数组排序' param sPara 排序前的数组' return 排序后的数组Function SortPara(sPara)    Dim nCount    nCount = ubound(sPara)    For i = nCount To 0 Step -1        minmax = sPara( 0 )        minmaxSlot = 0        For j = 1 To i            mark = (sPara( j ) > minmax)            If mark Then                minmax = sPara( j )                minmaxSlot = j            End If        Next        If minmaxSlot <> i Then            temp = sPara( minmaxSlot )            sPara( minmaxSlot ) = sPara( i )            sPara( i ) = temp        End If    Next    SortPara = sParaend function

 

''' 把数组所有元素,按照“参数参数值参数参数值……”的模式拼接成字符串' param sPara 需要拼接的数组' return 拼接完成以后的字符串Function CreateParamstring(sPara)    nCount = ubound(sPara)    Dim prestr    For i = 0 To nCount        prestr = prestr & sPara(i)    Next        CreateParamstring = replace(prestr,"=","")End Function

 

2.加密有两种:MD5和HMAC_MD5,我们使用MD5

''' MD5签名' param prestr 需要签名的字符串' param secret 私钥' param input_charset 编码格式' return 签名结果Function Md5Sign(prestr, secret, input_charset)    Dim mysign        '把拼接后的字符串再与安全校验码直接连接起来    prestr = secret & prestr & secret    mysign = MD5(prestr, input_charset)        Md5Sign = UCase(mysign)End Function3.将签名拼接到url中请求远程接口''' 建立请求,以模拟远程HTTP的GET请求方式构造并获取阿里大鱼纯文字类型处理结果' param sParaTemp 请求前的参数数组' return 阿里大鱼处理结果Public Function BuildRequestHttpWord(sParaTemp)    Dim sUrl, objHttp, sResponseTxt        '待请求参数数组字符串    sRequestData = BuildRequestParaToString(sParaTemp)    '构造请求地址    sUrl = GATEWAY_NEW & sRequestData        'response.Write(sRequestData)    'response.End()    '获取远程数据    Set objHttp=Server.CreateObject("Microsoft.XMLHTTP")    '如果Microsoft.XMLHTTP不行,那么请替换下面的两行行代码尝试    'Set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")    'objHttp.setOption 2, 13056    objHttp.open "GET", sUrl, False, "", ""    objHttp.send()    sResponseTxt = objHttp.ResponseText    Set objHttp = Nothing        BuildRequestHttpWord = sResponseTxtEnd Function

 

综上,就完成一次发送短信的操作。

转载于:https://www.cnblogs.com/yourber/p/5606837.html

你可能感兴趣的文章
Django 框架之前
查看>>
java的几种基本的排序算法
查看>>
Node js复习(1)----简单的Node服务器搭建
查看>>
[ZJOI2011]细胞——斐波那契数列+矩阵加速+dp
查看>>
「PKUWC2018」Slay the Spire
查看>>
658. Find K Closest Elements
查看>>
强引用、软引用、弱引用、虚引用有什么区别
查看>>
Go语言入门
查看>>
linux 删除文件名带括号的文件
查看>>
laravel 图片裁剪
查看>>
laravel 观察器 模型绑定 方法的关系
查看>>
Android错误之New package not yet registered with the system
查看>>
canvas-6shadow.html
查看>>
云计算与虚拟化
查看>>
【编程之美】中国象棋将帅问题
查看>>
【C++】const成员函数
查看>>
X-Code插件库
查看>>
python爬虫——对爬到的数据进行清洗的一些姿势(5)
查看>>
[BZOJ2226]LCMSum
查看>>
Django 调用报错 " ImportError: Couldn't import Django. "
查看>>