FastChar官网
FastChar官网 FastChar
捐助公告
  • 欧克克 863***453@qq.com ¥59.0
  • *💋 180*****471 ¥39.0
  • 懒者 433***782@qq.com ¥39.0
  • 默默猴 874***370@qq.com ¥199.0
  • 认真的猿 116****803@qq.com ¥39.0
  • 爱心 126****357@qq.com ¥39.0
  • 能量 257***146@163.com ¥19.0
  • 水染的天色 113****338@qq.com ¥39.0
  • 微笑的死神 156****158@qq.com ¥39.0
  • 笑话 bai***121@163.com ¥39.0
 FastChar-SMS插件使用介绍
  FastChar    分享于:2019-11-06 18:45    阅读次数:3354
  

FastChar-SMS是基于FastChar的短信插件,通过FastChar-SMS插件可快速集成短信发送功能并支持各大平台的短信发送!使用步骤如下:

1、下载并引用FastChar-SMS到项目中。或通过maven如下:

<dependency>
<groupId>com.fastchar</groupId>
<artifactId>fastchar-sms</artifactId>
<version>[1.0,)</version><!--具体版本请前往maven中心查看 https://mvnrepository.com/artifact/com.fastchar/fastchar-sms -->
</dependency>

2、在IFastWeb系统初始化时配置短信模板信息,如下代码:

/**省略其他代码**/

engine.getConfig(FastSMSConfig.class)
.setDebug(true)//是否开启调试模式
.setCodeLength(4)//生成验证码的长度,一般在发送验证码短信时用到
.setMaxCountByDay("code", 6)//设置验证码一个号码一天最多允许发送的次数,一般在发送验证码短信时用到
.setMaxSecondByValid("code", 5 * 60)//设置验证码的失效时间(秒),一般在发送验证码短信时用到
.setTemplate("code", "您此的验证码码为{code},如非本人请忽略!");//配置模板,         //其中{code}是配置模板参数,code参数是固定参数名,由FastChar-SMS生成提供!         //开发也可以自定参数,例如模板为:
您的验证码为{code},{appName}提供技术支持!         //如何传入自定义参数的值,在下面会介绍到!

3、实现短信IFastSMSInterface接口,将短信通过对应的平台发送出去,如下代码:

/**
* 短信发送接口
*/
public class FastSMSProvider implements IFastSMSInterface {

public FastHandler postSMS(FinalSmsEntity smsEntity) {
try {

RequestBuilder requestBuilder = RequestBuilder.post()
.setUri(new URI("http://api.1cloudsp.com/api/v2/single_send"));

requestBuilder.addParameter("accesskey","GGfum0Dx6napizCr");
requestBuilder.addParameter("secret","6XhdGm2MjapjVh4tnqjN5CI3p1k1rByt");
requestBuilder.addParameter("sign","【签名】");
requestBuilder.addParameter("templateId", smsEntity.getSendContent());//获取短信内容
requestBuilder.addParameter("mobile",smsEntity.getSendPhone());//获取发送的手机号码
Object[] objects = smsEntity.getSendParams().values().toArray(new Object[0]);
requestBuilder.addParameter("content", FastStringUtils.join(objects, "##"));

CloseableHttpClient httpclient = HttpClients.custom()
.build();
try (CloseableHttpResponse response = httpclient.execute(requestBuilder.build())) {
HttpEntity entity = response.getEntity();
String returnText = EntityUtils.toString(entity, "utf-8");
//{"code":"0","msg":"SUCCESS","smUuid":"37046_1_0_18656639665_1_3FpQM3F_1"}
System.out.println("短信发送结果:" + returnText);
EntityUtils.consume(entity);

Map map = FastChar.getJson().fromJson(returnText, Map.class);
if (map != null) {
if (FastNumberUtils.formatToInt(map.get("code"), -1) == 0) {
return new FastHandler().setCode(0).setError("发送成功!");
}
return new FastHandler().setCode(-1).setError("发送失败!" + map.get("msg"));
}
}
} catch (Exception e) {
e.printStackTrace();
}
return new FastHandler().setCode(-1).setError("发送失败,请稍后重试!");
}
}

然后将上述实现的类注册到代理器中!

4、调用短信工具类,发送短信,如下代码:

public void sendCode() {
String userPhone = getParam("userPhone", true);
FastHandler handler = FastSMS.getInstance()
.setPhone(userPhone)
.setType("code")//设置消息类型             .addParams("appName","FastChar")//自定义参数
.sendCode();//发送验证码     //handler.getCode() 短信发送的错误码,由短信接口中返回     //handler.getError() 短信发送的错误信息,由短信接口中返回
responseJson(handler.getCode(), handler.getError());
}  //下面代码是校验验证码方法 FastHandler handler = FastSMS.getInstance() .setPhone(userPhone) .setType("code") .validCode(code); //handler.getCode() 返回0代表成功,否则失败! //handler.getError() 失败的原因!