阿里大鱼的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里大鱼的使用相关的知识,希望对你有一定的参考价值。

  使用阿里大鱼的短信验证码总结

 自己做的是app直接调用阿里大鱼的短信验证码  然后和本地存储的随机六位数对比,下面说下步骤: 

  1.首先呢,先进入阿里大鱼的开放平台 http://open.taobao.com/doc2/apiDetail?spm=0.0.0.0.D1PYJd&apiId=25450

  2.然后能看到  文档中心  让我们传递的一些参数(公共参数和请求参数) 有些是必传的 在此我列出 我自己传递的一些参数

                    技术分享

 首先我们看到的是第一个参数

appkey这个是注册就有的  

format是固定传json的  

method也是固定传 alibaba.aliqin.fc.sms.num.send   

rec_num 也就是接收的手机号码

sign这个放最后面说  这个就是  签名之后的

sign_method  这个看你签名的方式  这里我使用的是md5

sms_free_sign_name  这个参数是你在平台申请的  模板名称

sms_param  这个是你平台申请的  模板格式 其中  name是个可变的参数占位

sms_template_code  这个就是平台申请的模板id了

sms_type 是固定传 normal 的

还有2个参数

一个是timestamp  另一个是   v

v是固定传 2.0

timestamp是按照阿里大鱼的时间格式来传递当前的时间

我这边的参数和参数值都进行了  utf-8进行URL编码

在此 我列出编码方法  这个方法找了好久

+(NSString *)urlFormString:(NSString *)string{

    NSString * encodedString = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(

                                                                                   kCFAllocatorDefault,

                                                                                   (CFStringRef)string,

                                                                                   NULL,

                                                                                   (CFStringRef)@":/?#[]@!$ &‘()*+,;=<>%{}|^~`",

                                                                                   CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding) ));

    

 

    return encodedString;

}

这里面我对一些特殊的字符进行了转码  不然后台识别不了比如   :号  

既然说到编码了  那么就说说怎么被坑的吧   我使用的网络请求方式是AFNetworking   由于大鱼要求的时间格式传递是一个固定的格式yyyy-MM-dd HH:mm:ss

可以看到  这个时间格式中间是有空格的    

空格在ios端编码后  会成为%20  但是java或者php后台接收的 空格格式是 +  所以我在此我特地用了  +  来代替%20

    NSString *hexStr=[HextransformString urlFormString:dateTime];

    NSString *replacStr=[hexStr stringByReplacingOccurrencesOfString:@"%20" withString:@"+"];

此时我就开始用AF的post来传递了字典类型的了 

但是当时没发现  AF底层对参数和参数值又进行了一次编码   此时 +  变成了  %2B   

所以在这里我就没有字典类型传递了  直接使用的是 url拼接的形式进行的传递(时间比较赶  也就没想太多)

好了  下面就说下签名  签名我是用javasdk比对的

说下步骤:

1.人工按照 ASCII码排序  也就是首先比对第一个字母前后  第一个一样  再比对 第二个以此类推

2.把所有的参数和参数值拼接好后 的字符串进行MD5加密

3.然后把所有的大写字母转化为小写字母

总结就是一步:

NSString *md5Str=[[str md5String] uppercaseString];

str就是人工按照  ASCII码排序的一个字符串

今天就写到这里  如果有什么不准确的还望大家指点一二 谢谢  

 

以上是关于阿里大鱼的使用的主要内容,如果未能解决你的问题,请参考以下文章

短信通道——阿里大鱼(java)

yii2 使用阿里大鱼短信

思梦PHP-阿里大鱼手机验证码

思梦PHP-阿里大鱼手机验证码

阿里大鱼短信接口整合Tp3.2.3开发整理

阿里大鱼短信发送接口开发