美文网首页Java 杂谈阿里云
使用阿里云短信服务发送短信

使用阿里云短信服务发送短信

作者: 8033b4d1f3ec | 来源:发表于2018-08-02 21:51 被阅读8次

    如今互联网流量都在向手机App应用倾斜,但是邮件和短信营销依然是必不可少的。流量永远都是稀缺的,任何一家商业公司,你会发现他们永远都在抢夺流量。可口可乐足够知名了吧,但是依然缺少流量,因为人口在更替,下一代并不一定了解你的品牌。

    短信经常用到的场景主要有以下几类,第一类是验证码,包括注册,登陆验证码等。第二类则是短信通知,例如订单发货通知,取货通知等。第三类则是推广短信,比如促销短信,优惠券短信等。

    阿里云短信服务有哪些优势呢?对比下来最大的优点是价格便宜,软件类型的服务,如果掌握了先发优势,那么价格绝对是有竞争优势的,因为系统研发出来后,成本是成倍下降的。例如windows操作系统,第一份系统完成后,剩余的都是copy的工作。

    目前阿里云短信计费方式采用的是短信套餐包的方式,每一条的价格大约是4分。5000条是225元,时间是24个月,50000条是2000元,时间同样是24个月,可以购买多份。

    屏幕快照 2018-08-02 21.09.11.png

    使用阿里云短信需要开通短信服务,进入页面后,点击”免费开通“按照提示进行操作就行了。开通完成后,进入到购买页面进行购买就可以了。

    购买完成之后,就是发送的步骤了。目前阿里云支持3类短信,分别是:验证码,短信通知,推广短信。其中推广短信需要企业认证才能发送,个人是无法发送的,因为监管越来越严格了。最近又增加了一项监管就是禁止发送金融类相关的短信,大家都懂的,所以大家千万要遵守这些规定,不然会面临封号的风险。

    屏幕快照 2018-08-02 21.22.59.png

    发送方式有两种,第一种是通过“任务管理”中的发送工具,这个服务只有升级企业之后才能使用。这种方式的好处是不用写代码,直接倒入数据,就能发送,适合不会写代码的人员。收费方式稍贵,单价为5分多一条,并且是按照阶梯收费的。

    WechatIMG237.png

    短信发送主要给大家介绍的是第二种,利用sdk发送。这里就以Java为例说明如何发送。阿里云已经帮我们又做了一层二次封装,可以直接用jdk的方法直接发送,直接引入maven的jar包即可。

    在发送之前,需要创建一个AccessKey作为key。发送代码非常简单,代码如下:

    //设置超时时间-可自行调整
    System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
    System.setProperty("sun.net.client.defaultReadTimeout", "10000");
    //初始化ascClient需要的几个参数
    final String product = "Dysmsapi";//短信API产品名称(短信产品名固定,无需修改)
    final String domain = "dysmsapi.aliyuncs.com";//短信API产品域名(接口地址固定,无需修改)
    //替换成你的AK
    final String accessKeyId = "yourAccessKeyId";//你的accessKeyId,参考本文档步骤2
    final String accessKeySecret = "yourAccessKeySecret";//你的accessKeySecret,参考本文档步骤2
    //初始化ascClient,暂时不支持多region(请勿修改)
    IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId,
    accessKeySecret);
    DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
    IAcsClient acsClient = new DefaultAcsClient(profile);
     //组装请求对象
     SendSmsRequest request = new SendSmsRequest();
     //使用post提交
     request.setMethod(MethodType.POST);
     //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式;发送国际/港澳台消息时,接收号码格式为00+国际区号+号码,如“0085200000000”
     request.setPhoneNumbers("1500000000");
     //必填:短信签名-可在短信控制台中找到
     request.setSignName("云通信");
     //必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版
     request.setTemplateCode("SMS_1000000");
     //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
     //友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败
     request.setTemplateParam("{\"name\":\"Tom\", \"code\":\"123\"}");
     //可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)
     //request.setSmsUpExtendCode("90997");
     //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
     request.setOutId("yourOutId");
    //请求失败这里会抛ClientException异常
    SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
    if(sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {
    //请求成功
    }
    

    以上步骤就完成了整个短信发送的过程,阿里云的到达率高达99%,历经双十一的考验,3网合一的专属通道。此外阿里云后台还有可视化的数据统计功能,可以统计发送数量和失败率。

    屏幕快照 2018-08-02 21.43.25.png

    阿里云短信服务也可以通过代金券享受优惠,有需要的同学可以领取后再进行购买

    相关文章

      网友评论

        本文标题:使用阿里云短信服务发送短信

        本文链接:https://www.haomeiwen.com/subject/dwqevftx.html