package com.iailab.module.shasteel.framework.sms.core.client; import com.iailab.framework.common.core.KeyValue; import com.iailab.module.shasteel.framework.sms.core.client.dto.SmsReceiveRespDTO; import com.iailab.module.shasteel.framework.sms.core.client.dto.SmsSendRespDTO; import com.iailab.module.shasteel.framework.sms.core.client.dto.SmsTemplateRespDTO; import java.util.List; /** * 短信客户端,用于对接各短信平台的 SDK,实现短信发送等功能 * * @author zzf * @since 2021/1/25 14:14 */ public interface SmsClient { /** * 获得渠道编号 * * @return 渠道编号 */ Long getId(); /** * 发送消息 * * @param logId 日志编号 * @param mobile 手机号 * @param apiTemplateId 短信 API 的模板编号 * @param templateParams 短信模板参数。通过 List 数组,保证参数的顺序 * @return 短信发送结果 */ SmsSendRespDTO sendSms(Long logId, String mobile, String apiTemplateId, List> templateParams) throws Throwable; /** * 解析接收短信的接收结果 * * @param text 结果 * @return 结果内容 * @throws Throwable 当解析 text 发生异常时,则会抛出异常 */ List parseSmsReceiveStatus(String text) throws Throwable; /** * 查询指定的短信模板 * * @param apiTemplateId 短信 API 的模板编号 * @return 短信模板 */ SmsTemplateRespDTO getSmsTemplate(String apiTemplateId) throws Throwable; }