• asp实现阿里大鱼短信API接口的方法


    阿里大鱼是阿里推出的产品,官方提供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 = sPara
    end 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 Function
    
    3.将签名拼接到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 = sResponseTxt
    End Function
    

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

  • 相关阅读:
    Ionic2开发环境搭建
    关于在浏览器中测试cordova plugin的注意事项。
    像azure一样桌面显示Windows系统信息
    吐槽下微软
    Hyper-v UBUNTU 12.04 模板设置
    MongoDB整库备份与还原以及单个collection备份、恢复方法
    nginx 配置
    vsftpd配置文件详解
    分享几个免费IP地址查询接口(API)
    黑客帝国效果
  • 原文地址:https://www.cnblogs.com/yourber/p/5606837.html
Copyright © 2020-2023  润新知