java-阿里云短信

推荐官方文档代码–>阿里云短信官方api.
坐标–>

		<dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>4.4.9</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
            <version>1.1.0</version>
        </dependency>

总体来讲 官方文档拿过来就能用,
但是如果对验证码有长度限制的话,
阿里云发送的验证码如果开头为0则会省略掉,对此作了以下操作

    /**
     * 为了防止短信验证码开头为0  做的处理
     * @param number 几位的验证码
     * @return
     */
 private String getSmsCode(int number) {
        String str = "0";
        while (str.startsWith("0")) {
            str = RandomStringUtils.randomNumeric(number);
        }
        return str;
    }

这样就可以保证验证码始终未6位,相对来讲改动较小

================================================

2020-07-23 17:53:51.920 ERROR 52239 --- [http-nio-8080-exec-34] c.f.c.api.service.SendSmsCodeService     : 【短信通知】短信通知失败 message=触发号码天级流控Permits:40,sendSmsResponse=com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse@72a2ff82
2020-07-23 17:57:51.628 ERROR 52239 --- [http-nio-8080-exec-54] c.f.c.api.service.SendSmsCodeService     : 【短信通知】短信通知失败 message=触发号码天级流控Permits:40,sendSmsResponse=com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse@39313210
2020-07-23 18:07:17.480 ERROR 52239 --- [http-nio-8080-exec-17] c.f.c.api.service.SendSmsCodeService     : 【短信通知】短信通知失败 message=触发号码天级流控Permits:40,sendSmsResponse=com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse@3f40f2a6
2020-07-23 18:07:22.805 ERROR 52239 --- [http-nio-8080-exec-25] c.f.c.a.e.GlobalExceptionHandler         : 认证异常信息:

原因分析:该错误码是指触发短信默认流控限制。
后来去阿里云一查 , 原来这是用户请求次数太频繁 阿里云短信防止恶意访问而做的限流
规则如下
在这里插入图片描述
接口根据规则调整相应提示即可 囧

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值