• 阿里大于发送短信(java)


    一、短信签名设置

      1、短信签名是什么?

      签名是在短信内容开始或者末尾跟的品牌或者应用名称,设置签名有一下几个好处:增加品牌的曝光度,增强用户的记忆让用户能更清楚的知道正在使用的应用。

      2、签名可不可以不设置?

      如果您不设置签名,您通过接口发送的短信将很可能会进入短信审核流程(注:进入该流程需要短信发送平台的客服人工审核,将会影响短信的发送和到达时间)或者可能直接被网关驳回,所以,为了您平台用户使用短信的稳定性,设置短信签名是十分必要的。

      3、短信签名怎么设置?

      一般签名设置为您的品牌名、应用名、公司名等有代表性的信息,三到八个字即可。如【信信客】、【淘宝网】。

    二、短信模板设置

      1、什么是短信模板?

      短信模板是对您将要发送的短信进行相似性提取后的内容。举个例子:

      A用户在您平台注册会员,需要发送一条短信,内容如下:

      您好,您的验证码是:111111

      同时,B用户也在您的平台注册会员,发送了如下短信:

      您好,您的验证码是:222222

      我们提取相似度以后,可以制作以下短信模板:

      您好,您的验证码是:${code}

      其中,${code}这种使用大括号包围起来的形式,我们称之为变量。您可以按照所在场景定义变量。

      短信模板中的变量可以是数字,英文或汉字等

      1.实例一:需要传递变量值:${code}=“123456”

      

      2.实例二:需要传递变量值:${nanme}=“李先生”,${order}=“20160506168”,${amount}=“588”。

      

      2、为什么要设置短信模板?

      如果不设置短信模板,通过接口发送的短信将很可能会进入短信审核流程(注:进入该流程需要短信发送平台的客服人工审核,将会影响短信的发送和到达时间),或者直接被网关驳回,所以,为了您平台用户使用短信的稳定性,设置模板也是十分必要的。

    三、如果不设置短信签名和模板,可以不可以发送短信?

      可以发送,但是该短信将会进入人工审核流程,可能会影响您的短信到达时间。所以,我们强烈建议您报备短信签名和模板。

    四:关于开发

         官方代码样例:

    TaobaoClient client = new DefaultTaobaoClient(url, appkey, secret);
    AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest();
    req.setExtend( "" );
    req.setSmsType( "normal" );
    req.setSmsFreeSignName( "" );
    req.setSmsParamString( "" );
    req.setRecNum( "13000000000" );
    req.setSmsTemplateCode( "" );
    AlibabaAliqinFcSmsNumSendResponse rsp = client.execute(req);
    System.out.println(rsp.getBody());

      项目实际代码:

    //service中发送验证码的逻辑

    @Override
    public Map<String, String> sendSMSMsg(String phone, String msg) throws ApiException { Map<String, String> map = new HashMap<String, String>();
    //开发过程中,设置不发送短信
    if (!StringUtils.equals("1", smsSettings.getOpen())) { map.put("resultCode", "0"); map.put("smsPhone", phone + ""); map.put("smsTime", (new Date()).getTime() + ""); map.put("smsCode", "1234"); return map; } TaobaoClient client = new DefaultTaobaoClient(smsSettings.getUrl(), smsSettings.getAppkey(), smsSettings.getSecret()); AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest(); Random rnd = new Random(); int code = rnd.nextInt(8999) + 1000;(0到9999四位数验证码) req.setSmsType(smsSettings.getType()); req.setSmsFreeSignName(smsSettings.getSignName()); req.setSmsParamString("{"code":"" + code + "","product":"" + "" + ""}");//套用模板 req.setRecNum(phone); req.setSmsTemplateCode(smsSettings.getTplCode()); AlibabaAliqinFcSmsNumSendResponse response = client.execute(req); logger.info("sendMsm,body: {}", response.getBody()); if (response.getBody().contains("error_response")) {// true map.put("resultCode", "1"); map.put("resultMsg", "短信发送次数超出限制,请稍后再试。");// 对同一个手机号可发送1条/分钟,7条/小时,50条/天 } else if (response.getResult().getSuccess()) { map.put("resultCode", "0"); map.put("smsPhone", phone + ""); map.put("smsTime", (new Date()).getTime() + ""); map.put("smsCode", code + ""); } return map; }
  • 相关阅读:
    SpringBoot-基于Maven工程使用SpringBoot
    Nginx的Mainline version、Stable version、Legacy version的版本区别
    Keepalived+Nginx实现负载均衡高可用
    Angular5学习笔记
    Angular5学习笔记
    Angular5学习笔记
    Angular5学习笔记
    Angular5学习笔记
    Kettle能做什么?
    Angular5学习笔记
  • 原文地址:https://www.cnblogs.com/mr-wuxiansheng/p/6891795.html
Copyright © 2020-2023  润新知