阿里云短信验证码后端

@Controller
@RequestMapping(value="/sms")
public class xxSmsController extends BaseController{
@Resource(name = "xxSmsService")
private xxSmsService xxSmsService;

/**
 * TODO
 * @方法描述:发送短信验证码【阿里云 云通讯短信API】
 * @设定文件:@param request
 * @设定文件:@return
 * @返回类型:Object
 * @throws :
 */
@RequestMapping("/toSendCode")
@ResponseBody
public Object toSendCode(){
	Map<String,Object> map = new HashMap<String,Object>();
	try {
		//查询第一条开启状态的短信验证码接口
		PageData pd = new PageData();
		pd = this.getPageData();
		pd.put("use_flag", "1");//短信使用场景 1验证码 2短信通知 3推广短信 4群发助手 5其他
		List<PageData> messageface = appSmsService.searchMessageface(pd);
		if(messageface != null && messageface.size() > 0){
			String phone = pd.getString("phone");
			PageData face_info = messageface.get(0);
			String code = getThree();
			PageData sendSmsPD = new PageData();
			sendSmsPD.put("alive_flag", "1");
			sendSmsPD.put("alive_time", "600");
			sendSmsPD.put("code", code);
			sendSmsPD.put("content", "您的验证码为:"+code+",您正进行XX的身份验证,验证码10分钟内有效,打死不告诉别人!");
			sendSmsPD.put("phone", phone);
			sendSmsPD.put("type", "2");
			xxSmsService.editSmsSend(sendSmsPD);//先关闭同手机号其他的验证码
			xxSmsService.saveSmsSend(sendSmsPD);//保存验证码短信记录
			//从前往后:是否开启,key_id,key_secret,手机号,验证码,短信模板编码,短信签名
			SmsSendUtils.sendSmsVerificationCode(face_info.getString("message_will_open"), face_info.getString("key_id"), face_info.getString("key_secret"),phone, code, face_info.getString("message_remark_autograph"), face_info.getString("message_about_content"));
			map.put("retCode", "0000");
			map.put("msg", "短信发送成功");
		}else{
			map.put("retCode", "1111");
			map.put("msg", "未找到短信验证码接口");
		}
	} catch (Exception e) {
		// TODO: handle exception
		e.printStackTrace();
		map.put("retCode", "1111");
		map.put("msg", "参数转换失败");
	}
	return map;
}

/**
 * TODO
 * @方法描述:验证短信验证码  参数有 phone 和  code
 * @设定文件:@param request
 * @设定文件:@return
 * @返回类型:Object
 * @throws :
 */
@RequestMapping("/checkCode")
@ResponseBody
public Object checkCode(HttpServletRequest request){
	Map<String,Object> map = new HashMap<String,Object>();
	try {
		PageData pd = new PageData();
		pd = this.getPageData();
		String phone = pd.getString("phone");
		String code = pd.getString("code");
		PageData sendSmsPD = new PageData();
		sendSmsPD.put("phone", phone);
		sendSmsPD.put("type", "1");
		xxSmsService.editSmsSend(sendSmsPD);
		sendSmsPD.put("alive_flag", "1");
		List<PageData> sms = xxSmsService.searchSmsSend(sendSmsPD);
		if(sms != null && sms.size() > 0){
			PageData codeSend = sms.get(0);
			if(code.equals(codeSend.getString("code"))){
				map.put("retCode", "0000");
				map.put("msg", "验证成功");
			}else{
				map.put("retCode", "1111");
				map.put("msg", "验证码错误");
			}
		}else {
			map.put("retCode", "1111");
			map.put("msg", "验证码错误");
		}
	} catch (Exception e) {
		// TODO: handle exception
		e.printStackTrace();
		map.put("retCode", "1111");
		map.put("msg", "参数转换失败");
	}
	return map;
}

/**
 * TODO
 * @方法描述:生成手机验证码
 * @设定文件:@return
 * @返回类型:String
 */
public static String getThree(){  
    Random rad=new Random();  
    return rad.nextInt(1000000)+"";  
}
}

**sql 关闭同手机号其他的验证码**
<update id="editSmsSend" parameterType="pd">
		update	表 set alive_flag = 0 
		<if test='type != null and type != "" and type == "1"'>
            WHERE TIMESTAMPDIFF(SECOND, create_time, NOW()) > alive_time 
        </if>
        <if test='type != null and type != "" and type == "2"'>
            WHERE phone = #{phone} 
        </if>
</update>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值