阿里云短信
依赖于redis做时间过期功能
1. pom
<dependencies>
<dependency>
<groupId>com.alibaba
</groupId>
<artifactId>fastjson
</artifactId>
</dependency>
<dependency>
<groupId>com.aliyun
</groupId>
<artifactId>aliyun-java-sdk-core
</artifactId>
</dependency>
</dependencies>
2. application.properties
spring.redis.host
=192.168.44.132
spring.redis.port
=6379
spring.redis.database
= 0
spring.redis.timeout
=1800000
spring.redis.lettuce.pool.max-active
=20
spring.redis.lettuce.pool.max-wait
=-1
spring.redis.lettuce.pool.max-idle
=5
spring.redis.lettuce.pool.min-idle
=0
spring.jackson.date-format
=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone
=GMT+8
3. java代码
import com
.alibaba
.fastjson
.JSONObject
;
import com
.aliyuncs
.CommonRequest
;
import com
.aliyuncs
.CommonResponse
;
import com
.aliyuncs
.DefaultAcsClient
;
import com
.aliyuncs
.IAcsClient
;
import com
.aliyuncs
.http
.MethodType
;
import com
.aliyuncs
.profile
.DefaultProfile
;
import com
.atguigu
.msmservice
.service
.MsmService
;
import org
.springframework
.stereotype
.Service
;
import org
.springframework
.util
.StringUtils
;
import java
.util
.Map
;
@Service
public class MsmServiceImpl implements MsmService {
@Override
public boolean send(Map
<String, Object> param
, String phone
) {
if(StringUtils
.isEmpty(phone
)) return false;
DefaultProfile profile
=
DefaultProfile
.getProfile("default", "LTAI4FvvVEWiTJ3GNJJqJnk7", "9st82dv7EvFk9mTjYO1XXbM632fRbG");
IAcsClient client
= new DefaultAcsClient(profile
);
CommonRequest request
= new CommonRequest();
request
.setMethod(MethodType
.POST
);
request
.setDomain("dysmsapi.aliyuncs.com");
request
.setVersion("2017-05-25");
request
.setAction("SendSms");
request
.putQueryParameter("PhoneNumbers",phone
);
request
.putQueryParameter("SignName","我的谷粒在线教育网站");
request
.putQueryParameter("TemplateCode","SMS_180051135");
request
.putQueryParameter("TemplateParam", JSONObject
.toJSONString(param
));
try {
CommonResponse response
= client
.getCommonResponse(request
);
boolean success
= response
.getHttpResponse().isSuccess();
return success
;
}catch(Exception e
) {
e
.printStackTrace();
return false;
}
}
}