容联--短信验证

本文介绍了如何通过云通讯平台集成即时通讯(IM)功能到应用程序中,包括注册账号、创建应用、下载并集成SDK等步骤,并提供了发送模板短信的Java Demo示例。

一:准备工作

1、集成流程

(1)注册成为云通讯平台用户。

(2)登陆云通讯平台,进入管理控制台,创建自己的应用。

(3)下载云通讯Android SDK,根据开发指南进行编码实现。

2、前期准备

(1)注册成为云通讯的用户

(2)登陆云通讯平台,进入管理控制台,创建自己的应用。在创建IM类应用的时候,只需填写应用名称,不必选择"启用应用回调地址"、"启用IVR"、"启用TTS"、"服务器白名单"等选项。

(3)应用创建成功后,在"应用列表"里面可以看见自己刚刚创建的应用,可以对该应用进行编辑和删除操作。当该应用集成完云通讯IM能力后准备正式对外发布时,需要点击"上线"。

注意:使用5.0以上的SDK集成客户端,测试音视频、音视频会议、群组等需要先将在我们控制台对应的应用上线,才可以进行测试。

3、核心概念

(1)生产环境:对应的接入域名为:https://app.cloopen.com:8883

(2)开发者主账号:每个开发者在云通讯平台对应一个主账号

(a)ACCOUNT SID:主账号id。

(b)AUTH TOKEN:主账号验证token。

(4)AppID:应用标识,每个创建的应用都对应唯一的id标识。

(3)子账号:每个App用户在云通讯对应一个子账号,包括账号id和验证token,用于安全性验证。

(4)通讯账号:通讯账号主要用于云通讯平台的语音通讯能力,每个子账号都对应一个通讯账号,由系统自动生成。

说明:

每一个注册开发者对应一个主账号。

每一个主账号下可以创建多个应用。

每一个应用下面可以创建亿级子账号。

每一个子账号对应一个通讯账号。

4.创建key值以后下载demo实例

返回到首页 点到服务与产品 下面就有一个短信验证 然后点击短信验证 进入

点击立即进入 然后点击demo实例进入界面



下载SMS JAVA DEMO

 Java Demo中模板短信的使用说明

2.1 目录介绍
2.2 发送模板短信接口介绍

1.接口声明文件:sdk\src\com\cloopen\rest\sdk\CCPRestSDK.java

2.接口函数定义:public HashMap sendTemplateSMS(String to, String templateId, String[] datas)

3.参数说明:

to: 字符串类型,短信接收手机号码集合,用英文逗号分开,如 "13810001000, 最多一次发送200个。
templateId: 字符串类型,模板Id,如使用测试模板,模板id为"1",如使用自己创建的模板,则使用自己创建的短信模板id即可。
datas: 字符串数组类型,内容数据,需定义成数组方式,如模板中有两个参数,定义方式为String{"3456","测试"}。

说明:CCPRestSDK.java依赖Jar包:package com.cloopen.rest.sdk,在LIB目录下

4.接口调用示例:

 import com.cloopen.rest.sdk.CCPRestSDK; 
 import com.cloopen.rest.sdk.CCPRestSDK.BodyType; 
 public class SDKTestSendTemplateSMS {
 public static void main(String[] args) {
 HashMap<String, Object> result = null; 
 CCPRestSDK restAPI = new CCPRestSDK();
 restAPI.init("app.cloopen.com", "8883");
 // 初始化服务器地址和端口,生产环境配置成app.cloopen.com,端口是8883. 
 restAPI.setAccount("accountSid", "accountToken");
 // 初始化主账号名称和主账号令牌,登陆云通讯网站后,可在控制首页中看到开发者主账号ACCOUNT SID和主账号令牌AUTH TOKEN。
 restAPI.setAppId("AppId");
 // 请使用管理控制台中已创建应用的APPID。
 result = restAPI.sendTemplateSMS("号码1,号码2等","模板Id" ,new String[]{"模板内容1","模板内容2"});
 System.out.println("SDKTestGetSubAccounts result=" + result); 
 if("000000".equals(result.get("statusCode"))){
 //正常返回输出data包体信息(map)
 HashMap<String,Object> data = (HashMap<String, Object>) result.get("data");
 Set<String> keySet = data.keySet();
 for(String key:keySet){ 
 Object object = data.get(key); 
 System.out.println(key +" = "+object); 
 }
 }else{
 //异常返回输出错误码和错误信息
 System.out.println("错误码=" + result.get("statusCode") +" 错误信息= "+result.get("statusMsg"));
 }
 }
 }
 可参考demo中的接口调用文件:
 demo\src\com\cloopen\rest\demoSDKTestSendTemplateSMS.Java
            
