Files
jsowell-charger-web/jsowell-common/src/main/java/com/jsowell/common/util/SMSUtil.java
2023-06-13 13:41:43 +08:00

68 lines
2.0 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.jsowell.common.util;
import com.github.qcloudsms.SmsSingleSender;
import com.github.qcloudsms.SmsSingleSenderResult;
import com.github.qcloudsms.httpclient.HTTPException;
import com.jsowell.common.constant.CacheConstants;
import com.jsowell.common.core.redis.RedisCache;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
/**
* 发送短信验证码工具类
*/
@Component
public class SMSUtil {
private static RedisCache redisCache;
@Autowired
public void setRedisCache(RedisCache redisCache) {
SMSUtil.redisCache = redisCache;
}
// 短信应用SDK AppKey
private static final String APP_KEY = "8ebcf52de98416814b440891350cd594";
// 短信模板ID需要在短信应用中申请
private static final int TEMPLATE_ID = 1002460;
// 短信应用SDK AppID 1400开头
private static final int APP_ID = 1400536771;
// 签名使用的是签名内容而不是签名ID
private static final String SMS_SIGN = "举视新能源";
// 国家码 如 86 为中国
private static final String NATION_CODE = "86";
public static String sendSMS(HttpServletRequest request, String phoneNumber) throws HTTPException, IOException {
String reStr = "success"; //定义返回值
//随机生成六位验证码
String code = RandomUtil.getSMSVerificationCode();
//参数,一定要对应短信模板中的参数顺序和个数,
String[] params = {code};
//创建ssender对象
SmsSingleSender ssender = new SmsSingleSender(APP_ID, APP_KEY);
//发送
SmsSingleSenderResult result = ssender.sendWithParam(NATION_CODE, phoneNumber, TEMPLATE_ID, params, SMS_SIGN, "", "");
if (result.result != 0) {
reStr = "error";
} else {
// 改为保存redis
String redisKey = CacheConstants.SMS_VERIFICATION_CODE_KEY + phoneNumber;
redisCache.setCacheObject(redisKey, code, CacheConstants.cache_expire_time_10m);
}
return reStr;
}
public static void main(String[] args) {
System.out.println();
}
}