| | |
| | | package com.nq.utils.smsUtil; |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.nq.controller.SmsApiController; |
| | | import com.nq.utils.PropertiesUtil; |
| | | import com.nq.utils.pay.CmcPayOuterRequestUtil; |
| | | import com.nq.utils.redis.RedisKeyConstant; |
| | | import com.nq.utils.redis.RedisShardedPoolUtils; |
| | | import org.apache.commons.lang3.RandomStringUtils; |
| | | import org.slf4j.Logger; |
| | |
| | | private static final Logger log = LoggerFactory.getLogger(SmsApiController.class); |
| | | |
| | | public String sendSMS(String telephone) { |
| | | String code = RandomStringUtils.randomNumeric(4); |
| | | CmcPayOuterRequestUtil requestUtil = new CmcPayOuterRequestUtil(); |
| | | |
| | | String sign = "【短信签名】"; |
| | | String uid = PropertiesUtil.getProperty("dxb.sms.USERNAME"); |
| | | String key = PropertiesUtil.getProperty("dxb.sms.PASSWORD"); |
| | | // String coding = PropertiesUtil.getProperty("wj.sms.coding"); |
| | | String smscontent = sign+"您正在申请手机注册,验证码为:" + code + ",5分钟内有效!"; |
| | | //设置签名 |
| | | |
| | | // 生成6位数字验证码 |
| | | String verificationCode = RandomStringUtils.randomNumeric(6); |
| | | |
| | | try { |
| | | uid = URLEncoder.encode(uid,"UTF-8"); |
| | | smscontent = URLEncoder.encode(smscontent,"UTF-8"); |
| | | } catch (UnsupportedEncodingException e){ |
| | | e.printStackTrace(); |
| | | // 将验证码存入 Redis,设置 30 秒过期时间 |
| | | String redisKey = RedisKeyConstant.verification_code + ":" + telephone; // 使用电话号码作为唯一标识符 |
| | | RedisShardedPoolUtils.setEx(redisKey, verificationCode, 30); |
| | | } catch (Exception e) { |
| | | // 捕获异常并记录日志,避免程序崩溃 |
| | | System.err.println("Error storing verification code in Redis: " + e.getMessage()); |
| | | // 你可以根据需要做进一步的异常处理,比如重新抛出异常 |
| | | } |
| | | // String url = "http://"+ cod+ing +".api.smschinese.cn/?Uid="+ uid +"&Key="+ key +"&smsMob=" + telephone + "&smsText="+sign+smscontent; |
| | | String url ="https://api.smsbao.com/sms?u="+uid+"&p="+key+"&m="+telephone+"&c="+smscontent; |
| | | log.info("smsurl"+url); |
| | | String result = requestUtil.sendGet(url); |
| | | log.info("smsresult="+result+"==code="+code); |
| | | if (Integer.valueOf(result) < 0) { |
| | | return ""; |
| | | } else { |
| | | String keys = "AliyunSmsCode:" + telephone; |
| | | RedisShardedPoolUtils.setEx(keys, code, 5400); |
| | | return code; |
| | | } |
| | | |
| | | // 返回验证码 |
| | | return verificationCode; |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 找回密码 |
| | | */ |