首先导入lib包 然后将以上代码直接复制到你创建的工程里面 然后按照里面的注释 进行修改 然后在清单文件里面添加网络权限

最后别忘了一步 写上你的测试号码

这样就完成了短信验证


### Spring Boot集成容联云实现短信验证登录 #### 添加依赖 为了在Spring Boot项目中集成容联云并实现短信验证码功能,需先引入必要的Maven或Gradle依赖。通常情况下,这涉及到HTTP请求库以及容联云官方提供的SDK。 对于Maven项目,在`pom.xml`文件中添加如下依赖: ```xml <dependency> <groupId>com.yunrongcloud</groupId> <artifactId>yuntongxun-java-sdk</artifactId> <version>${yunrong.version}</version> </dependency> ``` 对于Gradle项目,则应在`build.gradle`里加入对应的配置[^1]。 #### 配置application.yml 接着要设置应用属性来存储与容联云通信所需的信息,比如账户SID、Token等敏感数据不应硬编码到源代码中而应通过环境变量或者安全的方式管理。以下是部分配置项的例子: ```yaml yuntongxun: accountSid: ${YUNTONGXUN_ACCOUNT_SID} authToken: ${YUNTONGXUN_AUTH_TOKEN} appId: ${YUNTONGXUN_APP_ID} sms: templateCode: 'SMS_XXXXXX' # 替换成实际模板ID captcha: height: 50 width: 150 session: key: CaptchaCode datetime: CaptchaDate ``` 这里不仅包含了容联云认证参数还保留了原有的图形验证码配置[^3]。 #### 创建服务类处理发送逻辑 定义一个新的Java类用于封装向手机号码发送验证码的具体业务流程。该类可以命名为`SmsService`,其中包含方法负责构建请求体并向指定号码发出POST请求调用容联云API完成消息推送操作。 ```java @Service public class SmsService { @Value("${yuntongxun.accountSid}") private String accountSid; @Value("${yuntongxun.authToken}") private String authToken; @Value("${yuntongxun.appId}") private String appId; @Value("${sms.templateCode}") private String templateCode; public void sendVerificationCode(String phoneNumber, String code){ RestTemplate restTemplate = new RestTemplate(); MultiValueMap<String, Object> body = new LinkedMultiValueMap<>(); body.add("To", phoneNumber); body.add("TemplateId", templateCode); body.add("Param", code); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(body, headers); ResponseEntity<String> response = restTemplate.exchange( "https://api.myservice.com/v2/Accounts/{accountSid}/Messages?sig={authToken}", HttpMethod.POST, requestEntity, String.class, accountSid, MD5Util.md5(phoneNumber + timestamp + authToken).toUpperCase() ); System.out.println(response.getBody()); } } ``` 注意上述URL路径和签名算法可能依据实际情况有所不同,请参照最新版的容联云开发者文档调整相应细节。 #### 控制器层接收前端传来的电话号并触发发送动作 最后一步是在控制器(`Controller`)层面编写路由映射函数监听特定端点上的HTTP POST请求,解析来自客户端提交的数据包提取出目标手机账号之后委托给之前创建的服务实例执行具体的发送任务。 ```java @RestController @RequestMapping("/api/auth") public class AuthController { @Autowired private SmsService smsService; @PostMapping("/send-sms-code") public ResponseEntity<?> sendSmsCode(@RequestParam String phoneNo) throws Exception{ try { // Generate a random verification code here... String generatedCode = RandomStringUtils.randomNumeric(6); // Store the code into Redis or Session with expiration time... smsService.sendVerificationCode(phoneNo,generatedCode ); return ResponseEntity.ok().build(); } catch (Exception e) { throw new RuntimeException(e.getMessage(),e.getCause()); } } } ``` 以上就是基于Spring Boot框架利用容联云平台实施短信验证机制的大致过程概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值