首页 > 编程知识 正文

输入手机号发送验证码,短信验证

时间:2023-05-03 22:49:45 阅读:139323 作者:121

手机注册(发送短信验证码)

去蚂蚁开通短信服务,用accesskey号制作签名

复制代码&; 粘贴即可使用,按照指导修改即可

如果有误报而无法使用,请谅解。 (未经作者同意,禁止修改或盗用代码;利用代码骗取金钱)免费参考)

联系QQ:913237269,添加时请说明

如果有问题或有用的地方请在评论区域评论

注册手机邮件发送控制层(controller )

package com.ljma.web.mng.phone registration.controller;

import com.aliyuncs.dysmsapi.model.v 2017 05 25.send SMS response;

import com.aliyuncs.exceptions.client exception;

import com.ljma.web.util.code util;

import com.ljma.web.util.SMS tool;

importorg.spring framework.web.bind.annotation.request mapping;

importorg.spring framework.web.bind.annotation.response body;

importorg.spring framework.web.bind.annotation.rest controller;

import javax.servlet.http.http servlet request;

import java.util.HashMap;

import java.util.Map;

//*

* @description:手机短信验证

* @author rxdyj

* @date 2019/7/11

/

@RestController

@requestmapping(value=“/phone”) ) ) ) )。

publicclassphoneregistrationcontroller {

/*

*发送邮件

* @param phone

* @param request

* @return

* @throws ClientException

*/

@requestmapping(value=“/smsxxs”) ) ) ) ) )。

@ResponseBody

public MapString,objectsmsxxs(stringphone,HttpServletRequest request ) throws ClientException {

MapString,Object map=new HashMap (;

//认证码(指定长度的随机数) )。

string code=code util.generate verify code (6;

stringtemplateparam=" {“code”: " ' code ' };

//SMS模板id

stringtemplatecode=“SMS _ 129650038”//无法使用的情况下(模板转换为属于自己的模板。 )

sendsmsresponseresponse=SMS tool.send SMS (phone,TemplateParam,TemplateCode );

map.put(「verifycode ",code );

map.put(「Phone”、phone );

request.getSession ().set attribute (" code phone ",map );

response.getcode ().equals (“确定”) ) 0

map.put(「isOK "、" ok " );

}

返回地图;

}

}

工具类(util ) )。

package com.ljma.web.util;

import java.util.Random;

//*

* @description:手机号码注册认证邮件

* @author rxdyj

* @date 2019/7/11

*/

公共类代码实用工具{

甚至使用了Algerian字体,如果系统中没有,就需要安装字体。 字体只显示大写字母,去掉了1,0,I,o几个容易混淆的文字

publicstaticfinalstringverify _ codes=" 1234567890 "

/** *使用系统默认字符源生成认证码* @param verifySize认证码长度* @ return */publicstaticstringenerateverifycode (intverifys

ize){ return generateVerifyCode(verifySize, VERIFY_CODES);}/** * 使用指定源生成验证码 * @param verifySize 验证码长度 * @param sources 验证码字符源 * @return */public static String generateVerifyCode(int verifySize, String sources){ if(sources == null || sources.length() == 0){ sources = VERIFY_CODES; } int codesLen = sources.length(); Random rand = new Random(System.currentTimeMillis()); StringBuilder verifyCode = new StringBuilder(verifySize); for(int i = 0; i < verifySize; i++){ verifyCode.append(sources.charAt(rand.nextInt(codesLen-1))); } return verifyCode.toString();}public static void main(String[] args) { System.out.println(generateVerifyCode(4));}

}

工具类(新建一个文件名在util下面)

package com.ljma.web.util;

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;

/**
  * @description: 手机号注册短信验证
  * @author rxdyj
  * @date 2019/7/11
  */
public class SmsTool {

//产品名称:云通信短信API产品,开发者无需替换static final String product = "Dysmsapi";//产品域名,开发者无需替换static final String domain = "dysmsapi.aliyuncs.com";// TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)static final String accessKeyId = "自己的accesskey号了";static final String accessKeySecret = "这个也是的 同样在上面截图里";public static SendSmsResponse sendSms(String phone , String code, String TemplateCode) throws ClientException { //可自助调整超时时间 System.setProperty("sun.net.client.defaultConnectTimeout", "10000"); System.setProperty("sun.net.client.defaultReadTimeout", "10000"); //初始化acsClient,暂不支持region化 IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret); DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain); IAcsClient acsClient = new DefaultAcsClient(profile); //组装请求对象-具体描述见控制台-文档部分内容 SendSmsRequest request = new SendSmsRequest(); //必填:待发送手机号 request.setPhoneNumbers(phone); //必填:短信签名-可在短信控制台中找到 request.setSignName("上面截图所要创建的签名"); //必填:短信模板-可在短信控制台中找到 request.setTemplateCode(TemplateCode); //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为 request.setTemplateParam(code); //选填-上行短信扩展码(无特殊需求用户请忽略此字段) //request.setSmsUpExtendCode("90997"); //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者 //request.setOutId("yourOutId"); //hint 此处可能会抛出异常,注意catch SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request); return sendSmsResponse;}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。