当前位置:   article > 正文

阿里云的短信验证码(超详细)_阿里云短信验证码服务

阿里云短信验证码服务

利用阿里云给手机发送短信验证码

第一步:登录阿里云

输入自己账号或者注册账号使用阿里云。

第二步:

登录过后,开通并使用短信服务。鼠标悬停在“产品”上,会出现阿里云提供的产品服务,在搜索框中搜索“短信服务”,搜索框显示出来,点击进去。

第三步:

开通短信服务,点击免费开通,开通服务。新账号可以免费领取100条的短信额度。

第四步:

申请签名和模板一下签名和模板是什么。

申请的签名会出现在短信开头,如此图中,“教师管理系统”便是签名。后面的内容便是模板,是我们在申请签名成功后需要申请的。模板中可变的字符为模板参数(比如说4-6位随机码),是在申请模板中进行配置的,后面可以通过代码动态给模板参数赋值。所以只要配置好签名和模板,我们的短信格式可以确定。

进入短信验证服务后,点击快速学习和测试,第一步是申请资质,这里需要用到身份证,因为防止有人发短信做坏事,个人使用的话,审核还是挺快的,一般也就几十分钟,然后将五个步骤完成,就可以得到自己申请好的签名和模板。

第五步:

RAM申请及权限配置

RAM介绍

RAM (Resource Access Management) 是阿里云提供的资源访问控制服务。RAM用户是代表任意的通过控制台或OpenAPI操作阿里云资源的人、系统或应用程序。RAM允许您在云账号下创建并管理多个用户,每个用户都有唯一的用户名、登录密码或访问密钥。
云账户与RAM用户是一种主子关系。
云账户(主账号):
1)阿里云资源归属、资源使用计量计费的基本主体
RAM用户(子账号):
1)只能存在于某个云账户下的RAM实例中
2)不拥有资源,在被授权操作时所创建的资源归属于主账户
3)RAM用户不拥有账单,被授权操作时所发生的费用也计入主账户账单。
原文链接:https://blog.csdn.net/guochen1314/article/details/110392499

(1)新建用户

鼠标悬停在右上角的头像上,然后进入AccessKey管理,

然后选择使用子账户

进入之后新建一个用户组,然后按要求填写即可

接着创建一个用户,按要求填写内容,勾选编程访问;

该步骤注意,创建完成后会得到会得到AccessKey(id,密码),一定一定一定要保存下来,这个后面会用到,并且出现一次后不会再出现,下载下来。

(2)分配权限

这里就是给RAM用户分配权限,根据我们的需要选择分配,由于我们的功能是短信验证码,我们分配以下三种权限。我当时因为没有分配权限,在JAVA代码中一直无法实现功能,所以这个要注意一下。

    AliyunDysmsFullAccess (管理短信服务(SMS)的权限)
    AliyunRAMFullAccess (管理访问控制(RAM)的权限,即管理用户以及授权的权限)
    AliyunSTSAssumeRoleAccess (调用STS服务AssumeRole接口的权限)

第六步

在JAVA中使用

(1)导入依赖坐标

  1. <dependency>
  2. <groupId>com.aliyun</groupId>
  3. <artifactId>aliyun-java-sdk-core</artifactId>
  4. <version>4.6.3</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>com.aliyun</groupId>
  8. <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
  9. <version>2.2.1</version>
  10. </dependency>

(2)调用API

快速学习界面往下面划,调用API

将API中的SDK实例复制下来,粘贴到JAVA项目中,配置信息改为自己的,这里的AccessKey填上面新建用户之后保存的ID和Secret。

  1. // This file is auto-generated, don't edit it. Thanks.
  2. package com.aliyun.sample;
  3. import com.aliyun.tea.*;
  4. public class Sample {
  5. /**
  6. * 使用AK&SK初始化账号Client
  7. * @return Client
  8. * @throws Exception
  9. */
  10. public static com.aliyun.teaopenapi.Client createClient() throws Exception {
  11. // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
  12. // 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html。
  13. com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
  14. // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。
  15. .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
  16. // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
  17. .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
  18. // Endpoint 请参考 https://api.aliyun.com/product/Dysmsapi
  19. config.endpoint = "dysmsapi.aliyuncs.com";
  20. return new com.aliyun.teaopenapi.Client(config);
  21. }
  22. /**
  23. * API 相关
  24. * @param path params
  25. * @return OpenApi.Params
  26. */
  27. public static com.aliyun.teaopenapi.models.Params createApiInfo() throws Exception {
  28. com.aliyun.teaopenapi.models.Params params = new com.aliyun.teaopenapi.models.Params()
  29. // 接口名称
  30. .setAction("SendSms")
  31. // 接口版本
  32. .setVersion("2017-05-25")
  33. // 接口协议
  34. .setProtocol("HTTPS")
  35. // 接口 HTTP 方法
  36. .setMethod("POST")
  37. .setAuthType("AK")
  38. .setStyle("RPC")
  39. // 接口 PATH
  40. .setPathname("/")
  41. // 接口请求体内容格式
  42. .setReqBodyType("json")
  43. // 接口响应体内容格式
  44. .setBodyType("json");
  45. return params;
  46. }
  47. public static void main(String[] args_) throws Exception {
  48. java.util.List<String> args = java.util.Arrays.asList(args_);
  49. com.aliyun.teaopenapi.Client client = Sample.createClient();
  50. com.aliyun.teaopenapi.models.Params params = Sample.createApiInfo();
  51. // query params
  52. java.util.Map<String, Object> queries = new java.util.HashMap<>();
  53. queries.put("PhoneNumbers", "手机号");
  54. queries.put("SignName", "签名");
  55. queries.put("TemplateCode", "短信模板CODE");
  56. queries.put("TemplateParam", "{\"code\":\"1234\"}");
  57. // runtime options
  58. com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
  59. com.aliyun.teaopenapi.models.OpenApiRequest request = new com.aliyun.teaopenapi.models.OpenApiRequest()
  60. .setQuery(com.aliyun.openapiutil.Client.query(queries));
  61. // 复制代码运行请自行打印 API 的返回值
  62. // 返回值为 Map 类型,可从 Map 中获得三类数据:响应体 body、响应头 headers、HTTP 返回的状态码 statusCode。
  63. client.callApi(params, request, runtime);
  64. }
  65. }

运行main方法即可成功运行。

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

闽ICP备14008679号