阿里云短信业务开通

前言:现在短信验证码注册已经变得非常普遍,我在自己写项目的时候,有时候也会想能不能加个短信注册的功能呢?这技术多牛叉啊,后来就去网上找资料学习了一下,第一次实现短信验证码功能还是非常有成就感的,下面简单分享一下如何开通短信验证码业务,也算自己逐步写博客的一次次记录。

首先,需要注册阿里云并实名认证,认证后点击一个人头像,即可进入账号中心,然后将鼠标移至右上角头像框处,即可出现菜单栏,然后点击AccessKey管理,进入到RAM访问控制。

 进入的时候我们选择开始使用子用户AccessKey

 

然后点击身份管理,在其下拉菜单中选择用户组,根据要求创建一个用户组即可,用户组创建好之后,点击右边的权限管理

然后在弹出的页面中搜索sms,找到管理短信服务,点击选择后点确定即可。

然后点击用户,创建一个用户,创建用户一定要勾选上API调用访问,因为我们后面需要写代码调用SDK发送验证码。

 用户创建好之后,一定要记住当前的AccessKey IDAccessKey Secret,这个在后面调用SDK必须要的,可以复制一下,这个很重要,不要让其他人知道,不然别人可以调用你的短信业务,那么就是用你的账户里面的钱。

然后返回,将该用户添加至我们刚刚创建的用户组中

我们点击刚刚创建的用户,就可以进入到该用户的详情页,可以看到自己刚才创建的AccessID,我·们还可以点击权限管理,看到当前用户的权限详情,因为我们没有给该用户添加权限,只有继承用户组的权限,点击即可查看刚刚我们给用户组添加的短信权限。

到这,我们这边就配置差不多了,就去阿里云主页,搜索短信服务,点击进入,免费开通,

 

这就是短信服务的主界面,我们点击快速学习,快速学习有这四部分,下面我们逐个解释。

 第一个是签名,签名就是验证码前面的公司名,我们只需要写上公司名即可,不需要加【】,这个不支持个人用户申请,所以我直接跳过

第二个就是模板,就例如我们平时收到的验证码,有效五分钟,请勿泄露等等,都是在模板里面进行填写,这里我们也能看到短信验证码的收费标准吗,我们可以点开短信计费规则进行查看,右边手机红框子里可以看到我们写的模板的样式。还有就是注意变量需要用${code}写法,code就是我们生成所发送的验证码,下面都有格式样式的,可以参考。

 另外两个简单看一下就可以了。

下面我们讲如何通过API发送短信

我们在快速学习页面的下方,可以看到如下界面,点击调用API发送短信,即可进入到官方给定的demo

将鼠标移至SDK以来信息,在弹出框中复制以来,添加到springboot的pom依赖中

 然后在项目中写个Controller,还有service层处理相关业务即可,下面直接粘贴代码。

import com.admin.service.ComUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
@CrossOrigin
public class UsergetsmsController {

    @Autowired
    private ComUserService comUserService;

    @RequestMapping("/getsms")
    public boolean usergetsms( @RequestParam("telnumber") String telnumber) throws Exception {
        return comUserService.smtSentsms(telnumber);
    }
}

 因为是我整合到我的目前的这个项目中,在ComUserService中有我写的具体方法,方法如下

 @Override
    public boolean smtSentsms(String telnumber) throws Exception {

   /*     java.util.List<String> args = java.util.Arrays.asList(args_);*/
        com.aliyun.dysmsapi20170525.Client client = createClient("你的AccessKey ID" ,"你的AccessKey Secret");
        double codes=Math.random();     ///生成随机数
        while (codes*10<1)    
            codes*=10;///     确保生成的小数是0.x的

        String code="{\""+"code"+"\""+":\""+(int)(codes*1000000)+"\"}";    ///字符串拼接,官方要求的格式是{"code":"xxxx"},要求为4-6位的数字
        System.out.println(code);
        com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest =
                new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
                .setSignName("阿里云短信测试")   /这里也是官方给定的测试专用的签名
                .setTemplateCode("SMS_154950909")    /因为这是用的官方的测试,所以这里只能填官方的给出的模板代码(TemplateCode)
                .setPhoneNumbers(telnumber)     传进来的电话号码参数
                .setTemplateParam(code);   ///上面拼接而成的字符串
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        try {
            // 复制代码运行请自行打印 API 的返回值

            System.out.println(client.sendSmsWithOptions(sendSmsRequest, runtime));

        } catch (TeaException error) {
            // 如有需要,请打印 error
            com.aliyun.teautil.Common.assertAsString(error.message);
            System.out.println(error.message+"1");
        } catch (Exception _error) {
            TeaException error = new TeaException(_error.getMessage(), _error);
            // 如有需要,请打印 error
            System.out.println(error.message+"2");
            com.aliyun.teautil.Common.assertAsString(error.message);
        }

        return false;
    }

    public static com.aliyun.dysmsapi20170525.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                // 您的 AccessKey ID
                .setAccessKeyId(accessKeyId)
                // 您的 AccessKey Secret
                .setAccessKeySecret(accessKeySecret);
        // 访问的域名
        config.endpoint = "dysmsapi.aliyuncs.com";
        return new com.aliyun.dysmsapi20170525.Client(config);
    }

这是官方给出的测试专用的签名以及模板,在上诉的填写中需要用到

还有一个需要注意的点就是,因为我们是测试模板,所以必须添加测试手机号,然后才能给测试号码发送验证码。

 最后,我们运行我们的服务器,测试请求一下,就可以成功啦

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值