短信功能要有相应的短信平台支撑,获取 短信可以,短信秘钥,模版id等
1、向方法内传参
//替换手机号中间四位
StringBuilder stringBuilder=new StringBuilder(account);
stringBuilder.replace(3,7,"****");
String acountEncrypt=stringBuilder.toString();
//md加密
String md5Pwd = DigestUtil.md5Hex(pwd);
//进入到短信方法,参数为电话号,加密后手机号,密码
b=SmsUtil.sendMessage(account,acountEncrypt,pwd);
2、短信方法
private static final RestTemplate restTemplate = BeanUtil.getBean("restTemplate");
/**
* 请求地址
*/
private static final String apiUrl = "http://XXXXXXXXXXXXXXXX";
/**
* 发送短信,手机号为空则不发
* 尊敬的用户您好!您正在操作注册账号,帐号名为:135****2596,密码是:111111
* @param mobile 手机号
* @return
*/
public static Boolean sendMessage(String mobile,String account,String password){
if(StringUtil.isEmpty(mobile)){
return false;
}
//mobile中存储的是电话,templateId为申请的模版号,content为发送短信的变量参数
MessageRequestBean requestBean = new MessageRequestBuilder().mobile(mobile).templateId("275122").content(account).content(password).build();
String s = restTemplate.postForObject(apiUrl, JSONObject.toJSON(requestBean), String.class);
if (StringUtil.isNotEmpty(s))
{
JSONObject jsonObject = JSONObject.parseObject(s);
String code = jsonObject.getString("code");
if ("0".equals(code))
{
return true;
}
}
return false;
}
其中MessageRequestBean为请求短信对象
@Data
public class MessageRequestBean
{
/**
* 用户的accesskey
*/
private String accesskey;
/**
* 用户的secret
*/
private String secret;
/**
*平台上申请的接口短信签名或者签名ID(须审核通过),采用utf8编码
*/
private String sign;
/**
* 平台上申请的接口短信模板Id(须审核通过)
*/
private String templateId;
/**
* 接收短信的手机号码(只支持单个手机号)
*/
private String mobile;
/**
* 发送的短信内容是模板变量内容,多个变量中间用##或者$$隔开,采用utf8编码
*/
private String content;
}
public class MessageRequestBuilder
{
private static final String CONTENT_SEPARATOR = "##";
/**
* 短信key
*/
private static final String DEFAULT_ACCESSKEY = "XXXXXXx";
/**
* 短信密钥
*/
private static final String DEFAULT_ACCESSSECRET = "XXXXXXXXX";
/**
* 签名
*/
private static final String DEFAULT_SIGNID = "XXXXXX";
private MessageRequestBean bean = new MessageRequestBean();
/**
* 模板
*/
private static final String DEFAULT_TEMPLATEID = "XXXX";
public MessageRequestBuilder accesskey(String accesskey)
{
bean.setAccesskey(accesskey);
return this;
}
public MessageRequestBuilder secret(String secret)
{
bean.setSecret(secret);
return this;
}
public MessageRequestBuilder sign(String sign)
{
bean.setSign(sign);
return this;
}
public MessageRequestBuilder templateId(String templateId)
{
bean.setTemplateId(templateId);
return this;
}
public MessageRequestBuilder mobile(String mobile)
{
bean.setMobile(mobile);
return this;
}
public MessageRequestBuilder content(String content)
{
String c = bean.getContent();
if (StringUtil.isEmpty(c))
bean.setContent(content);
else
{
c += (CONTENT_SEPARATOR + content);
bean.setContent(c);
}
return this;
}
//默认值放在这个方法里
public MessageRequestBean build()
{
return requestBean;
}
}
关于postForObject()方法,相当于向某个地址发送信息
// 开始调用
// 参数1:目标请求地址
// 参数2:请求体
// 参数3:目标请求接口的返回值类型(execute接口的返回值类型)
JSONObject result = restTemplate.postForObject("http://192.168.12.12:8080/test/producer/execute", request, JSONObject.class);