Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dm_project
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
姚本章
dm_project
Commits
dc4d230b
Commit
dc4d230b
authored
Dec 02, 2020
by
ysongq
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
1fcaba78
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
113 additions
and
2 deletions
+113
-2
Result.java
jz-dm-common/src/main/java/com/jz/common/utils/Result.java
+5
-0
SMSUtils.java
jz-dm-common/src/main/java/com/jz/common/utils/SMSUtils.java
+71
-1
ValidateCodeUtils.java
.../src/main/java/com/jz/common/utils/ValidateCodeUtils.java
+37
-1
No files found.
jz-dm-common/src/main/java/com/jz/common/utils/Result.java
View file @
dc4d230b
...
...
@@ -105,6 +105,11 @@ public class Result<T> implements Serializable {
this
.
timestamp
=
timestamp
;
}
public
Result
(
boolean
success
,
String
message
)
{
this
.
success
=
success
;
this
.
message
=
message
;
}
public
Result
(
boolean
success
,
String
message
,
Integer
code
)
{
this
.
success
=
success
;
this
.
message
=
message
;
...
...
jz-dm-common/src/main/java/com/jz/common/utils/SMSUtils.java
View file @
dc4d230b
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
* @Date: 2020/12/1
* @Version:
*/
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"
))
{
//请求成功
}
}
}
jz-dm-common/src/main/java/com/jz/common/utils/ValidateCodeUtils.java
View file @
dc4d230b
package
com
.
jz
.
common
.
utils
;
import
java.util.Random
;
/**
* @ClassName:
* @ClassName:
随机生成验证码工具类
* @Author: Carl
* @Date: 2020/12/1
* @Version:
*/
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
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment