大家好,欢迎来到IT知识分享网。
简要说明:在开发软件时涉及登录注册,我们想实现手机验证码注册,这里以调用阿里云短信服务,使用androidstdio java语言为例
一、申请短信服务
1.进入阿里云平台,选择短信服务
2.申请签名
3.申请模版
注:上述两个过程可以在系统提示下用手机钉钉进行申请,每次审核需要一两个小时;
4.在个人信息那个获取用户密钥,用于访问阿里云API
二、代码实现
1.选择快速学习使用,点击调用API发送,跳转界面
2.选择你需要使用的代码示例,这里我选java
3.根据你申请的签名模版和密钥修改代码参数即可
三、安卓测试
注:安卓中需要在线程里执行此操作
1.需要导入阿里云相关sdk包,如:
implementation(files("libs\\alipay-sdk-java803.jar")) implementation(files("libs\\aliyun-java-sdk-core-3.3.1.jar")) implementation(files("libs\\aliyun-java-sdk-dysmsapi-1.0.0.jar")) implementation(files("libs\\alipay-sdk-java803-source.jar"))
2.实现一个发送验证码的类
//导入阿里云短信服务SDK import com.aliyun.auth.credentials.Credential; import com.aliyun.auth.credentials.provider.StaticCredentialProvider; import com.aliyun.sdk.service.dysmsapi.models.*; import com.aliyun.sdk.service.dysmsapi.*; import com.google.gson.Gson; import darabonba.core.client.ClientOverrideConfiguration; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; //导入随机数生成函数库 import java.util.Random; //线程实现短信验证码的请求发送 public class SendSms extends Thread{ private String code; private String phoneNumber; public void setPhoneNumber(String phoneNumber,String code) { this.phoneNumber = phoneNumber; this.code = code; } //线程主体 public void run() { try { StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() .accessKeyId("填自己的")//你的密钥 .accessKeySecret("填自己的") .build()); AsyncClient client = AsyncClient.builder() .region("cn-beijing") .credentialsProvider(provider) .overrideConfiguration( ClientOverrideConfiguration.create() .setEndpointOverride("dysmsapi.aliyuncs.com") ) .build(); SendSmsRequest sendSmsRequest = SendSmsRequest.builder() .signName("填自己的")//短信签名 .templateCode("填自己的")//短信模版 .phoneNumbers(this.phoneNumber)//测试手机号 .templateParam("{\"code\":\""+this.code+"\"}")//验证码 .build(); CompletableFuture<SendSmsResponse> response = client.sendSms(sendSmsRequest); SendSmsResponse resp = response.get(); System.out.println(new Gson().toJson(resp)); client.close(); } catch (ExecutionException e) { throw new RuntimeException(e); } catch (InterruptedException e) { throw new RuntimeException(e); } } }
3.调用此类即可
四、最后说明
1.短信中的验证码数字自己设置,可以自己写一个生成指定位的随机数函数,即随机验证码;
2.记得给自己阿里云账户充几块钱,发一次短信要扣一点点费用,当然也有免费的如MobTech实现验证码注册,但是我写安卓的时候,选择的安卓版本太新了,那个官方提供的代码不适用了,又不想改安卓配置了,就改用阿里云了;
3.程序简单逻辑:用户点击注册进入注册页面,用户输入手机号,账号密码,点击获取验证码,调用你实现的类发送随机验证码给用户,用户输入验证码后,验证验证码是否正确,正确的话把用户填写的账号密码信息存入服务器数据库账户表中;
4.对于把账户信息存入服务器数据库可以参考我的另一篇文章:架设阿里云服务器及数据库;
5.不同开发平台,不同语言,阿里云都给出了模版,你需要做的就是导入包修改参数(签名,模版和密钥)即可,整体框架是确定的;
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/114314.html






