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
综上,就完成一次发送短信的操作。
asp实现阿里大鱼短信API接口的方法的更多相关文章
- PHP控制阿里云短信API接口实现短信群发功能
阿里云短信支持先使用后支付的原则,价格为4分半1条. 通过SDK可以与网站功能的绑定,实现响应的短信发送功能 现已统一合并升级为:消息服务. 消息服务 阿里云消息服务(Message Service, ...
- 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo
Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...
- 阿里大鱼短信接口整合Tp3.2.3开发整理
阿里大鱼 http://www.alidayu.com/ 的短信接口总体是不错的,别安驹个人认为不管是从性价比还是稳定性上都是跟同类的短信接口好些,毕竟是大公司的东西不会差到哪去.下面把之前开发的短信 ...
- 功能:使用QQ号登陆,并加上微信和短信提醒,是否增量备份可选,阿里大鱼短信发送开发与测试,聚合数据(用JSON发短信,比较清楚)
微博就可以,所以其它软件也可以http://desktop.weibo.com/ http://blog.csdn.net/jueblog/article/details/14497181http:/ ...
- ThinkPHP3.2.3框架下接入阿里云短信服务接口实现:注册登录
首先介绍下短信注册登录流程: 注册页面点击获取手机号验证码按钮,用jquery的click事件POST或GET方法把手机号发送到后台控制器: 后台控制器创建函数,收到手机号后生成随机码,例如:6位的随 ...
- SpringBoot、ActiveMQ整合阿里大鱼-----短信服务
3.短信微服务 3.1需求分析 构建一个通用的短信发送服务(独立于优乐选的单独工程),接收activeMQ的消息(MAP类型) 消息包括手机号(mobile).短信模板号(template_code ...
- PHP阿里大鱼短信验证
PHP阿里大鱼短信验证 第一步 登陆阿里大于注册账号,在用户管理中心创建应用,确定AppKEY和App Secret还有配置签名 第二步 在应用管理中选择SDK下载,或者直接点击http://down ...
- 如何防止短信API接口遍历
短信API接口在web中得到越来越多的应用,如用户注册,登录,密码重置等业务模块都会使用手机验证码进行身份验证.一般情况下,我们会采用这样的安全策略,将短信发送频率限制在正常的业务流控范围内,比如,一 ...
- ASP版_阿里大于短信API Demo
阿里大于申请地址:http://www.alidayu.com 阿里大于短信发送Demo: ******index.asp************* <%@LANGUAGE="VBSC ...
随机推荐
- Shoot the Bullet ZOJ - 3229有上下界网络流
Code: #include<cstdio> #include<algorithm> #include<vector> #include<queue> ...
- 【udacity】机器学习
Evernote Export 2.人工智能简介 机器学习源自于人工智能,在此方向上,该领域有分为不同学派,机器学习主要关注的是制造能够自主动作的机器 3.人工智能难题 1.所有智能体都只有很少的计算 ...
- Python笔记21-------浅复制和深复制、赋值
上面图表示浅复制和深复制,针对顶层对象来说,赋值为引用,浅复制和深复制都是复制一个新的对象. 针对子对象来说,浅复制为引用.深复制就是复制两个一样的. 1.赋值 A= [ 1,2,3, [ 'a',' ...
- input标签处理多文件上传
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name ...
- Hadoop分布环境搭建步骤,及自带MapReduce单词计数程序实现
Hadoop分布环境搭建步骤: 1.软硬件环境 CentOS 7.2 64 位 JDK- 1.8 Hadoo p- 2.7.4 2.安装SSH sudo yum install openssh-cli ...
- ROPI下载安装
ROPI下载安装 官方地址 参考文献 安装过程 wget http://num.math.uni-goettingen.de/~m.goerigk/ropi/0.1.0/ropi-0.1.0.tar. ...
- 【UOJ#50】【UR #3】链式反应(分治FFT,动态规划)
[UOJ#50][UR #3]链式反应(分治FFT,动态规划) 题面 UOJ 题解 首先把题目意思捋一捋,大概就是有\(n\)个节点的一棵树,父亲的编号大于儿子. 满足一个点的儿子有\(2+c\)个, ...
- VS2015 C#取消最大化按钮,设置鼠标不可调整窗体大小
取消最大化按钮设置 设置窗体不可被鼠标调整大小
- FreeMarker 语法 访问 pojo 的属性
一.java 代码 @Test public void testFreeMarker() throws Exception { //1.创建一个模板文件 //2.创建一个Configuration对象 ...
- JSON 基础学习1
http://www.360doc.com/content/10/0809/22/2633_44873063.shtml JSON转字符串: json.stringify(jsonobj); 字符串转 ...