Commit dc4d230b authored by ysongq's avatar ysongq

no message

parent 1fcaba78
...@@ -105,6 +105,11 @@ public class Result<T> implements Serializable { ...@@ -105,6 +105,11 @@ public class Result<T> implements Serializable {
this.timestamp = timestamp; this.timestamp = timestamp;
} }
public Result(boolean success, String message) {
this.success = success;
this.message = message;
}
public Result(boolean success, String message, Integer code) { public Result(boolean success, String message, Integer code) {
this.success = success; this.success = success;
this.message = message; this.message = message;
......
package com.jz.common.utils; package com.jz.common.utils;
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.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
/** /**
* @ClassName: * @ClassName: 短信发送工具类
* @Author: Carl * @Author: Carl
* @Date: 2020/12/1 * @Date: 2020/12/1
* @Version: * @Version:
*/ */
public class SMSUtils { public class SMSUtils {
public static final String VALIDATE_CODE = "SMS_198677589";//发送短信验证码 验证码签名, 改成你的
public static final String ORDER_NOTICE = "SMS_159771588";//成功通知, 通知类的模板(需要通用的签名)
private static final String SIGN_NAEM = "ysongq商城";// 短信的签名
private static final String PARAMETER_NAME="code"; // 短信模板内容中的参数名
private static final String ACCESS_KEY="LTAI4GAnKS1Gj2NwDepvyBuB"; //AccessKey ID
private static final String SECRET_KEY="BIHOQP6muPtCz9YzrSQpSj0dJjZIET"; //AccessKey Secret
public static void main(String[] args) throws ClientException {
SMSUtils.sendShortMessage("VALIDATE_CODE","18279617424","666666");
}
/**
* 发送短信
* @param templateCode 验证码的模板code
* @param phoneNumbers 接收的手机号码
* @param param 验证码
* @throws ClientException
*/
public static void sendShortMessage(String templateCode,String phoneNumbers,String param) throws ClientException {
//设置超时时间-可自行调整
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
//初始化ascClient需要的几个参数
final String product = "Dysmsapi";//短信API产品名称(短信产品名固定,无需修改)
final String domain = "dysmsapi.aliyuncs.com";//短信API产品域名(接口地址固定,无需修改)
//替换成你的AK
final String accessKeyId = ACCESS_KEY;//你的accessKeyId,参考本文档步骤2
final String accessKeySecret = SECRET_KEY;//你的accessKeySecret,参考本文档步骤2
//初始化ascClient,暂时不支持多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();
//使用post提交
request.setMethod(MethodType.POST);
//必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式;发送国际/港澳台消息时,接收号码格式为国际区号+号码,如“85200000000”
request.setPhoneNumbers("1500000000");
//必填:短信签名-可在短信控制台中找到
request.setSignName("云通信");
//必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版
request.setTemplateCode("SMS_1000000");
//可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
//友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败
//参考:request.setTemplateParam("{\"变量1\":\"值1\",\"变量2\":\"值2\",\"变量3\":\"值3\"}")
request.setTemplateParam("{\"name\":\"Tom\", \"code\":\"123\"}");
//可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)
//request.setSmsUpExtendCode("90997");
//可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
request.setOutId("yourOutId");
//请求失败这里会抛ClientException异常
SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
if(sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {
//请求成功
}
}
} }
package com.jz.common.utils; package com.jz.common.utils;
import java.util.Random;
/** /**
* @ClassName: * @ClassName: 随机生成验证码工具类
* @Author: Carl * @Author: Carl
* @Date: 2020/12/1 * @Date: 2020/12/1
* @Version: * @Version:
*/ */
public class ValidateCodeUtils { public class ValidateCodeUtils {
/**
* 随机生成验证码
* @param length 长度为4位或者6位
* @return
*/
public static Integer generateValidateCode(int length){
Integer code =null;
if(length == 4){
code = new Random().nextInt(9999);//生成随机数,最大为9999
if(code < 1000){
code = code + 1000;//保证随机数为4位数字
}
}else if(length == 6){
code = new Random().nextInt(999999);//生成随机数,最大为999999
if(code < 100000){
code = code + 100000;//保证随机数为6位数字
}
}else{
throw new RuntimeException("只能生成4位或6位数字验证码");
}
return code;
}
/**
* 随机生成指定长度字符串验证码
* @param length 长度
* @return
*/
public static String generateValidateCode4String(int length){
Random rdm = new Random();
String hash1 = Integer.toHexString(rdm.nextInt());
String capstr = hash1.substring(0, length);
return capstr;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment