当前位置:   article > 正文

阿里云短信业务开通_public static com.aliyun.dysmsapi20170525.client c

public static com.aliyun.dysmsapi20170525.client createclient(string accessk

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

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

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

 

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

  1. import com.admin.service.ComUserService;
  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import org.springframework.web.bind.annotation.CrossOrigin;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. import org.springframework.web.bind.annotation.RequestParam;
  6. import org.springframework.web.bind.annotation.RestController;
  7. @RestController
  8. @CrossOrigin
  9. public class UsergetsmsController {
  10. @Autowired
  11. private ComUserService comUserService;
  12. @RequestMapping("/getsms")
  13. public boolean usergetsms( @RequestParam("telnumber") String telnumber) throws Exception {
  14. return comUserService.smtSentsms(telnumber);
  15. }
  16. }

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

  1. @Override
  2. public boolean smtSentsms(String telnumber) throws Exception {
  3. /* java.util.List<String> args = java.util.Arrays.asList(args_);*/
  4. com.aliyun.dysmsapi20170525.Client client = createClient("你的AccessKey ID" ,"你的AccessKey Secret");
  5. double codes=Math.random(); ///生成随机数
  6. while (codes*10<1)
  7. codes*=10;/// 确保生成的小数是0.x的
  8. String code="{\""+"code"+"\""+":\""+(int)(codes*1000000)+"\"}"; ///字符串拼接,官方要求的格式是{"code":"xxxx"},要求为4-6位的数字
  9. System.out.println(code);
  10. com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest =
  11. new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
  12. .setSignName("阿里云短信测试") /这里也是官方给定的测试专用的签名
  13. .setTemplateCode("SMS_154950909") /因为这是用的官方的测试,所以这里只能填官方的给出的模板代码(TemplateCode)
  14. .setPhoneNumbers(telnumber) 传进来的电话号码参数
  15. .setTemplateParam(code); ///上面拼接而成的字符串
  16. com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
  17. try {
  18. // 复制代码运行请自行打印 API 的返回值
  19. System.out.println(client.sendSmsWithOptions(sendSmsRequest, runtime));
  20. } catch (TeaException error) {
  21. // 如有需要,请打印 error
  22. com.aliyun.teautil.Common.assertAsString(error.message);
  23. System.out.println(error.message+"1");
  24. } catch (Exception _error) {
  25. TeaException error = new TeaException(_error.getMessage(), _error);
  26. // 如有需要,请打印 error
  27. System.out.println(error.message+"2");
  28. com.aliyun.teautil.Common.assertAsString(error.message);
  29. }
  30. return false;
  31. }
  32. public static com.aliyun.dysmsapi20170525.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
  33. com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
  34. // 您的 AccessKey ID
  35. .setAccessKeyId(accessKeyId)
  36. // 您的 AccessKey Secret
  37. .setAccessKeySecret(accessKeySecret);
  38. // 访问的域名
  39. config.endpoint = "dysmsapi.aliyuncs.com";
  40. return new com.aliyun.dysmsapi20170525.Client(config);
  41. }

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/70255?site
推荐阅读
相关标签
  

闽ICP备14008679号