一、编写发送请求示例
注意点
0.接口本身只是一个http请求调用,没有语言的限制。签名机制是为了验证请求是否合法(安全?)。
1.编码格式得是UTF-8(之前运行php代码页面啥都没有,提工单后问询发现是因为编辑器的默认编码格式不是UTF-8);
2.必填参数在链接中都得有对应的参数符合和值(系统参数(以前叫做公共参数)和业务参数);
3.SignatureNonce为随机值,可随意写,但每次请求后建议更换;
4.用如下的代码仅为测验是否可以请求阿里云的短信接口,返回的结果Code为:SignatureDoesNotMatch时,即说明其他参数都OK了,只剩一个Signature参数不对。因为生成的签名机制字段的生成算法需要另外编写;
5.标准使用的时间为东八区时间,本人坐标上海,与东八区时差 8h,所以需要在当前系统时间的基础上减去 8h,分钟数要与网络时间相差范围在15分钟之内,才不会报时间戳不对的错。
简单的请求示例如下:
/*--------2017-05-25 版本请求示例------*/
method="POST" action='http://dysmsapi.aliyuncs.com/?Action=SendSms&RegionId=cn-hangzhou&SignName=XXX&TemplateCode=SMS_970XXXXX&PhoneNumbers=183XXXXXXXX&TemplateParam={"XXX":"123","XX","234"}&Format=XML&Version=2017-05-25&Signature=1&SignatureMethod=HMAC-SHA1&SignatureNonce=123456&SignatureVersion=1.0&AccessKeyId=LTAIXXXXXX&Timestamp=2017-09-28T12:28:15Z'
@@@返回的错误信息Code为:Specified parameter Version is not valid时,是因为参数的键值对中有不对的地方,建议对照参数表核查,或根据官网提供的示例运行后进行相应项的替换。(之前写过2016-02-23版本的,升级后2017-05-25版本的hostid变了,所以请求的地址从“sms.aliyuncs.com”变成了“dysmsapi.aliyuncs.com”)
二、阿里云短信接口升级
2017-06-22升级的2017-05-25版本将短信服务挪至消息服务内,原有的短信服务接口不变 ,早先的大于短信服务的接口不再使用。这也就意味着我升级前两个月刚用存储过程开发好的2016-09-25版的短信接口程序,需要重新进行开发。。。不过,幸好,此次升级主要是将一些请求的参数进行了规整和升级,基本的签名算法实现机制等都并未进行变动。因此只需要加上并替换一些参数就可以继续使用了。
三、签名机制
1、可参考使用阿里云短信官方提供的SDK;
2、网上搜罗的大神代码,生成签名的php语言demo可参考链接:http://www.jianshu.com/p/dc826b16100a
3、